SQL Server和XML数据类型列的性能问题

时间:2017-08-30 08:13:37

标签: sql-server xml sql-server-2016 sqlperformance shred

我在SQL Server 2016中使用XML数据类型列遇到了性能问题。看起来我的查询一遍又一遍地循环遍历xml。这是我的设置:

  • 创建一个具有ID int列(PrimaryKey)和XML列的表 CREATE TABLE [dbo].[MYTABLE]([ID] [int] IDENTITY(1,1) NOT NULL,[XMLDATA] [xml] NULL,CONSTRAINT [PK_MYTABLE] PRIMARY KEY CLUSTERED ([ID] ASC) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
  • 导入大约3,000个xml文件(大小约200KB),看起来与此类似: <root> <item> <transaction> <prop1></prop1> <prop2></prop2> </transaction> <load> <loaditem> <loadprop1></loadprop1> <loadprop2> <loadsubprop1></loadsubprop1> </loadprop2> </loaditem> </load> </item> </root> 其中可以有400到500个&#34; loaditems&#34;。

  • 我使用this article

  • 添加了2个索引
  • 我创建视图以将xml检索为表格数据,并且我已经尝试了.query()和.nodes / .value方法。

对总共3300条记录执行简单查询是可怕的;只查询事务/ prop1和prop2部分需要45秒......

1 个答案:

答案 0 :(得分:0)

似乎我的查询在没有索引的情况下表现得更好。我删除了它们而不是45秒,它减少到2秒......