gpt4 book ai didi

SQL 查询在 "IN"子句中处理 19 个项目时运行速度很快,而在处理 20 个项目时速度慢得多。为什么?

转载 作者:行者123 更新时间:2023-12-02 14:23:17 25 4
gpt4 key购买 nike

我有一个包含以下内容的查询:

... AND Record.RecordID IN (1,2,3,10,11,12,13,16,17,18,26,27,28,557,31,32,33,36,37,93) AND ...

问题似乎是,如果该列表中有 20 个或更多项目,则查询的执行时间将超过 25 秒。如果少于20个,则立即执行。关于如何优化有什么想法吗?

最佳答案

将 RecordID 放入临时表中,并使用内部联接对其进行过滤。对于 SQL Server,这看起来像:

declare @RecordIds table (int RecordID)
insert into @RecordIds values (1)
insert into @RecordIds values (2)
...
insert into @RecordIds values (93)

select r.*
from Records r
inner join @RecordIds ri on ri.RecordID = r.RecordID

关于SQL 查询在 "IN"子句中处理 19 个项目时运行速度很快,而在处理 20 个项目时速度慢得多。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1834716/

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