大家早,
我一直在研究一些中等复杂的 sql,以从第三方产品数据库“获取”一些数据,并将其显示在我们自己的内部应用程序中。
我添加了一个选择以从子查询中的表中获取顶部记录(如果这是有道理的)
查询用了将近 3 分钟才返回一个包含 100 条记录的最终结果集
SELECT TOP 1 ...
Run Code Online (Sandbox Code Playgroud)
我在网上查看了我试图实现的改进,有人建议我更改我的选择以使用变量,如下所示
DECLARE @topCount INT
SET @topCount = 1
SELECT TOP (@topCount) ...
Run Code Online (Sandbox Code Playgroud)
这将相同的查询从 3 分钟缩短到 1 秒,这太棒了!
但谁能解释为什么会这样。