sql-server - 在 SQL 中优化 XML

标签 sql-server xml xpath xquery sql-server-2012

我最近开始使用 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/

相关文章:

java - 无论如何可以在 Jaxb 中使用父类(super class)吗?

ruby - 如何比较两个 XML 文件并使用 Ruby 显示 html 格式的差异

sql-server - SQLCMD Restore 在 Management Studio 中有效,但在 DOS 提示符下无效

asp.net - 无法将参数值从字符串转换为日期时间

sql-server - 使用 Restore-SqlDatabase cmdlet 时无法绑定(bind) RelocateFile

java - 使用 jackson-dataformat-xml 转义引号

XPath:将函数应用于所有匹配项?

java - Selenium 无法定位帧内的字段

xml - 如何使用 xpath/xquery 从 rss feed 获取图片 url

sql - 使用 TSQL 确定表的主键