是否有任何系统定义的sp在SQL Server 2005中可用,以查找在应用程序运行时我们正在从一个页面导航到另一个页面时受影响的表格。
答案 0 :(得分:1)
不幸的是,真的没有简单的方法(如果有的话)找到它。
正如SQL Server MVP Aaron Bertrand在其出色的博文When was my database / table last accessed?中所说:
今天再次出现的一个经常被问到的问题是,“我怎么看到我的数据最后被访问的时间?” SQL Server不会为您跟踪此信息。 SELECT触发器仍然不存在。第三方工具很昂贵,可能会产生意外开销。并且人们仍然不愿意或无法通过存储过程限制表访问,否则可能执行简单的日志记录。即使在所有表访问都是通过存储过程的情况下,修改所有存储过程以执行日志记录也非常麻烦。
然而,借助sys.dm_db_index_usage_stats
DMV(动态管理视图)功能和Aaron的一些聪明的T-SQL编程,你可以找出一些答案 - 检查在他的非常有启发性的博客文章中了解详情!
但是:由于此信息基于DMV而DMV中的“D”代表动态,因此这些值仅在上次服务器重新启动后有效 当您下次必须重新启动SQL Server进程/重新启动服务器计算机时,将被清除未保留。
答案 1 :(得分:0)
我不知道,但Profiler提供了解决方案。运行Profiler(可以是开发人员框)并导航。它将为您创建一个输出文件。
还有一些显示依赖关系的代码工具。我想至少有一个显示对SQL对象的依赖。
答案 2 :(得分:0)
我不这么认为。您可以运行SQL-profiler来查看针对SQL Server触发的命令,但您必须自己解析它们。
您还可以尝试清空查询缓存,然后在导航完成时查看它,但此缓存将被服务器上运行的其他查询(包括SQL服务器本身运行的查询)污染。