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



我使用SQL Server 2016中的XML DataType列遇到性能问题。看起来我的查询正在一遍又一遍地通过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" loaditems"。

  • 我使用本文添加了2个索引

  • 我创建视图以检索XML作为表格数据,并且我尝试了.query()和.nodes/.Value方法。

在总共3300个记录上进行简单查询的性能令人恐惧;仅查询交易/prop1和prop2零件需要45秒...

似乎没有索引,我的查询表现更好。我删除了它们,而不是45秒钟,它降低到2秒...

最新更新