0

我有一个运行很多的查询,因为它位于一个为大行集调用的函数中。

查询是SELECT @sql = NULL WHERE @sql = ''

即使这向我显示了 0 次物理读取。

它向我展示了大约 17000 个逻辑读取。

有什么解释吗??

4

1 回答 1

1

请看以下问答:

https://dba.stackexchange.com/questions/9302/why-so-many-logical-reads

请注意,这些是页面读取。这是相关的。

可能性:

  • 索引不当或不足。是否有任何过滤字段被编入索引?索引有多宽(见下文)?
  • 页面密度差。您可能拥有的任何索引的填充因子是多少?如果它太低,你会为此拉很多页面。
  • 非常广泛的索引。如果您有索引但它们有很多字段或非常宽的字段,那么每页的行数就会减少。

我猜您至少针对这些条件中的一个进行了表或聚集索引扫描,并且该表很宽,无论您实际需要多少数据,都会导致读取大量数据。

于 2012-06-10T09:59:56.530 回答