我正在寻找在运行 Select 查询时避免 Sch-S 锁定的选项。
我有一个由其他人编写的应用程序以及我自己的应用程序控制的数据库。其中一个表有数百万行。我对脏读等没有任何问题,但我没有选择查询来锁定由于我的查询中的 Sch-S 锁而必须等待的其他应用程序索引或修改查询。
我尝试在调用我的查询之前设置隔离级别快照,但这与仍然获取 Sch-S 锁的 WITH NOLOCK 选项没有任何区别。
我正在寻找一种在不获取 Sch-S 或任何类型的锁的情况下在表上运行选择的选项,也许如果我们可以快速获得快照/视图或临时副本(因为它有数百万行数据,它会起作用吗?)根本没有获取任何类型的锁。
Sch-S 锁是一种模式稳定性锁。采取确保表的结构不会改变。这包括添加/删除列等。NOLOCK 提示和隔离级别影响表中数据的锁定和版本控制,而不是表本身的结构。
即使是在线索引操作也需要简单地使用 Sch-S 和 Sch-M 锁。对于索引或架构修改查询,您无法避免这种情况。
归档时间: |
|
查看次数: |
6983 次 |
最近记录: |