如果我从数据库中获取数千个分层记录并生成xml,那么以最佳方式执行此操作具有良好的性能和较低的CPU利用率?
答案 0 :(得分:7)
您可以使用
直接从SQL Server 2005输出XMLFOR XML
查询结果 作为XML文档返回。必须使用 三个RAW之一,AUTO 和EXPLICIT选项
RAW
结果集中的每一行都是一个带有泛型的XML元素 标识符作为元素标记
AUTO
结果简单回归 嵌套的XML树。元素会 为每个表字段生成 SELECT子句
EXPLICIT
指定结果的形状 XML树显式。 查询必须写入 特别的方式使附加 有关嵌套的信息是 指定的
XMLDATA
返回架构,但不将根元素添加到结果
ELEMENTS
指定列 作为子元素返回到表中 元件。如果未指定,则将它们映射为 属性
使用
同时生成内联XSD架构XMLSCHEMA
您可以使用
处理记录中的空值XSINIL
您也可以二进制形式返回数据。
您可能希望查看MSDN for XML support in SQL Server 2005,了解XQuery,XML数据类型等技术。
答案 1 :(得分:2)
这取决于 - 如果您的应用程序和数据库服务器位于不同的计算机上,那么您需要指定要减少负载的CPU。如果您的数据库已经加载,那么最好在应用程序服务器上进行XML转换,否则请继续使用SQL Server FOR XML功能。
答案 2 :(得分:1)
Oracle有这方面的工具,所以我猜SQL-Server也是如此,但你需要一个架构。个人对于小集我使用我周围的PHP脚本,但对于需要定制的大事是另一个故事。