Como utilizar o comando DBCC MEMORYSTATUS para monitorizar a utilização da memória no SQL Server 2005

Traduções de Artigos Traduções de Artigos
Artigo: 907877 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo aborda a saída do comando DBCC MEMORYSTATUS. Este comando é frequentemente utilizado para resolver problemas de consumo de memória de Microsoft SQL Server.

Este artigo descreve os elementos da saída para o Gestor de memória, para o resumo de utilização da memória, as informações de memória de agregação, as informações de distribuição de memória intermédia, as informações do conjunto de memória intermédia e as informações de cache do procedimento. Também descreve o resultado sobre objectos de memória global, sobre objectos de memória de consulta, sobre optimização e sobre memória brokers.

INTRODUÇÃO

O comando DBCC MEMORYSTATUS fornece um instantâneo do estado de memória actual do Microsoft SQL Server. Pode utilizar a saída deste comando para resolver problemas de consumo de memória no SQL Server ou resolver erros de falta de memória específicos. (Muitos erros de falta de memória impresso automaticamente esta saída no registo de erros.) Suporte técnico da Microsoft também poderá solicitar que execute este comando durante um incidente de suporte específico se tiver um erro que pode ser associado a uma condição de pouca memória.

Nota O Monitor de desempenho (PerfMon) e Gestor de tarefas não conta para a memória correctamente se o suporte AWE (Address Windowing extensões) está activado.

Este artigo descreve alguns dos dados que podem ser obtidos a saída do comando DBCC MEMORYSTATUS. Várias secções deste artigo incluem detalhes de implementação proprietário que não são explicados aqui. Serviço de apoio a clientes da Microsoft não responda a quaisquer questões ou fornecem mais informações sobre o significado dos contadores específicos para além das informações fornecidas neste artigo.

Mais Informação

importante O comando DBCC MEMORYSTATUS destina-se a ser uma ferramenta de diagnóstico para o serviço de apoio a clientes da Microsoft. O formato dos resultados e o nível de detalhe que é fornecida estão sujeitas a alteração entre service packs e versões do produto. A funcionalidade que fornece o comando DBCC MEMORYSTATUS pode ser substituída por um mecanismo diferente em versões posteriores do produto. Por conseguinte, em versões posteriores do produto, este comando poderá não funcionar. Não existem avisos adicionais vão ser efectuados antes deste comando é alterado ou removido. Por conseguinte, as aplicações que utilizam este comando poderão quebrar sem aviso prévio.

A saída do comando DBCC MEMORYSTATUS foi alterado de versões anteriores do SQL Server. O resultado contém várias secções que estavam indisponíveis em versões anteriores do produto.

Gestor de memória

A primeira secção do resultado é Gestor de memória. Esta secção mostra o consumo de memória global pelo SQL Server.
   Memory Manager                 KB 
   ------------------------------ --------------------
   VM Reserved                    1761400
   VM Committed                   1663556
   AWE Allocated                  0
   Reserved Memory                1024
   Reserved Memory In Use         0

   (5 row(s) affected)
Os elementos nesta secção são o seguinte:
  • VM reservada : Este valor mostra a quantidade total de espaço de endereçamento virtual (VAS) que reservou o SQL Server.
  • Confirmar VM : Este valor mostra a quantidade geral de VAS do SQL Server foi consolidada. VAS está empenhada em foi associado a memória física.
  • AWE atribuída : Este valor mostra a quantidade total de memória atribuída através do mecanismo AWE a versão de 32 bits do SQL Server. Ou, este valor mostra a quantidade geral de memória que páginas bloqueadas consumir à versão de 64 bits do produto.
  • Memória reservada : Este valor mostra a memória reservada para a ligação de administrador dedicada (DAC).
  • Memória reservada em utilização : Este valor mostra a memória reservada que está a ser utilizada.

Resumo de utilização da memória

A secção do Gestor de memória é seguida por um resumo de utilização da memória para cada nó de memória. Num sistema de acesso (NUMA) activado uniforme sem memória, existirá uma entrada de nó memória correspondente para cada nó de hardware. Num sistema SMP, existirá um único nó movimento da memória.

Nota O nó de memória ID pode não corresponder ao nó ID. de hardware
   Memory node Id = 0             KB 
   ------------------------------ --------------------
   VM Reserved                    1757304
   VM Committed                   1659612
   AWE Allocated                  0
   MultiPage Allocator            10760
   SinglePage Allocator           73832

   (5 row(s) affected)
NOTA: estes valores mostram a memória que é atribuída por threads que estão em execução neste nó NUMA. Estes valores não estão a memória que é o local para o nó NUMA.

Os elementos nesta secção são o seguinte:
  • VM reservada : Este valor mostra VAS que está reservado por threads que estão em execução neste nó.
  • Confirmar VM : Este valor mostra a VAS consolidada pelo threads que estão em execução neste nó.
  • AWE atribuída : Este valor mostra a memória que é atribuída através do mecanismo AWE a versão de 32 bits do produto. Ou, este valor mostra a quantidade total de memória consumida por páginas bloqueadas a versão de 64 bits do produto.

    Num sistema activado NUMA, este valor pode estar incorrecto ou negativo. No entanto, o valor global AWE atribuída na secção Gestor de memória é um valor correcto. Para controlar a memória atribuída por nós NUMA individuais, utilize do SQL Server: memória intermédia nó objectos de desempenho. (Para mais informações, consulte SQL Server Books Online .)
  • Atribuidor de multiPage : Este valor mostra a memória atribuída através da atribuição multipage por threads que estão em execução neste nó. Esta memória provém fora o conjunto de memória intermédia.
  • Atribuidor de SinglePage : Este valor mostra a memória atribuída a atribuição de página única por threads que estão em execução neste nó. Esta memória for roubada do conjunto de memória intermédia.
Nota Somas dos valores VM dedicados em todos os nós de memória e os valores VM reservado será ligeiramente inferior os valores correspondentes são comunicados sob a secção do Gestor de memória.

Memória de agregação

A secção seguinte contém informações de memória de agregação para cada tipo de expedidor e para cada nó NUMA. Para um sistema NUMA activado, poderá ver saída semelhante ao seguinte.

Nota A tabela seguinte contém apenas parte do resultado.
   MEMORYCLERK_SQLGENERAL (node 0)                                  KB 
   ---------------------------------------------------------------- --------------------
   VM Reserved                                                      0
   VM Committed                                                     0
   AWE Allocated                                                    0
   SM Reserved                                                      0
   SM Commited                                                      0
   SinglePage Allocator                                             592
   MultiPage Allocator                                              2160

   (7 row(s) affected)

   MEMORYCLERK_SQLGENERAL (node 1)                                  KB 
   ---------------------------------------------------------------- --------------------
   VM Reserved                                                      0
   VM Committed                                                     0
   AWE Allocated                                                    0
   SM Reserved                                                      0
   SM Commited                                                      0
   SinglePage Allocator                                             136
   MultiPage Allocator                                              0

   (7 row(s) affected)

   MEMORYCLERK_SQLGENERAL (Total)                                   KB 
   ---------------------------------------------------------------- --------------------
   VM Reserved                                                      0
   VM Committed                                                     0
   AWE Allocated                                                    0
   SM Reserved                                                      0
   SM Commited                                                      0
   SinglePage Allocator                                             728
   MultiPage Allocator                                              2160

   (7 row(s) affected)
Nota Estas ID de nó corresponde a configuração de nó do computador que esteja a executar o SQL Server. O nó ID incluem software possíveis em nós que são definidos na parte superior de hardware em nós ou na parte superior de um sistema SMP, symmetric MULTIPROCESSING. Para localizar o mapeamento entre o ID de nó e CPU para cada nó, visualize informações sobre o número de ID de evento 17152. Este evento é registado no registo de aplicações no Visualizador de eventos quando iniciar o SQL Server.

Para um sistema SMP, verá apenas uma secção para cada tipo de expedidor. Esta secção é semelhante à seguinte.
   MEMORYCLERK_SQLGENERAL (Total)                                   KB 
   ---------------------------------------------------------------- --------------------
   VM Reserved                                                      0
   VM Committed                                                     0
   AWE Allocated                                                    0
   SM Reserved                                                      0
   SM Commited                                                      0
   SinglePage Allocator                                             768
   MultiPage Allocator                                              2160

   (7 row(s) affected)
Outras informações nestas secções são sobre memória partilhada:
  • SM reservada : Este valor mostra VAS que está reservado por todos os clerks deste tipo estão a utilizar os ficheiros mapeados pela memória API. Esta API também é conhecida como memória partilhada .
  • Confirmar SM : Este valor mostra VAS que é efectuada por todos os clerks deste tipo estiverem a utilizar ficheiros mapeados pela memória API.
Pode obter informações resumidas sobre cada tipo de expedidor para todos os nós de memória utilizando a vista de gestão dinâmica sys.dm_os_memory_clerks (DMV). Para efectuar este procedimento, execute a seguinte consulta:
select 
	type,
	sum(virtual_memory_reserved_kb) as [VM Reserved],
	sum(virtual_memory_committed_kb) as [VM Committed],
	sum(awe_allocated_kb) as [AWE Allocated],
	sum(shared_memory_reserved_kb) as [SM Reserved], 
	sum(shared_memory_committed_kb) as [SM Committed],
	sum(multi_pages_kb) as [MultiPage Allocator],
	sum(single_pages_kb) as [SinlgePage Allocator]
from 
	sys.dm_os_memory_clerks 
group by type

Distribuição de memória intermédia

A secção seguinte mostra a distribuição de memórias intermédias do 8 quilobytes (KB) no conjunto de memória intermédia.
   Buffer Distribution            Buffers
   ------------------------------ -----------
   Stolen                         553
   Free                           103
   Cached                         161
   Database (clean)               1353
   Database (dirty)               38
   I/O                            0
   Latched                        0

   (7 row(s) affected)
Os elementos nesta secção são o seguinte:
  • Stolen : memória Stolen descreve memórias intermédias de 8 KB que o servidor utiliza para objectivos diversos. Estas memórias intermédias servem como memória genérico arquivo atribuições. Diferentes componentes de servidor utilizam estas memórias intermédias para armazenar estruturas de dados interna. O processo de lazywriter não é permitido para limpar as memórias intermédias Stolen fora do conjunto de memória intermédia.
  • livre : Este valor mostra consolidadas memórias intermédias que actualmente não estão a ser utilizadas. Existem estas memórias intermédias de retenção de dados. Ou, podem pedir estas memórias intermédias e, em seguida, marcar estas memórias intermédias como Stolen outros componentes.
  • em cache : Este valor mostra as memórias intermédias são utilizadas para vários caches.
  • base de dados (raiz) : Este valor mostra as memórias intermédias que têm conteúdo da base de dados e que não foram modificados.
  • base de dados (dirty) : Este valor mostra as memórias intermédias que têm conteúdo da base de dados e que foram modificados. Estas memórias intermédias contém alterações tem de ser limpa no disco.
  • E/s : Este valor mostra as memórias intermédias que estão a aguardar uma operação de E/s pendente.
  • Latched : Este valor mostra as memórias intermédias latched . Uma memória intermédia é latched quando um thread é ler ou modificar o conteúdo de uma página. Uma memória intermédia é também latched quando a página é a ser lido a partir do disco ou escritas no disco. Um enganchado é utilizado para manter a consistência física dos dados na página enquanto está a ser de leitura ou modificado. Um bloqueio é utilizado para manter a consistência transaccional e lógica.

Detalhes de conjunto de memória intermédia

Pode obter informações detalhadas sobre memórias intermédias de conjunto de memória intermédia para páginas de base de dados utilizando sys.dm_os_buffer_descriptors DMV. E pode obter informações detalhadas sobre páginas de conjunto de memória intermédia que está a ser utilizados para fins de servidor diversos utilizando sys.dm_os_memory_clerks DMV.

A secção seguinte apresenta detalhes sobre o conjunto de memória intermédia e informações adicionais.
   Buffer Counts                  Buffers
   ------------------------------ --------------------
   Committed                      1064
   Target                         17551
   Hashed                         345
   Stolen Potential               121857
   External Reservation           645
   Min Free                       64
   Visible                        17551
   Available Paging File          451997

   (8 row(s) affected)
Os elementos nesta secção são o seguinte:
  • dedicado : Este valor mostra as memórias intermédias totais que estão dedicados . Memórias intermédias que estão dedicadas dispõe de memória física associada. O valor de dedicado é o tamanho actual do conjunto de memória intermédia. Este valor inclui a memória física atribuída se o suporte AWE é activado.
  • destino : Este valor mostra o tamanho de destino do conjunto de memória intermédia. Se o valor de destino for maior que o valor dedicado , o conjunto de memória intermédia é aumentar. Se o valor de destino for menor que o valor de dedicado , o conjunto de memória intermédia é diminuir.
  • Hashed : Este valor mostra as páginas de dados e páginas de índice armazenados no conjunto de memória intermédia.
  • Roubado potenciais : Este valor mostra as páginas máxima que podem ser roubadas do conjunto de memória intermédia.
  • ExternalReservation : Este valor mostra as páginas que foram reservadas para consultas que vão executar uma operação de ordenação ou uma operação de hash. Estas páginas ainda não tem sido roubadas.
  • Mínimo livre : Este valor mostra as páginas que o conjunto de memória intermédia tenta ter na lista livre.
  • visível : Este valor mostra as memórias intermédias são visíveis em simultâneo. Estas memórias intermédias podem ser acedidas directamente ao mesmo tempo. Este valor é normalmente igual para as memórias intermédias totais. No entanto, quando o AWE suporte está activado, este valor poderá ser-menor do que as memórias intermédias totais.
  • Ficheiro de paginação disponível : Este valor mostra a memória disponível ser consolidada. Este valor é expresso como o número de memórias intermédias de 8 KB. Para mais informações, consulte o tópico "GlobalMemoryStatusEx função" na documentação da API do Windows.

Cache de procedimento

A secção seguinte descreve Maquilhagem do procedimento cache.
   Procedure Cache                Value
   ------------------------------ -----------
   TotalProcs                     4
   TotalPages                     25
   InUsePages                     0

   (3 row(s) affected)
os elementos nesta secção são os seguintes:
  • TotalProcs : Este valor mostra os objectos em cache totais que estão actualmente na cache do procedimento. Este valor vai corresponder às entradas no sys.dm_exec_cached_plans DMV.

    Nota Devido à natureza dinâmica destas informações, a correspondência poderá não ser exacta. Pode utilizar do desempenho para monitorizar o do SQL Server: plano cache objecto e o sys.dm_exec_cached_plans DMV para obter informações detalhadas sobre o tipo de objectos em cache, tais como activadores, procedimentos e objectos ad hoc.
  • TotalPages : Este valor mostra as páginas cumulativas que tem de ter que armazenar todos os objectos em cache na cache do procedimento.
  • InUsePages : Este valor mostra as páginas na cache do procedimento que pertencem a procedimentos que estão actualmente em execução. Estas páginas não podem ser eliminadas.

Objectos de memória global

A secção seguinte contém informações sobre vários objectos de memória global. Esta secção também contém informações sobre quantidade memória memória global objectos utilização.
   Global Memory Objects          Buffers
   ------------------------------ --------------------
   Resource                       126
   Locks                          85
   XDES                           10
   SETLS                          2
   SE Dataset Allocators          4
   SubpDesc Allocators            2
   SE SchemaManager               44
   SQLCache                       41
   Replication                    2
   ServerGlobal                   25
   XP Global                      2
   SortTables                     2

   (12 row(s) affected)
Os elementos nesta secção são o seguinte:
  • recurso : Este valor mostra a memória que utiliza o objecto de recurso . O objecto de recurso é utilizado pelo motor de armazenamento e várias estruturas de todo o servidor.
  • bloqueia : Este valor mostra a memória que utiliza o Gestor de bloqueio.
  • XDES : Este valor mostra a memória que utiliza o Gestor de transacções.
  • SETLS : Este valor mostra a memória é utilizada para atribuir a estrutura de por thread específicas do motor de armazenamento que utiliza o armazenamento local do thread.
  • SE Allocators de conjunto de dados : Este valor mostra a memória que é utilizada para atribuir estruturas de tabela acesso através da definição de Métodos de acesso .
  • SubpDesc Allocators : Este valor mostra a memória que é utilizada para gerir subprocessos para consultas paralelas, operações de cópia de segurança, operações de restauro, operações de base de dados, operações de ficheiros, espelhamento (mirroring) e cursores assíncronos. Estes subprocessos são também conhecidas como processos paralelos .
  • SE SchemaManager : Este valor mostra a memória pelo Gestor de esquemas para armazenar metadados específicas do motor de armazenamento.
  • SQLCache : Este valor mostra a memória que é utilizada para armazenar o texto de ad hoc declarações e instruções preparadas.
  • replicação : Este valor mostra a memória que o servidor utiliza para replicação interno subsistemas.
  • ServerGlobal : Este valor mostra o objecto de memória do servidor global que é genericamente utilizado por vários subsistemas.
  • XP Global : Este valor mostra a memória expandida a utilização de procedimentos armazenados.
  • Tabelas de ordenação : Este valor mostra a memória que ordenar utilização de tabelas.

Objectos de memória de consulta

A secção seguinte descreve informações de concessão de memória de consulta. Esta secção inclui um instantâneo da utilização da memória a consulta. Query memory is also known as workspace memory.
   Query Memory Objects           Value
   ------------------------------ -----------
   Grants                         0
   Waiting                        0
   Available (Buffers)            14820
   Maximum (Buffers)              14820
   Limit                          10880
   Next Request                   0
   Waiting For                    0
   Cost                           0
   Timeout                        0
   Wait Time                      0
   Last Target                    11520

   (11 row(s) affected)

   Small Query Memory Objects     Value       
   ------------------------------ ----------- 
   Grants                         0
   Waiting                        0
   Available (Buffers)            640
   Maximum (Buffers)              640
   Limit                          640

   (5 row(s) affected)
If the size and the cost of a query satisfy ?small? query memory thresholds, the query is put in a small query queue. Este comportamento impede que consultas mais pequenas seja atrasada atrás maiores consultas que já se encontram na fila.

Os elementos nesta secção são o seguinte:
  • concede : Este valor mostra as consultas em execução com concede de memória.
  • a aguardar : Este valor mostra as consultas que aguardam para obter concede de memória.
  • disponível : Este valor mostra as memórias intermédias que estão disponíveis para consultas para utilização como hash da área de trabalho e ordenar como área de trabalho. O valor disponível é actualizado periodicamente.
  • máximo : Este valor mostra as memórias intermédias totais que podem ser fornecidas a todas as consultas para utilização como área de trabalho.
  • limite : Este valor mostra o destino de execução de consulta para a fila de consulta grande. Este valor é diferente do valor máximo (memórias intermédias) porque o valor máximo (memórias intermédias) não é actualizado até haver alteração na fila.
  • Pedido seguinte : Este valor mostra o tamanho do pedido de memória, nas memórias intermédias para a seguinte consulta de espera.
  • A aguardar para : Este valor mostra a quantidade de memória que tem de estar disponível para executar a consulta a que se refere o valor Pedido seguinte . O valor Em espera para é o valor Pedido seguinte multiplicado por um factor de espaço. Este valor eficazmente garante que um valor específico de memória estarão disponível quando a consulta espera seguinte é executada.
  • custo : Este valor mostra o custo da seguinte consulta em espera.
  • tempo de espera : Este valor mostra o limite de tempo, em segundos, para a seguinte consulta de espera.
  • Tempo de espera : Este valor apresenta o tempo decorrido, em milissegundos, uma vez que a seguinte consulta espera foi colocada na fila.
  • Última destino : Este valor mostra o limite de memória global para execução da consulta. Este valor é o limite de fila de consulta grande e a fila de consulta pequeno combinado.

Optimização

The next section is a summary of the users who are trying to optimize queries at the same time.
   Optimization Queue             Value
   ------------------------------ --------------------
   Overall Memory                 156672000
   Last Notification              1
   Timeout                        6
   Early Termination Factor       5

   (4 row(s) affected)

   Small Gateway                  Value
   ------------------------------ --------------------
   Configured Units               8
   Available Units                8
   Acquires                       0
   Waiters                        0
   Threshold Factor               250000
   Threshold                      250000

   (6 row(s) affected)

   Medium Gateway                 Value
   ------------------------------ --------------------
   Configured Units               2
   Available Units                2
   Acquires                       0
   Waiters                        0
   Threshold Factor               12

   (5 row(s) affected)

   Big Gateway                    Value
   ------------------------------ --------------------
   Configured Units               1
   Available Units                1
   Acquires                       0
   Waiters                        0
   Threshold Factor               8

   (5 row(s) affected)
Queries are submitted to the server for compilation. O processo de compilação inclui análise algebraization e optimização. As consultas são classificadas baseado na quantidade de memória que cada consulta irá consumir durante o processo de compilação.

Nota Este valor não inclui a memória necessária para executar a consulta.

Não quando uma consulta é iniciado, existe um limite em consultas quantas podem ser compiladas. À medida que o consumo de memória aumenta e atinge um limite, a consulta tem de passar um gateway para continuar. Existe um limite progressivamente diminuição de consultas em simultâneo compilados após cada gateway. O tamanho de cada gateway depende da plataforma e a carga. Gateway tamanhos são escolhidos para maximizar a escalonabilidade e o débito.

Se a consulta não é possível passar um gateway, a consulta irá aguardar até que esteja disponível memória. Ou, a consulta devolverá um erro de limite de tempo (erro 8628). Além disso, a consulta não pode adquirir um gateway se o utilizador cancela a consulta ou se for detectado um impasse. Se uma consulta passar vários gateways, a consulta não liberta os gateways mais pequenos até que tenha concluído o processo de compilação.

Este comportamento permite ocorrer ao mesmo tempo apenas compilações de que utilizem muita memória uns. Além disso, este comportamento maximiza o desempenho de consultas mais pequenos.

Memória brokers

As próximas três secções mostram informações sobre brokers de memória que o controlo em cache memória, roubada memória e memória reservada. Informações que estas secções fornecem apenas podem ser utilizadas para diagnósticos internos. Por este motivo, estas informações não for detalhadas aqui.
   MEMORYBROKER_FOR_CACHE           Value
   -------------------------------- --------------------
   Allocations                      1843
   Rate                             0
   Target Allocations               1843
   Future Allocations               0
   Last Notification                1

   (4 row(s) affected)

   MEMORYBROKER_FOR_STEAL           Value
   -------------------------------- --------------------
   Allocations                      380
   Rate                             0
   Target Allocations               1195
   Future Allocations               0
   Last Notification                1

   (4 row(s) affected)

   MEMORYBROKER_FOR_RESERVE         Value
   -------------------------------- --------------------
   Allocations                      0
   Rate                             0
   Target Allocations               1195
   Future Allocations               0
   Last Notification                1

   (4 row(s) affected)

Propriedades

Artigo: 907877 - Última revisão: 20 de novembro de 2007 - Revisão: 1.3
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
Palavras-chave: 
kbmt kbsql2005engine kbtshoot kbinfo KB907877 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 907877

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com