我有一个查询,该查询带有参数,而一个查询没有参数。试图比较他们的表现。目前,对于一个查询我一个人可以看到两个结果,这就是说我在执行计划中总共得到了3%的成本。是否有办法获得两个性能成本百分比而不是三个?]
----Query 1
DECLARE @p2 DATETIME;
SET @p2 = (
SELECT max(date_created)
FROM log_table
WHERE user_id = 1
)
SELECT max(date_created) AS last_login
FROM log_table
WHERE date_created <= @p2
----Query 2
SELECT max(date_created) AS last_login
FROM log_table
WHERE user_id = 1
没有任何方法可以满足您的需求。SQL Server为批处理中的每个查询生成一个计划。您的批次中恰好有3个查询,因为
SELECT max(date_created)
FROM log_table
WHERE user_id = 1
也是一个查询。
查询成本分隔不一定总是比较性能的最佳方法。我建议您比较读取次数或平均执行时间。
或者简单地单独执行它们,也可以解决问题。