【问题标题】:Integration Services and Isolation Level集成服务和隔离级别
【发布时间】:2010-10-02 20:08:36
【问题描述】:

我们有一个数据仓库包,我们的客户在白天针对他们的实时交易系统运行它。在大多数客户端上,这似乎工作正常,但在繁忙的客户端上,我们会遇到死锁错误。

默认情况下,SSIS 以 Serializable 隔离级别运行,这是 SQL 2005 上的最高隔离级别。

SSIS 包仅读取数据,但由于查询的大小和锁升级为页面锁而导致死锁,而其他进程正在更新/插入。

客户端通常运行 SQL 2005 标准版,因此这是我们可以使用的唯一功能。

有谁知道将包的 IsolationLevel 更改为 ReadCommitted(或其他 Isolation 级别)是否可以解决这些锁定问题。如果它会解决它们是否有任何副作用(幻像读取、不可重复读取等)

谢谢,

【问题讨论】:

    标签: ssis transactions isolation


    【解决方案1】:

    对已提交读和可重复读隔离级别以及它们可能产生的潜在问题进行了很好的讨论:

    http://blogs.msdn.com/craigfr/archive/2007/04/25/read-committed-isolation-level.aspx http://blogs.msdn.com/craigfr/archive/2007/05/09/repeatable-read-isolation-level.aspx

    它是否会影响您,取决于您系统上运行的表架构和更新类​​型。

    如果您只是读取数据,最好的选择可能是快照隔离。 SSIS 不支持,但是可以避免 SSIS 事务,在 SQL 代码中发出 BEGIN TRANSACTION。

    【讨论】:

      猜你喜欢
      • 2011-09-30
      • 2011-02-24
      • 1970-01-01
      • 2015-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多