Ssis 集成服务和隔离级别

Ssis 集成服务和隔离级别,ssis,transactions,isolation,Ssis,Transactions,Isolation,我们有一个数据仓库包,我们的客户可以在白天针对他们的实时事务系统运行。在大多数客户机上,这似乎工作正常,但在繁忙的客户机上,我们会出现死锁错误 默认情况下,SSIS的隔离级别为Serializable,这是SQL 2005上的最高隔离级别 SSIS包仅读取数据,但由于查询的大小以及在其他进程更新/插入时锁升级为页锁,因此会创建死锁 客户端通常运行SQL 2005的标准版,因此这是我们可以使用的唯一功能 是否有人知道将包的IsolationLevel更改为ReadCommitted(或其他隔离级别

我们有一个数据仓库包,我们的客户可以在白天针对他们的实时事务系统运行。在大多数客户机上,这似乎工作正常,但在繁忙的客户机上,我们会出现死锁错误

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

SSIS包仅读取数据,但由于查询的大小以及在其他进程更新/插入时锁升级为页锁,因此会创建死锁

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

是否有人知道将包的IsolationLevel更改为ReadCommitted(或其他隔离级别)是否可以解决这些锁定问题。如果能解决这些问题,是否有任何副作用(幻象读取、不可重复读取等)


谢谢,

关于读承诺和可重复读隔离级别以及它们可能产生的潜在问题,有很多讨论:

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

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