Sql server SQLServerManagementStudio中的资源锁定

Sql server SQLServerManagementStudio中的资源锁定,sql-server,ssms,Sql Server,Ssms,我注意到,在SQLServerManagementStudio的网格中查看查询结果时,通常会导致服务器上的资源锁定,从而阻止其他查询运行。为什么会发生这种情况,当我只打开表格进行查看而不进行编辑时?断开查询窗口与服务器的连接将释放资源。我假设当我以文本形式返回结果时不会发生这种情况,但我还没有测试过这种情况 在SSMS中使用查询窗口的最佳实践是什么?服务器上的资源锁定类型是什么?运行SELECT查询将持有正常行为的读取锁 读取锁定不会阻止其他简单读取选择的发生 除了可序列化的隔离级别之外,您还有

我注意到,在SQLServerManagementStudio的网格中查看查询结果时,通常会导致服务器上的资源锁定,从而阻止其他查询运行。为什么会发生这种情况,当我只打开表格进行查看而不进行编辑时?断开查询窗口与服务器的连接将释放资源。我假设当我以文本形式返回结果时不会发生这种情况,但我还没有测试过这种情况


在SSMS中使用查询窗口的最佳实践是什么?

服务器上的资源锁定类型是什么?运行SELECT查询将持有正常行为的读取锁

读取锁定不会阻止其他简单读取选择的发生


除了可序列化的隔离级别之外,您还有其他事务发生吗?

是的,这只是一个选择查询,所以我想我们讨论的是读锁,它阻止了其他选择操作。除非读取操作是事务的一部分,否则锁定返回的记录有什么意义?立即发布这些记录会更有意义。好吧,我想我只是做了个白痴。我忘记了我测试的不是一个简单的选择过程,而是它实际上在一个公共临时表中构建了结果。不知何故,尽管查询窗口返回了结果,但事务实际上失败了,并锁定了临时表,从而阻止了在其他地方运行相同的过程。为什么要有一张公共的临时桌子?该过程的一部分动态构建并执行生成表的SQL字符串,因此普通的临时表无法工作。谢谢你的帮助,我会接受你的回答@比利:没问题。这很容易做到!我相信我已经做过很多次了;