计算sql查询的性能

问题描述 投票:-1回答:1

我有一个查询,该查询带有参数,而一个查询没有参数。试图比较他们的表现。目前,对于一个查询我一个人可以看到两个结果,这就是说我在执行计划中总共得到了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
tsql parameters query-performance
1个回答
0
投票

没有任何方法可以满足您的需求。SQL Server为批处理中的每个查询生成一个计划。您的批次中恰好有3个查询,因为

        SELECT max(date_created)
        FROM log_table
        WHERE user_id = 1

也是一个查询。

查询成本分隔不一定总是比较性能的最佳方法。我建议您比较读取次数或平均执行时间。

或者简单地单独执行它们,也可以解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.