计算sql查询的性能
Posted
技术标签:
【中文标题】计算sql查询的性能【英文标题】:Calculate performance of sql query 【发布时间】:2019-12-27 10:35:00 【问题描述】:我有一个带参数的查询和一个不带参数的查询。 试图比较他们的表现。 目前,仅查询一个我就可以看到两个结果。这完全是我的执行计划中的三个成本百分比。 有没有办法获得两个性能成本% 而不是三个?
----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
【问题讨论】:
显然 2 个查询的总成本百分比将是 100%... @Milney 是的。我已经编辑了我的问题。 【参考方案1】:没有办法做你正在寻找的东西。 SQL Server 为批处理中的每个查询生成一个计划。 而且您的批次中正好有 3 个查询,因为
SELECT max(date_created)
FROM log_table
WHERE user_id = 1
也是一个查询。
查询成本的划分并不总是比较性能的最佳方式。 我建议你比较读取次数或平均执行时间。
或者简单地单独执行它们,这也可以解决问题。
【讨论】:
以上是关于计算sql查询的性能的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)