SET STATISTICS IO (Transact-SQL)

使 SQL Server 显示有关由 Transact-SQL 语句生成的磁盘活动量的信息。

主题链接图标Transact-SQL 语法约定

语法

SET STATISTICS IO { ON | OFF }

注释

如果 STATISTICS IO 为 ON,则显示统计信息。如果为 OFF,则不显示统计信息。

如果将此选项设置为 ON,则所有后续的 Transact-SQL 语句将返回统计信息,直到将该选项设置为 OFF 为止。

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

输出项

含义

Table

表的名称。

Scan count

执行的索引或表扫描数。

logical reads

从数据缓存读取的页数。

physical reads

从磁盘读取的页数。

read-ahead reads

为进行查询而放入缓存的页数。

lob logical reads

从数据缓存读取的 text、ntext、image 或大值类型 (varchar(max)、nvarchar(max)、varbinary(max)) 页的数目。

lob physical reads

从磁盘读取的 text、ntext、image 或大值类型页的数目。

lob read-ahead reads

为进行查询而放入缓存的 text、ntext、image 或大值类型页的数目。

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

注意注意

当 Transact-SQL 语句检索 LOB 列时,有些 LOB 检索操作可能需要多次遍历 LOB 树。这可能会导致 SET STATISTICS IO 报告的次数比预期的逻辑读取次数更高。

权限

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

有关详细信息,请参阅 显示计划安全性

示例

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

USE AdventureWorks;
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 5, physical 
reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, 
lob read-ahead reads 0.