我有一个运行很多的查询,因为它位于一个为大行集调用的函数中。
查询是SELECT @sql = NULL WHERE @sql = ''
即使这向我显示了 0 次物理读取。
它向我展示了大约 17000 个逻辑读取。
有什么解释吗??
我有一个运行很多的查询,因为它位于一个为大行集调用的函数中。
查询是SELECT @sql = NULL WHERE @sql = ''
即使这向我显示了 0 次物理读取。
它向我展示了大约 17000 个逻辑读取。
有什么解释吗??
请看以下问答:
https://dba.stackexchange.com/questions/9302/why-so-many-logical-reads
请注意,这些是页面读取。这是相关的。
可能性:
- 索引不当或不足。是否有任何过滤字段被编入索引?索引有多宽(见下文)?
- 页面密度差。您可能拥有的任何索引的填充因子是多少?如果它太低,你会为此拉很多页面。
- 非常广泛的索引。如果您有索引但它们有很多字段或非常宽的字段,那么每页的行数就会减少。
我猜您至少针对这些条件中的一个进行了表或聚集索引扫描,并且该表很宽,无论您实际需要多少数据,都会导致读取大量数据。