要查看 SQL 查询的执行时间,尤其是毫秒级别,可以使用以下几种方法:
方法 1:使用 SET STATISTICS TIME
查看执行时间
SET STATISTICS TIME
会显示执行时间的详细信息,包括 CPU 时间和总耗时。启用后,SQL Server 将在“消息”窗口中显示查询的执行时间信息,精确到毫秒。
SET STATISTICS TIME ON;
-- 你的查询语句
SELECT * FROM YourTable WHERE ...
SET STATISTICS TIME OFF;
执行查询后,你可以在“消息”窗口中查看类似如下的信息:
SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 1 ms.
方法 2:使用 GETDATE()
或 SYSDATETIME()
计算执行时间
你可以在查询前后使用 GETDATE()
(精确到毫秒)或 SYSDATETIME()
(精确到微秒)获取当前时间,并计算出查询执行的时间差。
DECLARE @StartTime DATETIME, @EndTime DATETIME;
-- 获取开始时间
SET @StartTime = GETDATE();
-- 你的查询语句
SELECT * FROM YourTable WHERE ...
-- 获取结束时间
SET @EndTime = GETDATE();
-- 输出执行时间(毫秒级别)
SELECT DATEDIFF(MILLISECOND, @StartTime, @EndTime) AS ExecutionTimeMs;
如果需要更高的精度,可以将 GETDATE()
替换为 SYSDATETIME()
,然后将 DATEDIFF
改为 DATEDIFF_BIG
。
方法 3:使用 SQL Server Profiler
监控查询时间
- 打开
SQL Server Profiler
,新建一个跟踪。 - 选择事件
Performance
>SQL:BatchCompleted
和SQL:StmtCompleted
。 - 在事件属性中勾选“列过滤器”中的
Duration
字段。 - 执行查询后,可以在
SQL Server Profiler
中查看执行时间,单位为微秒。
方法 4:使用 Execution Plan
中的实际运行时间
执行查询后,查看执行计划并选择“包括实际执行计划”。在计划中,SQL Server 会显示每个步骤的“实际时间”,以帮助分析哪个部分的查询耗时最长。
总结
对于查看毫秒级执行时间,推荐使用 SET STATISTICS TIME
或 GETDATE()
计时方法。这两种方法可以直接在 SQL Server Management Studio 中快速应用。