【问题标题】:How to check if a table is being queried in SQL Server [closed]如何检查 SQL Server 中是否正在查询表 [关闭]
【发布时间】:2012-11-28 17:37:49
【问题描述】:

我需要知道是否有任何方法可以确定 SQL Server 中的某个其他进程是否正在查询某个表。

我正在尝试合并表上的空分区,并且该表正在被许多进程查询。 所以,我需要检查表是否正在被其他进程读取/插入,如果是,那么我的合并操作将不会继续。因为如果它运行,那么它会被锁定并随着时间的推移而失败。 因此,有时我会用完分区,或者我必须手动运行它。

【问题讨论】:

  • 使用 sql server profiler...msdn.microsoft.com/en-us/library/ms181091.aspx
  • 我需要在合并之前检查代码。
  • 您的分区基于什么?如果它是基于日期的,你可以想出一个更好的分区方案。
  • 分区基于整数列。
  • 回答“是否正在使用此表?”问题的任何查询在您采取行动之前,它会给您一个陈旧的答案。

标签: sql-server sql-server-2008


【解决方案1】:

如果表没有没有被使用,怎么可能有助于知道查询呢?想一想,您获得的任何信息(“未查询”)在您采取行动时已经过时。这不是要走的路,要走的路只是减少lock timeout并尝试做你的操作:

SET LOCK_TIMEOUT 1;
ALTER PARTITION FUNCTION ... MERGE ...

【讨论】:

  • 这对我有用.. thnx
猜你喜欢
  • 2018-07-03
  • 1970-01-01
  • 2018-11-25
  • 2010-09-13
  • 2010-09-15
相关资源
最近更新 更多