我需要知道是否有任何方法可以确定SQL Server中的某些其他进程是否正在查询表。
我正在尝试在表上合并空分区,并且许多进程正在查询该表。 因此,我需要检查表是否正被其他进程读取/插入,如果是,则我的合并操作将不会继续。因为如果它运行则会被锁定并随着时间的推移而失败。 由于有时我用完了分区或者我必须手动运行它。
答案 0 :(得分:1)
如果表 未使用,如何知道会查询?想一想,当你采取行动时,你获得的任何信息(“无查询”)已经过时了。这不是要走的路,走的路只是减少lock timeout并尝试进行操作:
SET LOCK_TIMEOUT 1;
ALTER PARTITION FUNCTION ... MERGE ...