gpt4 book ai didi

sql - 检查 SQL 查询是否会返回结果的有效方法

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

我想编写一个只返回 1 或 0 的查询,具体取决于是否会有结果。

我想用这个

IF EXISTS(
select * from myTable
where id=7 and rowInsertDate BETWEEN '01/01/2009' AND GETDATE()
)
SELECT 1
ELSE
SELECT 0

这是一般前提。

最终结果实际上将是一个复杂得多的查询,采用一对多参数和使用 sp_executesql 构建和执行的字符串

我的问题是可以说“计数”将返回 376986 并需要 4 秒来计算。使用 IF EXISTS 会在找到满足条件的 1 行后立即停止。

我决定是使用 IF EXISTS 还是只查询 @@ROWCOUNT 并查看它是否大于零。

我确实尝试了一些测试,并且两者几乎都以相同的速度运行,但是在有更多数据的 2 年内,使用 IF EXISTS 是否会提高性能?

谢谢

最佳答案

IF EXISTS 应该更有效,因为它被优化为一旦找到第一行就停止。这就是我总是做这种检查的方式,而不是使用 COUNT()。

对于性能比较,只需在每次测试之前清除数据和执行计划缓存(仅限非生产数据库服务器),确保您进行公平测试:

DBCC FREEPROCCACHE
DBCC DROPCLEANBUFFERS

关于sql - 检查 SQL 查询是否会返回结果的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1708815/

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