【问题标题】:bring down logical reads降低逻辑读取
【发布时间】:2020-08-03 13:48:04
【问题描述】:

我正在使用 stackoverflow2013 数据库,我的查询是

select p.CreationDate, p.title,
c.Text,
c.Score
from comments c join posts p on c.PostId = p.id
where p.CreationDate between ‘2008-08-29 00:00:00’ and ‘2008-09-02 23:59:58’ order by c.score desc

在创建索引之前,我得到了下面 - 执行时间是 18 分 26 秒

    (2055 rows affected)

Table ‘Worktable’. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table ‘Workfile’. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table ‘Comments’. Scan count 1, logical reads 1028410, physical reads 4, read-ahead reads 1027512, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table ‘Posts’. Scan count 1, logical reads 4184557, physical reads 0, read-ahead reads 4178310, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

然后我创建了以下索引

create index forcomments on dbo.comments(postid asc ,  Score desc) include (text)
create index forposts on dbo.posts(creationdate asc) include (title)

创建后,查询的性能是惊人的。现在总执行时间为 0 秒。

(2055 rows affected)
Table 'Worktable'. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table 'Comments'. Scan count 4536, logical reads 19562, physical reads 0, read-ahead reads 1, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table 'Posts'. Scan count 1, logical reads 26, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

我想问我们如何才能使逻辑读取比我们更低 已经有了?

几点 - 统计数据是最新的,在执行计划分析中没有观察到错误的基数。

【问题讨论】:

    标签: sql-server indexing sql-server-2017 sql-tuning


    【解决方案1】:

    我想问一下,我们如何才能使逻辑读取比我们现有的更低?

    唯一的方法是实现连接的索引视图。

    【讨论】:

    • 这就像一个魅力。非常感谢(受影响的 2055 行)表“my_index_view”。扫描计数 1,逻辑读取 103,物理读取 0,预读读取 0,lob 逻辑读取 0,lob 物理读取 0,lob 预读读取 0。(受影响的 1 行)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-26
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多