没有办法只载入一部分数据,因为SQL Server有服务器本身在支持,所以不需要让程序加载所有数据,但是XML没有一个“Server”,所以只能是全部加载到程序里
不过,想利用查询句法的话,倒是可以使用LINQ,可以实现基本相似的功能,这个应该可以处理你那个:“放入到数据集然后再进行查询,读写等操作”。因为只需要把XML文档加载进来,然后就可以直接像使用数据库一样使用LINQ对XML进行查询等操作,不通过数据集
这好像就是XML数据源的弱点吧,XML的数据量很大时,处理起来也比较耗时
在XML上再架一层,实现自动文件分组,索引排序等,当然前提是有这水平了
两种方式:
1.XPath
2.Linq To XML
最后不适合处理大量数据
想提高大数据量的速度,可以试试vtd-xml
http://vtd-xml.sourceforge.net/
大数据的时候就不要放到XML里了,XML做一些数据配置信息,数据字典和模板类的数据源比较好。
之所以 ms sql 能跳过很多节取出用户关心的数据,是因为系统本身拥有大量结构开销的数据做辅助。如果你的xml很大,就我个人的理解看,你应该对它进行分解,把相关甚至独立的信息呈现出来,至少保证整个加载不会成为客户系统的负担。
为何不尝试多个小xml文件间的键关联,而整体实现你的大xml功能呢?那样就可以在物理上进行取舍加载了。
个人谬论:)
SQLSERVER 2005 以上版本提供 XML 数据类型,并提供XML数据类型的索引,你可以将XML文档保存到SQLSERVER 2005 中,然后用SQLSERVER 2005提供的SQL语句来检索。
下面是园子里一位兄弟写的
http://www.cnblogs.com/zhaohwi/archive/2006/07/06/444551.html
XML 数据类型的索引检索下来要明显低于传统的索引,但肯定要比你不建索引要高。这个问题我2年前曾经和微软全球技术中心的工程师讨论过,当时他们给过我一个测试数据,不过我已经找不到了。结论我还记得,就是上面所说的。