2

我想澄清一下我对 SQL Profiler 中“SP:CacheHit”事件的理解。

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

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

系列活动如下:

  1. RPC:开始
  2. SP:缓存命中
  3. SP:StmtStarting
  4. SP:StmtCompleted --> 这是我看到读取次数和行数的地方
  5. RPC:Completed --> 这是我看到读取次数和行数的地方

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

4

1 回答 1

3

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

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

于 2012-08-13T11:23:29.227 回答