使用 Sql server Xml 列以确保快速性能和易于报告的最佳实践是什么?
你如何设置列?您是否将其保留为未键入?或将其与架构相关联?
将 xml 列与架构相关联会提高查询性能吗?
我们对xml列的使用如下:
A.> 在每个客户的基础上,我们可以定义灵活的数据存储,而无需彻底检查我们的数据库。
B.> 我们需要为每个客户构建报告视图,返回他们的数据,就好像它是一个简单的表格(对于水晶报告或 Sql Server Reporting Services)。
我们目前用来查询的语法如下:
SELECT
Id,
doc.value('@associatedId','nvarchar(40)') as AssocId,
doc.value('@name1', 'nvarchar(255)') as Name1,
doc.value('@name2', 'nvarchar(255)') as Name2,
doc.value('@name3', 'nvarchar(255)') as Name3,
doc.value('@number', 'nvarchar(255)') as Number
From OrderDetails
CROSS APPLY OrderDetails.XmlData.nodes('//root/reviewers/reviewer') as XmlTable(doc)
有没有更快的方法来做到这一点?这个查询在一个有 100 万条记录的表中运行缓慢,但目前只有 800 条有 xml 数据!
谢谢
皮特