当前位置: 首页 > 面试题库 >

SQL查询性能统计信息消息多次返回

施永宁
2023-03-14
问题内容

我在SQL Server Management
Studio上运行此查询1,并看到它像3条消息一样返回我,但是当内部存储过程中有来自Statistics的近10条至20条消息时,返回的结果相同。发生了什么,为什么我看到它们?

SET STATISTICS IO,TIME ON;
GO
    SELECT [UserId]
         ,[UserType]
         ,[CreateDT]
         ,[EffectiveDT]
       FROM [dbo].[People] ORDER BY [UserId]
SET STATISTICS IO,TIME OFF;
GO

我收到的邮件如下

SQL Server parse and compile time: 
   CPU time = 0 ms, elapsed time = 0 ms.
SQL Server parse and compile time: 
   CPU time = 0 ms, elapsed time = 0 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.
Table 'People'. Scan count 1, logical reads 155, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 143 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 143 ms.

查询的总经过时间是143ms + 143ms吗?


问题答案:

见下文

set statistics time on
select * from test
set statistics time off

输出:

SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 264 ms..

现在添加打印语句和一些变量

set statistics time on

print' statistics time '
declare @a int
set @a =1

select * from test
set statistics time off

输出:

SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 1 ms.

SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 1 ms.

(59 row(s) affected)

(1 row(s) affected)

SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 264 ms.

在上面的代码中,总执行时间为1 + 1 + 264。

希望这对它的工作方式有所帮助



 类似资料:
  • 我正在对PeopleSoft数据库进行查询,不确定是否可以根据初始查询在一次调用中从同一个表中获取信息。例如,我正在访问的表返回EmployeeID、FullName、FirstName、LastName、Position\u NBR和ReportsTo。但是ReportsTo是以经理的Position\u NBR(在同一个表中找到)的形式提供的,我想以name格式提供。我想这样做,但不确定是否可

  • V2Ray 提供了一些关于其运行状况的统计信息。 StatsObject StatsObject 对应配置文件中的stats项。 { } 目前统计信息没有任何参数,只要StatsObject项存在,内部的统计即会开启。同时你还需要在 Policy 中开启对应的项,才可以统计对应的数据。 目前已有的统计信息如下: 用户数据 user>>>[email]>>>traffic>>>uplink 特定用

  • 在Firebase Cloud Messaging(FCM)中是否有方法查看成功发送和失败推送通知/消息的数量?我知道我可以只使用Firebase通知,但我必须使用它们的控制台发送推送通知,这对于我的用例来说是不实际的。 谷歌在此页面上解释了如何访问andoid的统计数据。但iOS也有办法吗?

  • 我想做一个关于资源利用的统计!我知道有了'ResourcePool.Utility()'我就能做到!但问题是,资源工作,按时间表,为8小时..但统计是结束了一整天!有没有办法只在他们的工作时间内调查利用情况? 谢谢u Miriana

  • 我使用应用服务器通过Firebase Cloud Messaging发送消息。Firebase控制台不会列出由应用服务器发送的此类消息。当我使用Firebase控制台直接发送消息时,它会显示一些对其自身消息的分析。 问题是,当我使用应用服务器时,如何访问消息统计信息?

  • 在一个货架上有 5 件商品,编写程序,在输入商品价格之后输出最高价格、总价格和平均价格。 首先要创建一个包含 5 个空元素的价格数组,然后使用 for 循环使用户从控制台录入商品的价格,并将价格保存至数组中,再使用一个 for 循环来遍历该数组,求出最高价格和总价格。最后用总价格除以商品数量算出平均价格。 该程序运行后的结果如下所示。