问题描述
我目前正在编写一个巨型SQL查询,该查询将从包含巨型XML字符串的行字段中加载XML数据。
为简单起见,让我们使用以下示例查询:
SELECT
[ColumnContainingXMLString].value('(/XPATH/STRING/HERE/TO/XMLNODE/node())[1]','nvarchar(max)') AS ColumnName
FROM
[dbo].[TableContainingXMLColumn]
此查询的问题在于它非常慢,因为我需要从XML抓取许多字段。当我在SSMS中运行“执行计划”时,使用给定的NONCLUSTERED INDEX可以解决较大的查询性能成本:
query execution plan screenshot with recommended index
在上面的屏幕截图中,SSMS建议我创建以下索引:
CREATE NONCLUSTERED INDEX xmlNodeIndex
ON [sys].[xml_index_nodes_1170103209_256000] ([hid],[pk1]);
与此相关的问题是[sys].[xml_index_nodes_1170103209_256000]
是动态生成的系统表,在运行查询之前我无法向其添加索引,因为在运行查询之前该表不存在。
真的需要一些帮助,谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)