【问题标题】:Columnstore Clustered Index - Deadlock issue ( SQL Server )列存储聚集索引 - 死锁问题 (SQL Server)
【发布时间】:2018-09-23 02:56:30
【问题描述】:

我正在将数据提取到 SQL Server 中的表 A [使用列存储聚集索引]。 “INSERT BULK”有4个并行线程 写入表,我得到一个死锁错误:

事务(进程 ID)在锁定资源上与另一个进程死锁,并已被选为死锁牺牲品。重新运行事务。

经过研究,我发现聚集列存储索引通常会出现死锁问题,但无法弄清楚解决方案。你能建议吗 可以做什么?

【问题讨论】:

  • 如果将查询的最大并行度 (MAXDOP) 设置为 1,则不会出现此问题。以下链接可能会有所帮助--support.microsoft.com/en-in/help/4057055/…
  • 从 system_health XE 跟踪中发布 deadlock_xml。在 SSMS 对象资源管理器中,Management-->Extended Events-->Sessions-->system_helath-->package0.event_file 并双击查看事件。然后从顶部菜单栏中选择 Extended Events...-->Filters 并指定name = xml_deadlock_report 以查看死锁事件。然后选择一个并复制 xml 值以添加到您的问题中。
  • 我需要从管理员那里得到它。我自己无法访问。
  • 另外请提供 SQL Server 版本(` select @@version`)。

标签: sql-server deadlock bulk-load columnstore


【解决方案1】:

检查您的数据库是否开启了快照隔离级别。对我来说,将快照隔离级别更改为关闭解决了 Columnstore 表上的死锁问题。

【讨论】:

    猜你喜欢
    • 2019-02-23
    • 2018-01-02
    • 1970-01-01
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多