我尝试浏览很多链接,但无法获得太多帮助,所以我发布了这个听起来有点相似的问题。
我们的应用程序团队正在计划一些表格,他们将在接下来的几个月内停止发送数据。因此,这些表将成为稍后清理的好竞争者。
但是,如果 SQL 服务器中有方法,我怎么能找到一些我们不知道的其他用户可能正在使用该表进行 XYZ 操作。
是否有本机可用的方法或者我需要 XE 来跟踪它?这是一个自始至终高度活跃的 OLTP 数据库服务器,因此运行任何审计都需要进行测试。
应该采取什么方法以及如何实际处理这种情况?请建议。
谢谢!
我认为您最好的方法是从跟踪 sys.dm_db_index_usage_stats 中的计数器开始。只要您认为有必要,只需将结果存储到表中(并按计划运行)。然后查看计数器,看看它们是否有明显的变动。总会有一点,尤其是在您进行维护的情况下。
如果你认为他们已经完成了,那么重命名表格,看看是否有人尖叫。如果需要,您可以快速将其重命名。
最后,如果您想要跟踪扩展的事件会话,以下可能对您有用。如您所知,它会产生影响,但不会像您想象的那么糟糕,尤其是对于您认为没有被使用的桌子。尽管如此,当您第一次启用它时,请对其进行测试以确保它能够满足您的需求,并且它的影响不会妨碍您的用户。但是,这是我知道的唯一确定的方法来捕捉这种类型的东西。
当我想捕获包含特定文本字符串的特定存储过程或查询的使用情况时,我通常使用以下内容。我将它发送到一个环形缓冲区,因为我通常只运行它,直到我得到我正在寻找的东西。但是您可以将目标更改为任何您想要的。它会创建关闭的 XE,因此您可以在启动之前返回并对其进行编辑。