当前位置: 首页 > article >正文

SQLSever显示物理和逻辑 IO活动量的相关信息及显示分析、编译和执行各语句所需的毫秒数。

SQLSever SET STATISTICS IO显示物理和逻辑 IO活动量的相关信息及SET STATISTICS TIME显示分析、编译和执行各语句所需的毫秒数。

1、 SET STATISTICS IO (Transact-SQL)

物理 IO 与访问磁盘上的数据页相关,逻辑 IO 与访问内存中的数据页(数据缓存)相关

1.1、语法

SET STATISTICS IO { ON | OFF }

1.2、输出项

下表列出并说明了各个输出项

输出项含义
Table表的名称。
Scan count在任意方向到达叶级别之后开始的搜索或扫描次数,搜索/扫描目的是检索所有用于构造输出的最终数据集的值。如果使用的索引是主键上的唯一索引或聚集索引,且只搜索一个值,则扫描计数为 0。 例如,WHERE Primary_Key_Column = 。当使用对非主键列定义的非唯一的聚集索引搜索一个值时,扫描计数为 1。 此过程的目的是针对你正在搜索的键值检查重复值。 例如,WHERE Clustered_Index_Key_Column = 。当 N 是使用索引键查找键值后,在叶级别向左侧或右侧开始的不同查找或扫描数时,扫描计数为 N。
logical reads从数据缓存读取的页数。
physical reads从磁盘读取的页数。
page server reads从页面服务器读取的页数。 **
read-ahead reads查询 通过预读放入缓存中的页数。
page server read-ahead reads通过 预读从页面服务器读取的页数,并通过查询放入数据缓存中。 **
lob logical reads从数据缓存中读取的 LOB* 页数。
lob page server reads从页面服务器读取的 LOB* 页数。 **
lob read-ahead reads查询 通过预读将 LOB* 页放入数据缓存中的页数。
lob physical reads从磁盘读取的 LOB* 页数。
lob page server read-ahead reads从 页面服务器读取的 LOB* 页数,并通过预读将数据缓存放入数据缓存中。 **

大型对象二进制 (LOB) 数据类型包括文本、ntext、image、varchar(max)、nvarchar(max)、varbinary(max)或列存储索引页。

1.3、注解

当 STATISTICS IO 为 ON 时,将显示统计信息;当为 OFF 时,不会显示该信息。

如果将此选项设置为“开”,则所有 Transact-SQL 语句均返回统计信息,直至将该选项设置为“关”。

SET STATISTICS IO设置是在执行或运行时设置的,而不是在分析时设置的。

1.4、权限

若要使用 SET STATISTICS IO,用户必须具有执行 Transact-SQL 语句的适当权限。 但不需要 SHOWPLAN 权限。

1.5、示例

此示例显示 SQL Server 处理语句时,进行了多少次逻辑读和物理读操作。

USE AdventureWorks2022;  
GO         
SET STATISTICS IO ON;  
GO  
SELECT *   
FROM Production.ProductCostHistory  
WHERE StandardCost < 500.00;  
GO  
SET STATISTICS IO OFF;  
GO

-- 下面是消息输出
SQL Server parse and compile time: 
   CPU time = 1 ms, elapsed time = 1 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.
SQL Server parse and compile time: 
   CPU time = 39 ms, elapsed time = 97 ms.
SQL Server parse and compile time: 
   CPU time = 0 ms, elapsed time = 0 ms.
ProductID   StartDate               EndDate                 StandardCost          ModifiedDate
----------- ----------------------- ----------------------- --------------------- -----------------------
707         2011-05-31 00:00:00.000 2012-05-29 00:00:00.000 12.0278               2012-05-29 00:00:00.000
707         2012-05-30 00:00:00.000 2013-05-29 00:00:00.000 13.8782               2013-05-29 00:00:00.000
707         2013-05-30 00:00:00.000 NULL                    13.0863               2013-05-16 00:00:00.000
708         2011-05-31 00:00:00.000 2012-05-29 00:00:00.000 12.0278               2012-05-29 00:00:00.000
708         2012-05-30 00:00:00.000 2013-05-29 00:00:00.000 13.8782               2013-05-29 00:00:00.000
708         2013-05-30 00:00:00.000 NULL                    13.0863               2013-05-16 00:00:00.000
709         2011-05-31 00:00:00.000 2012-05-29 00:00:00.000 3.3963                2012-05-29 00:00:00.000
710         2011-05-31 00:00:00.000 2012-05-29 00:00:00.000 3.3963                2012-05-29 00:00:00.000
997         2013-05-30 00:00:00.000 NULL                    343.6496              2013-05-16 00:00:00.000
998         2013-05-30 00:00:00.000 NULL                    343.6496              2013-05-16 00:00:00.000
999         2013-05-30 00:00:00.000 NULL                    343.6496              2013-05-16 00:00:00.000

(269 行受影响)

Table 'ProductCostHistory'. Scan count 1, logical reads 5, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.

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

完成时间: 2024-11-22T19:20:53.4174046+08:00

2、 SET STATISTICS TIME (Transact-SQL)

显示分析、编译和执行各语句所需的毫秒数。

2.1、语法

SET STATISTICS TIME { ON | OFF }

2.2、备注

当 SET STATISTICS TIME 为 ON 时,会显示语句的时间统计信息。 为 OFF 时,不显示时间统计信息。

SET STATISTICS TIME 的设置是在执行或运行时设置,而不是在分析时设置。

Microsoft SQL Server 不能在纤程模式下提供准确的统计信息,而纤程模式在启用“轻型池”配置选项时激活。

只有当使用 SET STATISTICS TIME ON 执行查询时才更新 sysprocesses 表中的 cpu 列。 当 SET STATISTICS TIME 为 OFF 时,将返回 0。

ON 和 OFF 设置还影响 SQL Server Management Studio 内的“当前活动的进程信息视图”中的 CPU 列。

2.3、权限

若要使用 SET STATISTICS TIME,用户必须具有执行 Transact-SQL 语句的相应权限。 但不需要 SHOWPLAN 权限

2.4、示例

下面的示例显示服务器的执行、分析和编译时间。

USE AdventureWorks2022;  
GO         
SET STATISTICS IO ON;  
GO  
SELECT *   
FROM Production.ProductCostHistory  
WHERE StandardCost < 500.00;  
GO  
SET STATISTICS IO OFF;  
GO

下面是结果集:

Table 'ProductCostHistory'. Scan count 1, logical reads 76, physical reads 0,
page server reads 0, read-ahead reads 0, page server read-ahead reads 0, 
lob logical reads 0, lob physical reads 0, lob page server reads 0, 
lob read-ahead reads 0, lob page server read-ahead reads 0.

3、可以同时执行IO/TIME

SET STATISTICS TIME,IO ON 

SELECT BusinessEntityID   
FROM HumanResources.Employee  
WHERE NationalIDNumber = '509647174';  
-- 返回的查询结果
BusinessEntityID
----------------
3
-- 返回的消息
SQL Server parse and compile time: 
   CPU time = 7 ms, elapsed time = 7 ms.
SQL Server parse and compile time: 
   CPU time = 0 ms, elapsed time = 0 ms.

(1 行受影响)
Table 'Employee'. Scan count 0, logical reads 2, physical reads 2, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.

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

完成时间: 2024-11-22T18:41:13.9365475+08:00


http://www.kler.cn/a/405731.html

相关文章:

  • 【课堂笔记】隐私计算实训营第四期:“隐语”可信隐私计算开源框架
  • NVR管理平台EasyNVR多品牌NVR管理工具的流媒体视频融合与汇聚管理方案
  • 3-22 ElementPlus:表单
  • Python设计模式详解之1 —— 单例模式
  • 基于CVE安全公告号,全面修复麒麟ARM系统OpenSSH漏洞
  • C# 5000 转16进制 字节(激光器串口通讯生成指定格式命令)
  • vue2 src_消息订阅和发布(pubsub-js)
  • 冲破AI 浪潮冲击下的 迷茫与焦虑
  • C语言字符串搜索函数
  • MATLAB读入不同类型图像并显示图像和相关信息
  • springboot基于微信小程序的农产品交易平台
  • uni-app 玩转条件编译:自定义平台的条件编译实战详解
  • 微软 Ignite 2024 大会
  • CSS查缺补漏(补充上一条)
  • [C#] Bgr24彩色位图转为Gray8灰度位图的跨平台SIMD硬件加速向量算法
  • JDK1.8中JVM堆内存等参数配置
  • 微信小程序自定义图片预览操作按钮(解决api预览时不能删除提交服务器等自定义操作)
  • 大数据新视界 -- 大数据大厂之 Impala 性能优化:跨数据中心环境下的挑战与对策(上)(27 / 30)
  • 嵌入式系统与OpenCV
  • FIFO和LRU算法实现操作系统中主存管理
  • Vue.js 性能优化指南:掌握 keep-alive 的使用技巧
  • 面向对象-接口的使用
  • Spring框架特性及包下载(Java EE 学习笔记04)
  • SpringBoot与knife4j的整合使用
  • Spark RDD 的宽依赖和窄依赖
  • 2024年亚太数学建模竞赛问题C宠物产业及相关产业发展分析与对策