sys.dm_db_page_info (Transact-SQL)

aplica-se a: SQL Server 2019 e posterior Banco de Dados SQL do Azure a data warehouse paralela do Azure Synapse Analytics

Retorna informações sobre uma página em um banco de dados. A função retorna uma linha que contém as informações de header da página, incluindo object_id , index_id e partition_id . Essa função substitui a necessidade de usar DBCC PAGE na maioria dos casos.

Observação

sys.dm_db_page_info no momento, só tem suporte no SQL Server 2019 (15.x) e posterior.

Sintaxe

sys.dm_db_page_info ( DatabaseId, FileId, PageId, Mode )  

Argumentos

DatabaseId | Null | PADRÃO
É a ID do banco de dados. DatabaseId é smallint. Entrada válida é o número de ID de um banco de dados. O padrão é NULL, no entanto, enviar um valor NULL para esse parâmetro resultará em um erro.

FileId | Null | PADRÃO
É a ID do arquivo. FileId é int. Entrada válida é o número de ID de um arquivo no banco de dados especificado por DatabaseId. O padrão é NULL, no entanto, enviar um valor NULL para esse parâmetro resultará em um erro.

PageId | Null | PADRÃO
É a ID da página. PageId é int. Entrada válida é o número de ID de uma página no arquivo especificado por FileId. O padrão é NULL, no entanto, enviar um valor NULL para esse parâmetro resultará em um erro.

Modo | Null | PADRÃO
Determina o nível de detalhes na saída da função. 'LIMITED' retornará valores NULL para todas as colunas de descrição; 'DETAILED' preencherá colunas de descrição. DEFAULT é 'LIMITED'.

Tabela retornada

Nome da coluna Tipo de dados Descrição
database_id INT ID do banco de dados
file_id INT ID do Arquivo
page_id INT ID da página
page_header_version INT Versão do header de página
page_type INT Tipo de página
page_type_desc nvarchar(64) Descrição do tipo de página
page_type_flag_bits nvarchar(64) Bits de sinalizador de tipo no header da página
page_type_flag_bits_desc nvarchar(64) Descrição de bits do sinalizador de tipo no header da página
page_flag_bits nvarchar(64) Sinalizar bits no header da página
page_flag_bits_desc nvarchar(256) Descrição de bits de sinalizador no header da página
page_lsn nvarchar(64) Número da sequência de log/timestamp
page_level INT Nível da página no índice (folha = 0)
object_id INT ID do objeto que possui a página
index_id INT ID do índice (0 para páginas de dados de heap)
partition_id BIGINT ID da partição
alloc_unit_id BIGINT ID da unidade de alocação
is_encrypted bit Bit para indicar se a página está criptografada ou não
has_checksum bit Bit para indicar se a página tem ou não um valor de verificação
soma de verificação INT Armazena o valor da verificação que é usado para detectar dados de corrupção
is_iam_pg bit Bit para indicar se a página é ou não uma página IAM
is_mixed_ext bit Bit para indicar se alocado em uma extensão mista
has_ghost_records bit Bit para indicar se a página contém registros fantasmas
Um registro fantasma é aquele que foi marcado para exclusão, mas ainda não foi removido.
has_version_records bit Bit para indicar se a página contém registros de versão usados para Recuperação Acelerada de Banco de Dados
pfs_page_id INT ID da página PFS correspondente
pfs_is_allocated bit Bit para indicar se a página está marcada como alocada ou não na página PFS correspondente
pfs_alloc_percent INT Percentual de alocação, conforme indicado pelo byte PFS correspondente
pfs_status nvarchar(64) Byte PFS
pfs_status_desc nvarchar(64) Descrição do byte PFS
gam_page_id INT ID da página GAM correspondente
gam_status bit Bit para indicar se alocado em GAM
gam_status_desc nvarchar(64) Descrição do bit de status GAM
sgam_page_id INT ID da página do SGAM correspondente
sgam_status bit Bit para indicar se alocado no SGAM
sgam_status_desc nvarchar(64) Descrição do bit de status do SGAM
diff_map_page_id INT ID da página de bitmap diferencial correspondente
diff_status bit Bit para indicar se o status de comparação foi alterado
diff_status_desc nvarchar(64) Descrição do bit de status de comparação
ml_map_page_id INT ID da página de bitmap de log mínima correspondente
ml_status bit Bit para indicar se a página é minimamente registrada
ml_status_desc nvarchar(64) Descrição do bit de status de log mínimo
prev_page_file_id SMALLINT ID do arquivo de página anterior
prev_page_page_id INT ID da página anterior
next_page_file_id SMALLINT ID do arquivo da próxima página
next_page_page_id INT ID da próxima página
fixed_length SMALLINT Comprimento das linhas de tamanho fixo
slot_count SMALLINT Número total de slots (usados e não utilizados)
Para uma página de dados, esse número é equivalente ao número de linhas.
ghost_rec_count SMALLINT Número de registros marcados como fantasmas na página
Um registro fantasma é aquele que foi marcado para exclusão, mas ainda não foi removido.
free_bytes SMALLINT Número de bytes livres na página
free_data_offset INT Deslocamento de espaço livre no final da área de dados
reserved_bytes SMALLINT Número de bytes livres reservados por todas as transações (se heap)
Número de linhas fantasmas (se folha de índice)
reserved_bytes_by_xdes_id SMALLINT Espaço contribuído por m_xdesID para m_reservedCnt
Somente para fins de depuração
xdes_id nvarchar(64) Transação mais recente contribuição da m_reserved
Somente para fins de depuração

Comentários

A sys.dm_db_page_info função de gerenciamento dinâmico retorna informações de página como , , etc. que estão presentes em um page_id file_id index_id object_id header de página. Essas informações são úteis para solucionar problemas de desempenho e depuração de vários problemas de desempenho (contenção de bloqueio e trava) e corrupção.

sys.dm_db_page_info pode ser usado no lugar da instrução em muitos casos, mas retorna apenas as informações de header da página, não DBCC PAGE o corpo da página. DBCC PAGE ainda será necessário para casos de uso em que todo o conteúdo da página é necessário.

Usando em conjunto com outros DMVs

Um dos casos de uso importantes de sys.dm_db_page_info é uni-lo a outros DMVs que expõem informações de página. Para facilitar esse caso de uso, uma nova coluna chamada foi adicionada, que expõe informações de página em um formato page_resource hexadúx de 8 byte. Esta coluna foi adicionada a sys.dm_exec_requests e sys.sysprocesses e será adicionada a outras DMVs no futuro, conforme necessário.

Uma nova função, sys.fn_PageResCracker ,, usa o page_resource como entrada e gera uma única linha que contém database_id , file_id e page_id . Essa função pode ser usada para facilitar junções entre sys.dm_exec_requests ou sys.sysprocesses e sys.dm_db_page_info .

Permissões

Requer a VIEW DATABASE STATE permissão no banco de dados.

Exemplos

a. Exibindo todas as propriedades de uma página

A consulta a seguir retorna uma linha com todas as informações de página de uma determinada database_id file_id page_id combinação com o modo padrão (' Limited ')

SELECT *  
FROM sys.dm_db_page_info (5, 1, 15, DEFAULT)

B. Usando sys.dm_db_page_info com outras DMVs

A consulta a seguir retorna uma linha por wait_resource exposição sys.dm_exec_requests quando a linha contém um não nulo page_resource

SELECT page_info.* 
FROM sys.dm_exec_requests AS d  
CROSS APPLY sys.fn_PageResCracker (d.page_resource) AS r  
CROSS APPLY sys.dm_db_page_info(r.db_id, r.file_id, r.page_id, 'LIMITED') AS page_info

Consulte Também

Exibições e funções de gerenciamento dinâmico (Transact-SQL)
exibições de gerenciamento dinâmico relacionadas ao banco de dados (SQL Transact-)
sys.dm_exec_requests (Transact-SQL)
sys.fn_PageResCracker