我最近开始使用 TSQL 在表列中处理 XML,发现它比您每天的平均速度慢得多 3rd-Normal-Form-associative-tables-Query-joining
,来 self 的对 150 万行进行的测试,我的意思是它比 3rd-Normal-Form-associative-tables-Query-joining
慢 8 倍。使用 XML 的好处是,如果以特定方式设置,它会阻止您设置额外的关联表(在我的测试中,我的关联表(许多=许多关系的连接表的大小达到了 750 万行,相比之下到我的表中,XML 的大小为 150 万行,存储相同的信息)。不过请不要介意我的咆哮,这只是对我执行的 2 组表的测试。
问题
这对我来说有点难以解释,因为我只是 SQL Server 的初级中级。在列中使用无类型 XML 的最佳实践是什么,以及如何优化包含此 XML 的表以最佳速度执行,因为我现在必须使用 SQL 脚本处理 XPath 和 XQuery(这似乎是原因根据执行计划严重减速)?
最佳答案
有几种方法可以提高 xml 字段的性能
- 添加主 XML 索引
- 添加二级索引
- 使用 XML 架构
- 创建一个从 XML 中提取数据的计算字段
XML 字段的 IO 密集度略低,但 CPU 密集度更高。检查这是否是一个问题
关于sql-server - 在 SQL 中优化 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15502049/