gpt4 book ai didi

sql - 是什么使这些查询之一更快?

转载 作者:行者123 更新时间:2023-12-03 00:03:18 25 4
gpt4 key购买 nike

我尝试执行一个 sql 查询(如下),该查询运行了 10 秒,由于它是在生产环境中,我停止它只是为了确保没有 sql 锁定发生

SELECT TOP 1000000 *
FROM Table T
Where CONVERT(nvarchar(max), T.Data) like '%SearchPhrase%' --T.Data is initially XML

现在,如果我在创建时间添加一个订单(我不认为这是一个索引),则需要 2 秒才能完成。

SELECT TOP 1000000 *
FROM Table T
Where CONVERT(nvarchar(max), T.Data) like '%SearchPhrase%' --T.Data is initially XML
order by T.CreatedOn asc

现在,最关键的是只返回了大约 3000 行,这告诉我,即使使用 TOP 1000000 ,它也不会停止在仍在继续的行上遍历所有行。

我对 SQL Server 的工作原理以及查询解析的工作原理有基本的了解,但我只是很困惑为什么 order by 在这种情况下使它变得如此快。

正在运行的服务器是SQL Server 2008 R2

最佳答案

在这种情况下,额外的排序操作显然足以让 SQL Server 使用并行计划。

较慢的计划(没有 ORDER BY)是串行计划,而较快的计划的 DegreeOfParallelism24,这意味着工作是由 24 个线程而不是单个线程完成。

这解释了尽管排序需要额外的工作,但运行时间却大大减少。

关于sql - 是什么使这些查询之一更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16919398/

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