有关 SQL 事件探查器中的 SP:CacheHit 事件的说明



我想澄清我对 SQL Profiler 中"SP:CacheHit"事件的理解。

假设每当针对存储过程的执行显示"SP:CacheHit"事件时,没有对数据库进行任何命中,是否可以安全地假设?我问的原因是因为我当前有一个查询(使用实体框架/LINQ),它从表中的 4000 行中随机选择一条记录。

SQL Server 是否确实缓存了我的表中的 4000 条数据记录,因此任何后续查询都不会命中数据库?

系列活动如下:

  1. RPC:启动
  2. SP:CacheHit
  3. SP:StmtStart
  4. SP:Stmt已完成 --> 这是我看到读取次数和行数的地方
  5. RPC:已完成 --> 这是我看到读取次数和行数的地方

我发现这篇有用的文章在某种程度上澄清了我的理解,但来自我的一位专家同事的确认会很棒。

它只是意味着在执行计划缓存中找到了 SP 本身。 这意味着不需要重新编译 SP

  • http://msdn.microsoft.com/en-us/library/aa173892(v=sql.80).aspx

在您的示例中,第 3 行以后显示正在询问数据库本身以完成查询。

最新更新