SET SET STATISTICS IO (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Faz com que o SQL Server apresente informação sobre a quantidade de atividade física e lógica de E/S gerada por Transact-SQL sentenças. O IO físico está relacionado com o acesso a páginas de dados no disco e o IO lógico está relacionado com o acesso a páginas de dados na memória (cache de dados).

Transact-SQL convenções de sintaxe

Sintaxe

SET STATISTICS IO { ON | OFF }

Resultado

A tabela seguinte lista e descreve os itens de saída.

Item de saída Meaning
Table Nome da tabela.
Scan count Número de procuras ou varreduras iniciadas após atingir o nível da folha em qualquer direção para recuperar todos os valores e construir o conjunto de dados final para a saída.

A contagem de varrimento é 0 se o índice usado for um índice único ou um índice agrupado numa chave primária e estiveres à procura de apenas um valor. Por exemplo, WHERE Primary_Key_Column = <value>.
A contagem de varredura é 1 quando procuras um valor usando um índice agrupado não único definido numa coluna de chave não primária. Este processo é feito para verificar valores duplicados para o valor-chave que procura. Por exemplo, WHERE Clustered_Index_Key_Column = <value>.
A contagem de varrimentos é N quando N é o número de diferentes buscas ou varreduras iniciadas para o lado esquerdo ou direito, ao nível da folha, após localizar um valor-chave usando a chave de índice.
logical reads Número de páginas lidas da cache de dados.
physical reads Número de páginas lidas do disco.
page server reads Número de páginas lidas a partir dos servidores de páginas. **
read-ahead reads Número de páginas colocadas na cache pela consulta, através da leitura antecipada.
page server read-ahead reads Número de páginas lidas dos servidores de páginas e colocadas na cache de dados pela consulta, através da leitura antecipada. **
lob logical reads Número de páginas LOB* lidas da cache de dados.
lob physical reads Número de páginas LOB* lidas do disco.
lob page server reads Número de páginas LOB* lidas a partir dos servidores de páginas. **
lob read-ahead reads Número de páginas LOB* colocadas na cache de dados pela consulta, através da leitura antecipada.
lob page server read-ahead reads Número de páginas LOB* lidas dos servidores de páginas e colocadas na cache de dados pela consulta, através da leitura antecipada. **

* Os tipos de dados binários de objetos grandes (LOB) incluem texto, ntext, imagem, varchar(max),nvarchar(max), varbinary(max) ou páginas de índice de columnstore.

** Não nulo apenas para Base de Dados SQL do Azure Hyperscale.

Leitura de versão

Aplica-se a: Base de Dados SQL do Azure e base de dados SQL no Microsoft Fabric

Se uma instrução ler versões anteriores de linhas de uma loja de versões, a saída de I/O é seguida por uma linha para cada objeto que tenha pelo menos uma versão lida. Uma leitura de versão ocorre cada vez que o Database Engine examina uma versão anterior de uma linha numa cadeia de versões para encontrar a versão visível para a instrução. Para mais informações, consulte Métricas de leitura de versão.

Item de saída Meaning
Object Nome qualificado pelo esquema da tabela ou da vista indexada.
Tempdb versions read Número de versões de linha lidas do armazenamento de versões em tempdb.
In-row PVS versions read Número de versões de linhas lidas do armazenamento persistente de versões (PVS) que são armazenadas na linha de dados.
Off-row PVS versions read Número de versões de linhas lidas da tabela interna PVS fora da linha.
Online index PVS versions read Número de versões de linha lidas da tabela interna do PVS utilizada enquanto uma operação de indexação online está em execução.

As leituras de versões são contagens de versões de linhas, não contagens de páginas.

Observações

Quando STATISTICS IO está LIGADO, a informação estatística é exibida, e quando está DESLIGADO, a informação não é apresentada.

Depois de esta opção ser definida como ATIVADA, todas as instruções Transact-SQL retornam a informação estatística até que a opção seja definida como DESLIGADA.

A definição de SET STATISTICS IO é definida em tempo de execução ou execução e não em tempo de análise sintática.

Observação

Quando Transact-SQL instruções recuperam colunas LOB, algumas operações de recuperação LOB podem exigir percorrer a árvore LOB várias vezes. Isto pode causar SETSET STATISTICS IO leituras lógicas superiores às esperadas.

Permissions

Para usar SET STATISTICS IO, os utilizadores devem ter as permissões adequadas para executar a instrução Transact-SQL. A permissão do SHOWPLAN não é necessária.

Examples

Este exemplo mostra quantas leituras lógicas e físicas são usadas pelo SQL Server ao processar as instruções.

Observação

No Base de Dados SQL do Azure e na base de dados SQL no Microsoft Fabric, a USE declaração não está disponível. Em vez disso, ligue-se diretamente à base de dados pretendida e execute o resto do exemplo de código.

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

Aqui está o resultado da mensagem:

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.

No Base de Dados SQL do Azure e na base de dados SQL no Microsoft Fabric, se a instrução ler versões de linha, o resultado inclui também uma linha de leitura de versão para cada objeto com leituras de versão. Por exemplo, a linha seguinte mostra que a instrução dizia 1.000 versões de linha da tabela interna PVS fora da linha ao ler a Production.ProductCostHistory tabela:

Object '[Production].[ProductCostHistory]'. Tempdb versions read 0, in-row PVS versions read 0,
off-row PVS versions read 1000, online index PVS versions read 0.