Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:Banco de Dados SQL do
Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
Banco de Dados SQL no Microsoft Fabric
Devolve informações sobre todas as páginas de dados que estão atualmente no pool de buffer do SQL Server. A saída desta vista pode ser usada para determinar a distribuição das páginas da base de dados no buffer pool de acordo com base de dados, objeto ou tipo. No SQL Server, esta vista de gestão dinâmica também devolve informações sobre as páginas de dados no ficheiro de extensão do buffer pool. Para mais informações, consulte Extensão do Pool de Buffer.
Quando uma página de dados é lida do disco, a página é copiada para o pool de buffers do SQL Server e armazenada em cache para reutilização. Cada página de dados em cache tem um descritor de buffer. Os descritores de buffer identificam de forma única cada página de dados que está atualmente armazenada em cache numa instância do SQL Server. sys.dm_os_buffer_descriptors devolve páginas em cache para todas as bases de dados de utilizadores e do sistema. Isto inclui páginas associadas à base de dados de Recursos.
Observação
Para chamar isto de Azure Synapse Analytics ou Analytics Platform System (PDW), use o nome sys.dm_pdw_nodes_os_buffer_descriptors. Essa sintaxe não é suportada pelo pool SQL sem servidor no Azure Synapse Analytics.
| Nome da coluna | Tipo de dados | Description |
|---|---|---|
| database_id | int | ID da base de dados associada à página no buffer pool. É anulável. No Banco de Dados SQL do Azure, os valores são exclusivos em um único banco de dados ou pool elástico, mas não em um servidor lógico. |
| identificação_de_ficheiro | int | ID do ficheiro que armazena a imagem persistente da página. É anulável. |
| page_id | int | ID da página dentro do ficheiro. É anulável. |
| page_level | int | Nível índice da página. É anulável. |
| allocation_unit_id | bigint | ID da unidade de alocação da página. Este valor pode ser usado para unir sys.allocation_units. É anulável. |
| page_type | nvarchar(60) | Tipo de página, tais como: Página de dados ou página de índice. É anulável. |
| row_count | int | Número de linhas na página. É anulável. |
| free_space_in_bytes | int | Quantidade de espaço livre disponível, em bytes, na página. É anulável. |
| is_modified | bit | 1 = A página foi modificada depois de ter sido lida do disco. É anulável. |
| numa_node | int | Nó de Acesso à Memória Não Uniforme para o buffer. É anulável. |
| read_microsec | bigint | O tempo real (em microssegundos) necessário para ler a página no buffer. Este número é reiniciado quando o buffer é reutilizado. É anulável. |
| is_in_bpool_extension | bit | 1 = Página está na extensão do buffer pool. É anulável. |
| pdw_node_id | int |
Aplica-se a: Azure Synapse Analytics, Analytics Platform System (PDW) O identificador do nó em que esta distribuição se encontra. |
Permissions
No SQL Server e na Instância Gerenciada do SQL, requer VIEW SERVER STATE permissão.
No Banco de Dados SQL Basic, S0e S1 objetivos de serviço e para bancos de dados em pools elásticos , a conta de de administrador do servidor, a conta de de administrador do Microsoft Entra ou a associação aode função de servidor ##MS_ServerStateReader## é necessária. Em todos os outros objetivos de serviço do Banco de dados SQL, é necessária a permissão VIEW DATABASE STATE no banco de dados ou a associação à função de servidor ##MS_ServerStateReader##.
Permissões para SQL Server 2022 e posterior
Requer a permissão VIEW SERVER PERFORMANCE STATE no servidor.
Observações
sys.dm_os_buffer_descriptors páginas de declarações que estão a ser usadas pela base de dados de Recursos. sys.dm_os_buffer_descriptors não devolve informações sobre páginas gratuitas ou roubadas, nem sobre páginas que apresentaram erros quando foram lidas.
| De | Para | On | Relacionamento |
|---|---|---|---|
| sys.dm_os_buffer_descriptors | sys.databases | database_id | muitos-para-um |
| sys.dm_os_buffer_descriptors | <UserDB>.sys.allocation_units | allocation_unit_id | muitos-para-um |
| sys.dm_os_buffer_descriptors | <UserDB>.sys.database_files | identificação_de_ficheiro | muitos-para-um |
| sys.dm_os_buffer_descriptors | sys.dm_os_buffer_pool_extension_configuration | identificação_de_ficheiro | muitos-para-um |
Examples
A. Devolver a contagem de páginas em cache para cada base de dados
O exemplo seguinte devolve a contagem de páginas carregadas para cada base de dados.
SELECT COUNT(*)AS cached_pages_count
,CASE database_id
WHEN 32767 THEN 'ResourceDb'
ELSE db_name(database_id)
END AS database_name
FROM sys.dm_os_buffer_descriptors
GROUP BY DB_NAME(database_id) ,database_id
ORDER BY cached_pages_count DESC;
B. Devolver a contagem de páginas em cache para cada objeto na base de dados atual
O exemplo seguinte devolve a contagem de páginas carregadas para cada objeto na base de dados atual.
SELECT COUNT(*)AS cached_pages_count
,name ,index_id
FROM sys.dm_os_buffer_descriptors AS bd
INNER JOIN
(
SELECT object_name(object_id) AS name
,index_id ,allocation_unit_id
FROM sys.allocation_units AS au
INNER JOIN sys.partitions AS p
ON au.container_id = p.hobt_id
AND (au.type = 1 OR au.type = 3)
UNION ALL
SELECT object_name(object_id) AS name
,index_id, allocation_unit_id
FROM sys.allocation_units AS au
INNER JOIN sys.partitions AS p
ON au.container_id = p.partition_id
AND au.type = 2
) AS obj
ON bd.allocation_unit_id = obj.allocation_unit_id
WHERE database_id = DB_ID()
GROUP BY name, index_id
ORDER BY cached_pages_count DESC;
Consulte também
sys.allocation_units (Transact-SQL)
Exibições de gerenciamento dinâmico relacionadas ao sistema operacional SQL Server (Transact-SQL)
Base de Dados de Recursos
sys.dm_os_buffer_pool_extension_configuration (Transact-SQL)