繁体   English   中英

如何在 SQL 服务器中使用变量打开/关闭统计时间?

[英]How to turn STATISTICS TIME ON\OFF using variable in SQL Server?

我需要使用大量的set statistics time onset statistics time off这样我就可以检查每个步骤的运行时间。 有什么办法可以使用变量来替换ONOFF吗?

CREATE Procedure CPP_InsertOneRows
(@turnStatistics bit = 0
)
AS
BEGIN
    DECLARE @onOrOff CHAR(3);
    IF @turnStatistics = 1
    BEGIN 
        SET @onOrOff = 'ON';
    END 
    ELSE 
    BEGIN
        SET @onOrOff = 'OFF';
    END

    SET STATISTICS TIME OFF -- how can I use @onOrOff to replace the 'OFF' here?
    SET STATISTICS IO Off

我使用正确吗? 还是有其他方法可以做到这一点? 谢谢~

您必须在IF中进行实际的开/关操作:

IF @turnStatistics = 1 
    SET STATISTICS TIME ON;
ELSE
    SET STATISTICS TIME OFF;

...

SET STATISTICS TIME OFF;

您不能为OFF / ON的值使用变量,它必须是文字。

如果你想检查你的代码的每一步所花费的时间,你可以使用下面的方法

Print 'Step 1 started'
print CONVERT (TIME, GETDATE()) 
 WAITFOR DELAY '00:00:01'; -- function 
Print 'Step 1 ended'
print CONVERT (TIME, GETDATE()) 

Print 'Step 2 started'
print CONVERT (TIME, GETDATE()) 
 WAITFOR DELAY '00:00:02';  --- function 
Print 'Step 2 ended'
print CONVERT (TIME, GETDATE()) 

在此处输入图像描述

确保在测试后删除它或使用 @trace 参数,如果此 @trace=1 只有默认设置为 @trace=0(带有 if 块)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM