SQL逻辑读取

SQL逻辑读取,sql,sql-server-2008,logical-reads,Sql,Sql Server 2008,Logical Reads,我有一个查询运行了很多次,因为它位于一个函数中,该函数是为一个大型行集调用的 查询是SELECT@sql=NULL,其中@sql='' 尽管这显示了0次物理读取 它显示了大约17000个逻辑读取 任何解释???请查看以下问题和答案: 请注意,这些都是翻页。这是相关的 可能性: 索引不正确或不充分。是否有任何已筛选字段已编入索引?索引有多宽(见下文) 页面密度差。你的索引的填充系数是多少?如果它太低,你会为此拉很多页 非常广泛的索引。如果你有索引,但是它们有很多字段,或者是很宽的字段,那么每页

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

查询是
SELECT@sql=NULL,其中@sql=''

尽管这显示了0次物理读取

它显示了大约17000个逻辑读取


任何解释???

请查看以下问题和答案:

请注意,这些都是翻页。这是相关的

可能性:

  • 索引不正确或不充分。是否有任何已筛选字段已编入索引?索引有多宽(见下文)
  • 页面密度差。你的索引的填充系数是多少?如果它太低,你会为此拉很多页
  • 非常广泛的索引。如果你有索引,但是它们有很多字段,或者是很宽的字段,那么每页的行数就会减少
我猜您至少有一个表或聚集索引扫描 这些标准中至少有一个,并且表格很宽,这会导致 无论实际需要多少数据,都需要读取大量数据


你在问什么?是“什么是逻辑读取?”还是“为什么我得到了这些数字?”如果第二个请显示更多的上下文(函数定义,您如何调用它),您是否也从探查器或
在输出上设置统计IO?您列出的查询只是一个变量赋值,不生成任何IO数据,因此,我怀疑您忘记了向我们显示您看到读取的实际查询(或多个查询)。如果涉及到表,我同意您的看法,但看看查询,没有表!!