sql - 表值函数查询优化

  显示原文与译文双语对照的内容
0 0

表值函数查询的研究。 它消耗了整个查询执行时间的70% % 。 需要一些帮助来微调它。

INSERT INTO #XMLTAB
SELECT ID,CAST(tab.tabxml as xml).value('(/Root/Element)[1]', 'varchar(100)')
FROM tab 
WHERE TabScore= 36

参考:

  • #XMLTAB的临时表。
  • Tab 在数据库中的表名称。
  • tabxml 列保存xml文件
  • tabscore 是另一个列。

先谢谢了。

时间:原作者:2个回答

0 0

我看到你正在使用 SQL Server XML数据类型。 你知道你可以把它?

请尝试以下操作:

CREATE PRIMARY XML INDEX PXML_tab_tabxml
ON tab (tabxml)
CREATE XML INDEX IXML_tab_tabxml
ON tab (tabxml)
USING XML INDEX PXML_tab_tabxml FOR PATH;

第一条语句将把XML分解为内部结构( 索引行),并使 SQL Server 更有效地查询这种分解的XML 。 这被称为主XML索引。

但是,如果使用 value() 方法从某些表查询 XML,请考虑运行第二条语句,该语句将进一步加速此类操作。 这称为辅助XML索引,可以是三种不同类型。

注意,在已经存在XML的大型表上创建这样的XML索引可能需要。

原作者:
...