fulin1029
博客园
|
首页
|
发新随笔
|
发新文章
|
联系
|
订阅
|
管理
随笔:11 文章:0 评论:16 引用:0
2005年7月1日
通过DataSet读取XML的效率问题
一直以来读取xml都是通过DataSet的ReadXML方法来解决,其他属性也都没有使用。在数据量小的时候倒也相安无事,直到今天读取一个20M的XML流才发现实在太影响效率了。
默认情况下,ReadXML缺省情况下使用XmlReadMode.Auto方式读取,用以前的作法,由于xml文件里没有包含Scheme,DataSet会先推断xml的结构,然后再加载数据。可是对一个20M的流推断其结构效率可想而知。如果XmlReadMode采用的是除Auto和InferSchema(同样根据数据推断结构)之外的成员,那么除了行数会相应增加外,内容都被忽略。
如何解决这个讨厌的问题呢,其实也很简单先给DataSet提供Schema(ReadXmlSchema方法),XmlReadMode设为IgnoreSchema即可。经过测试
处理时间由几分钟提高到几秒
。
示例如下:
1
DataSet ds
=
new
DataSet();
2
using
(StringReader sr
=
new
StringReader( xxx ))
3
{
4
ds.ReadXmlSchema(sr);
5
}
6
ds.Tables[
0
].BeginLoadData();
7
8
9
using
(StringReader sr
=
new
StringReader( xxx ))
10
{
11
ds.ReadXml(sr, XmlReadMode.IgnoreSchema);
12
}
13
ds.Tables[
0
].EndLoadData();
posted @ 2005-07-01 18:21 顺治帝 阅读(4482) 评论(9)
编辑
<
2005年7月
>
日
一
二
三
四
五
六
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
公告
昵称:
顺治帝
园龄:
7年4个月
粉丝:
0
关注:
0
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
随笔分类
Cuyahoga(2)
(rss)
我是小小程序员(2)
(rss)
随笔档案
2006年5月 (3)
2006年3月 (1)
2005年7月 (1)
2005年1月 (1)
2004年12月 (1)
2004年10月 (2)
2004年9月 (2)
C#
http://blog.joycode.com/moslem/archive/2004/11/02/37805.aspx
C#
最新评论
阅读排行榜
评论排行榜
推荐排行榜