SQLServer DML操作阻塞SELECT查询

来源:这里教程网 时间:2026-03-02 11:35:18 作者:

SQLServer DML 操作阻塞 SELECT 查询 问题: 新上的BI 系统,同事反馈在 ETL 抽数期间,查看报表看板会卡住 2-3 分钟。 问题原因: ETL 抽数期间检查 BI 数据库,发现有几个正在执行 Select 操作的会话被阻塞了。 解决方案: 检查数据库的快照隔离级别是 read committed 读已经提交的事务之后的数据,如果一个事务没有提交,则当前事务将被阻塞。断开此数据库上所有连接,将快照隔离级别改成 read committed snapshot select 将不会被阻塞,而是通过row versioning 获得旧的数据。 相关查询如下: ---1 查看数据库快照隔离级别 use   testdb DBCC   USEROPTIONS ;      Set Option    Value ...... 13   isolation level read committed ---2 修改快照隔离级别为 read committed snapshot (1)  断开 testdb 上所有连接,并通过 sp_who2 检查,根据实际情况时 kill 断开相关的连接; (2)  执行如下语句,启动 read committed snapshot ALTER   DATABASE   testdb SET   READ_COMMITTED_SNAPSHOT   ON ; 查看快照隔离级别 use   testdb DBCC   USEROPTIONS ;      Set Option    Value ...... 13   isolation level read committed snapshot 修改后,ETL 抽数期间,查看报表看板时间由 2-3 分钟缩短到 5 秒; 欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!

相关推荐

热文推荐