小编Dan*_*her的帖子

什么是最有效的 SELECTIVE XML 索引?

我正在尝试为 1 亿行表中的 XML 列确定最有效的选择性 XML 索引。我的问题类似于:

用于选择性 Xml 索引的 Sql Server 2012 扩展事件未显示结果

但是答案中指定的选择性索引的具体好处没有详细讨论。

以下是查询的简化版本:

;WITH CTE AS
( SELECT 1 AS ID,
              CONVERT(XML, '<Root>
                              <ParentTag ParentTagID="Sample Text">
                                <ChildTag1>5</ChildTag1>
                                <ChildTag1>6</ChildTag1>
                                <ChildTag1>7</ChildTag1>
                                <ChildTag2>8</ChildTag2>
                                <ChildTag2>9</ChildTag2>
                                <ChildTag2>10</ChildTag2>
                                <OtherTag>LargeIrrelevantData</OtherTag>
                              </ParentTag>
                            </Root>'
                      ) AS SampleXML
)
SELECT * INTO dbo.CTE FROM CTE

SELECT ID,
       Root.ParentTag.value('@ParentTagID','NVARCHAR(MAX)') AS ParentTagID,
       RootParentTag1.ChildTag1.value('(text())[1]', 'NVARCHAR(MAX)') AS ChildTag1,
       NULL
FROM CTE
OUTER APPLY CTE.SampleXML.nodes('/Root/ParentTag') as Root(ParentTag)
OUTER APPLY Root.ParentTag.nodes('ChildTag1') as RootParentTag1(ChildTag1)
UNION
SELECT ID,
       Root.ParentTag.value('@ParentTagID','NVARCHAR(MAX)') AS ParentTagID,
       NULL,
       RootParentTag2.ChildTag2.value('(text())[1]', 'NVARCHAR(MAX)') AS …
Run Code Online (Sandbox Code Playgroud)

performance index xml sql-server query-performance

6
推荐指数
1
解决办法
1399
查看次数

标签 统计

index ×1

performance ×1

query-performance ×1

sql-server ×1

xml ×1