gpt4 book ai didi

sql - 什么是 sql server 中的逻辑读取?如何减少逻辑数?

转载 作者:行者123 更新时间:2023-12-03 10:32:26 27 4
gpt4 key购买 nike

经过我的研究,关于如何加速在 SQL 服务器中执行的查询,大多数资源建议通过使用正确的 where 子句来减少逻辑读取。
我真正感兴趣的是了解 SQL Server 中的工作流程:
当存储过程被来自端点用户或外部系统的请求调用时,以及一些关于该做什么和不该做什么的提示。

最佳答案

逻辑读取是指您正在从数据库中读取的记录。让我们举一个小而愚蠢的例子:

select *
from
(
select *
from orders
where client = 1234
)
where item = 9876;

在这里,您选择来自客户端 1234 的所有订单。然后,您只选择项目 9876 的订单。因此(前提是优化器不会看穿这一点并在内部优化您的查询)您在第一步中选择的记录比需要的多得多。通过在一个步骤中应用这两个标准来减少逻辑读取(以及相应的大中间结果):
select *
from orders
where client = 1234
and item = 9876;

(这也可能影响物理读取,但不一定必须如此。例如,第一个查询可能访问 100 条记录,然后将其减少到 10 条,而第二个仅读取这 10 条记录。但所有 100 条记录可能都在一个磁盘块中, 所以这两个语句都读取一个磁盘块, 即进行一次物理读取. 顺便说一下, 它甚至可以是零次物理读取, 以防数据恰好已经在 dbms 缓存中, 即在内存中. 这也告诉我们物理一个查询的读取可能会有所不同,而只要查询和数据没有改变,逻辑读取就会保持不变。)

关于sql - 什么是 sql server 中的逻辑读取?如何减少逻辑数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27738836/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com