【问题标题】:Performance issue with SQL Server and XML datatype columnsSQL Server 和 XML 数据类型列的性能问题
【发布时间】:2018-02-07 20:44:09
【问题描述】:

我在 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 个“加载项”。

  • 我使用this article添加了2个索引

  • 我创建视图以将 xml 检索为表格数据,我尝试了 .query() 和 .nodes/.value 方法。

对总共 3300 条记录的简单查询的性能很糟糕;仅查询 transaction/prop1 和 prop2 部分需要 45 秒...

【问题讨论】:

  • 你说的是什么类型的查询?一个选择?插入?

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-19
    • 1970-01-01
    • 1970-01-01
    • 2019-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多