Como reduzir a paginação da memória de pool do buffer na versão de 64 bits do SQL Server

Traduções deste artigo Traduções deste artigo
ID do artigo: 918483 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Microsoft SQL Server realiza o gerenciamento de memória dinâmica com base nos requisitos de memória de carga atual e atividades do sistema. No Windows Server 2003 ou um Windows XP ou sistema de versão posterior, o SQL Server pode usar mecanismos de notificação de memória são fornecidos pela API do Windows QueryMemoryResourceNotification. Em um sistema baseado em Microsoft Windows 2000 Server, o SQL Server periodicamente calcula a memória física livre no sistema usando a API nativa do Windows. Com base nessas informações de API do Windows QueryMemoryResourceNotification ou de cálculo de memória, do SQL Server responde à situação atual de memória em um sistema específico. Isso fornece os seguintes benefícios:
  • O sistema não despaginar o conjunto de trabalho do processo do SQL Server.
  • As páginas do banco de dados necessários estão disponíveis na memória, para reduzir as necessidades de e/s físicas.
Para obter mais informações, consulte o tópico "gerenciamento de memória dinâmica" e o tópico "Opções de memória do servidor" nos Manuais Online do SQL Server.

Sintomas

Em edições de 64 bits do SQL Server, vários problemas podem ocorrer. Por exemplo, os seguintes problemas podem ocorrer:
  • O desempenho do SQL Server diminui repentinamente.
  • Um computador que esteja executando o SQL Server pára de responder por um curto período.
  • Ocorre um tempo limite para aplicativos que se conectam ao SQL Server.
  • Problemas ocorrem quando você executa comandos simples ou usa aplicativos do sistema.
Se você instalou o SQL Server 2005 Service Pack 2 (SP2) ou uma versão posterior, uma das seguintes mensagens de erro é registrada no log de erros do SQL Server quando esses problemas ocorrem:
Mensagem de erro 1
Data hora parte significativa da spid1s de memória de processo do sql server sofreu page out. Isso pode resultar em degradação de desempenho. Duração: 0 segundos. Conjunto de trabalho (KB): 1086400, comprometida (KB): 2160928, utilização de memória: 50%.
Mensagem de erro 2
Data hora parte significativa da spid1s de memória de processo do sql server sofreu page out. Isso pode resultar em degradação de desempenho. Duração: 315 segundos. Conjunto de trabalho (KB): 410156, comprometida (KB): 2201296, utilização de memória: 18%.
Mensagem de erro 3
Data hora parte significativa da spid1s de memória de processo do sql server sofreu page out. Isso pode resultar em degradação de desempenho. Duração: 646 segundos. Conjunto de trabalho (KB): 901904, comprometida (KB): 2215752, utilização de memória: 40%.

A equipe de suporte do Microsoft SQL Server também observou mensagens de erro adicionais ou avisos são registrados no log de erros do SQL Server ou nos logs de eventos do Windows. Essas mensagens se parecer com o seguinte:
2009-05-05 15:43:56.01 Server      Resource Monitor (0x13c43) Worker 0x0412C1E8 appears to be non-yielding on Node 0. Memory freed: 34152 KB. Approx CPU Used: kernel 171 ms, user 140 ms, Interval: 125093.

2009-05-05 12:54:52.18 Server      * *******************************************************************************
2009-05-05 12:54:52.18 Server      * BEGIN STACK DUMP:
2009-05-05 12:54:52.18 Server      *   05/05/08 12:54:52 spid 0
2009-05-05 12:54:52.18 Server      * Non-yielding Resource Monitor
2009-05-05 12:54:52.18 Server      * *******************************************************************************

2009-06-10 09:13:53.44 Server      * *******************************************************************************
2009-06-10 09:13:53.44 Server      * BEGIN STACK DUMP:
2009-06-10 09:13:53.44 Server      *   06/10/09 09:13:53 spid 0
2009-06-10 09:13:53.44 Server      * Non-yielding IOCP Listener
2009-06-10 09:13:53.44 Server      * *******************************************************************************

2009-06-10 09:13:55.85 spid2s      LazyWriter: warning, no free buffers found.

2009-07-15 13:27:45.35 spid4s      AppDomain xx (SQLCLR.dbo[runtime].xx) is marked for unload due to memory pressure.
2009-07-15 13:27:45.35 spid4s      AppDomain xx (SQLCLR.dbo[runtime].xx) unloaded.

2009-07-15 13:37:51.42 Logon       Error: 17189, Severity: 16, State: 1.
2009-07-15 13:37:51.42 Logon       SQL Server failed with error code 0xc0000000 to spawn a thread to process a new login or connection. Check the SQL Server error log and the Windows event logs for information about possible related problems. [CLIENT: xx.xxx.xx.xx]

Event Type:	Error
Event Source:	SQLBrowser
Event ID:	8
Description: The SQLBrowser service was unable to process a client request. 
Essas mensagens de erro adicionais ou avisos podem aparecer em conjunto com o erro "uma parte significativa da memória do processo do sql server sofreu page out" mensagem. Em vários casos, essas mensagens de erro adicionais ou avisos não apareceu junto com a mensagem de erro.

Se você observar uma dessas mensagens de erro ou avisos, considere o SQL Server funcionando paginação de conjunto que é discutida neste artigo como uma possível causa, mas não como a causa apenas. Essas mensagens de erro adicionais ou avisos foi registrados devido a várias condições ou causas.

Causa

Esse problema ocorre porque as páginas do sistema operacional Windows fora do conjunto de trabalho do processo do SQL Server.

Essas mensagens de erro são registradas quando o conjunto de trabalho de um processo do SQL Server atinge 50 por cento ou menos de memória que está comprometida com o processo do SQL Server. Você pode usar essas mensagens de erro para determinar o caso em que o desempenho do SQL Server diminui significativamente porque as páginas do sistema operacional Windows fora do conjunto de trabalho do processo do SQL Server. Além disso, essas mensagens de erro são registradas a cada cinco minutos durante os primeiros 30 minutos. Depois de 30 minutos, a freqüência dessas mensagens de erro dobra até que a freqüência atingiu o valor máximo de um dia.

Quando esse problema ocorrer, você poderá notar que o conjunto de trabalho de outros aplicativos no sistema também é paginado ao mesmo tempo.
Para obter mais informações, visite o seguinte site da Microsoft:
http://blogs.msdn.com/psssql/archive/2007/05/31/the-SQL-Server-Working-Set-Message.aspx
Além disso, existe um problema conhecido no SQL Server no qual você pode receber uma instância desta mensagem de erro. A mensagem de erro é registrada no log de erros do SQL Server durante o processo de inicialização do SQL Server. A mensagem de erro pode ser um aviso falso. Portanto, talvez não indique que corte do conjunto de trabalho realmente ocorreu. Para obter mais informações, visite o seguinte site da Microsoft:
http://blogs.msdn.com/psssql/Archive/2009/05/12/SQL-Server-Reports-Working-Set-Trim-Warning-message-during-Early-Startup-Phase.aspx

Como Contornar

Antes de tentar resolver esse problema, execute as etapas na seção "Como solucionar este problema" para resolver esse problema.

Se você ainda enfrentar esse problema, você pode impedir que o sistema operacional Windows paginação a memória do pool de buffer do processo do SQL Server, bloqueando a memória alocada para o pool de buffer na memória física. Você pode bloquear a memória atribuindo o direito de usuário Bloquear páginas na memória para a conta de usuário que é usada como a conta de inicialização do serviço do SQL Server.

Observação Para edições de 64 bits do SQL Server, somente o SQL Server Enterprise Edition pode usar o usuário Bloquear páginas na memória à direita. Isso é aplicável para o SQL Server 2005 [RTM, SP1, SP2, SP3] e para o SQL Server 2008 [RTM e SP1]. SQL Server 2008 SP1 cumulativa atualização 2 e SQL Server 2005 SP3 cumulativa atualização 4 introduzem suporte para as edições do SQL Server padrão usar o usuário Bloquear páginas na memória à direita. Para obter mais informações sobre o suporte para páginas bloqueadas em sistemas de 64 bits, clique no número abaixo para ler o artigo na Base de dados de Conhecimento Microsoft:
970070 Suporte para páginas bloqueadas em sistemas SQL Server 2005 Standard Edition de 64 bits e em sistemas SQL Server 2008 Standard Edition 64-bit
Para atribuir o direito de usuário Bloquear páginas na memória , siga estas etapas:
  1. Clique em Iniciar, Executar, tipo gpedit. msce, em seguida, clique em OK.

    Observação Será exibida a caixa de diálogoDiretiva de grupo .
  2. Expanda ComputerConfiguratione, em seguida, expanda Configurações do Windows.
  3. Expanda Configurações de segurançae, em seguida, expandaDiretivas locais.
  4. Clique em Atribuição de direitos de usuárioe, em seguida, clique duas vezes em Bloquear páginas inmemory.
  5. Na caixa de diálogo Configuração da diretiva de segurança Local, clique em Adicionar usuário ou grupo.
  6. Na caixa de diálogo Selecionar usuários ou grupos , adicione a conta que tem permissão para executar o arquivo Sqlservr.exe e, em seguida, clique emOK.
  7. Feche a caixa de diálogo Diretiva de grupo .
  8. Reinicie o serviço SQL Server.
Depois de atribuir o direito de usuário Bloquear páginas na memória e reinicie o serviço SQL Server, o sistema operacional Windows não processam páginas fora da memória de pool de buffer dentro do SQL Server. No entanto, o sistema operacional Windows pode despaginar ainda a memória de pool do nonbuffer dentro do processo do SQL Server.

Você pode validar que o direito de usuário é usado pela instância do SQL Server, certificando-se de que a seguinte mensagem é gravada no Log de erro do SQL Server na inicialização:
Usando páginas bloqueadas para o pool de buffer
Esta mensagem se aplica somente às edições de 64 bits do SQL Server.For obter mais informações sobre essa mensagem do log de erros, visite o seguinte site da Microsoft:
http://blogs.msdn.com/psssql/archive/2007/10/18/do-i-have-to-Assign-the-Lock-Privilege-for-local-System.aspx
Quando as páginas do sistema operacional Windows fora da memória de pool do nonbuffer, você ainda pode encontrar problemas de desempenho. No entanto, as mensagens de erro mencionadas na seção "Sintomas" não são registradas no log de erros do SQL Server. Esse comportamento ocorre porque o conjunto de trabalho de um processo do SQL Server normalmente não atingir 50% ou menos de memória confirmada.

Mais Informações

Como solucionar esse problema

Para solucionar esse problema, execute as seguintes etapas:
  1. Para resolver os problemas conhecidos que causam o sistema operacional Windows página do conjunto de trabalho do processo do SQL Server, aplique os hotfixes descritos nos seguintes artigos da Base de Conhecimento Microsoft.

    Observação Os hotfixes são cumulativos. Uma versão mais recente de um hotfix contém as versões anteriores desse hotfix.
    • Microsoft encontrou um problema que pode fazer com que a edição de 64 bits do SQL Server funcionando conjunto deve ser aparada. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
      905865 Os tamanhos dos conjuntos de trabalho de todos os processos em uma sessão de console podem ser cortados quando você usar os serviços de Terminal para fazer logon ou logoff em um computador que esteja executando o Windows Server 2003
    • Computadores que executam o Windows Server 2003 podem ser muito agressivos quando eles armazena em cache os buffers sujos se houver um aplicativo executando em buffer e/s, como uma operação de cópia de arquivo. Esse comportamento pode fazer com que o conjunto de trabalho no SQL Server deve ser aparada. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
      920739 Você pode enfrentar uma diminuição no desempenho geral do sistema quando você estiver copiando arquivos maiores que aproximadamente 500 MB no Windows Server 2003 SP1 ou no Windows Server 2003 SP1
    • O conjunto de trabalho do SQL Server pode ser cortado quando o sistema estiver usando alguns recursos avançados do TCP. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
      942861 Mensagem de erro quando um aplicativo se conecta ao SQL Server em um servidor que esteja executando o Windows Server 2003: "Erro geral de rede," "Erro de nível de transporte" ou "Falha de vínculo de comunicação"
    • Em um computador multiprocessador que esteja executando o Windows Server 2003, o processo do sistema pode consumir a maior parte da memória do sistema disponível. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
      942486 O processo do sistema pode consumir a maior parte da memória do sistema disponível em um computador multiprocessador que esteja executando o Windows Server 2003
  2. Se um driver de dispositivo usa o MmAllocateContiguousMemory função, e se ele define o valor da HighestAcceptableAddress o parâmetro é de menos de 4 gigabytes (GB), o sistema operacional Windows pode despaginar o conjunto de trabalho do processo do SQL Server de 64 bits. Para resolver esse problema, contate o fornecedor do driver de dispositivo para atualizações de driver. Para obter uma lista dos drivers que encontraram problemas, consulte a seção "outros fornecedores" no seguinte artigo da Base de Conhecimento Microsoft:
    2121098 Recomendado atualizações de sistema operacional e drivers para instalações do SQL Server
  3. Se você ainda encontrar esses problemas depois que você aplicar esses hotfixes, aplica um hotfix do Windows que limita o número de operações de apara por processo. Para obter mais informações, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
    938486 Um computador baseado no Windows Server 2003 pára de responder devido a uma operação de remoção de Gerenciador de memória é causada por um módulo indeterminado que solicita muita memória
    956341 Um computador baseado no Windows Server 2003 pára de responder devido a uma solicitação de alocação de memória grande
    Quando um driver de dispositivo tenta alocar memória, o sistema operacional Windows pode despaginar o conjunto de trabalho de outros aplicativos. Esse hotfix do Windows permite que você use o rastreamento de eventos para encontrar o driver de dispositivo que causa o problema. Para obter mais informações sobre o driver específico que causa o comportamento de remoção de conjunto de trabalho, consulte o artigo do MSDN"Identificando Drivers que alocam memória contígua."
  4. Os aplicativos podem usar o cache do sistema muito e podem causar um grande crescimento do cache do sistema. Para responder ao crescimento do cache do sistema, as páginas do sistema para fora do conjunto de trabalho do processo do SQL Server ou de outros aplicativos. Se você enfrentar esse problema, você pode usar algumas funções de gerenciamento de memória do aplicativo. Essas funções controlam o espaço de cache do sistema podem usar operações de e/s de arquivo no aplicativo. Por exemplo, você pode usar o SetSystemFileCacheSize função e GetSystemFileCacheSize função para controlar o espaço de cache do sistema podem usar operações de e/s de arquivo.

    Você pode usar o objeto de desempenho de memória para exibir os valores dos contadores de vários nesse objeto para determinar se o cache do sistema de conjunto de trabalho usa muita memória. Por exemplo, você pode exibir os contadores de Bytes de Cache e sistema Bytes residentes no Cache. Para obter mais informações sobre esse tópico, visite os seguintes sites da Microsoft:
    http://blogs.msdn.com/ntdebugging/archive/2007/11/27/Too-much-cache.aspx

    http://blogs.msdn.com/ntdebugging/Archive/2009/02/06/Microsoft-Windows-Dynamic-Cache-Service.aspx

    http://support.microsoft.com/default.aspx?scid=KB;EN-US; 976618
    Você pode baixar e implantar o "serviço Microsoft Windows Dynamic Cache" para controlar a memória consumida pelo cache do sistema.
  5. Se o SQL Server estiver sendo executado em conjunto com o SAP R/3, você pode enfrentar um problema de paginação. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
    931308 Você pode enfrentar maior paginação no disco rígido quando você executa um programa do SAP R/3 em um computador baseado no Windows Server 2003
  6. Se você estiver executando o SQL Server no Windows Server 2008, você deve aplicar correções para problemas conhecidos que podem levar ao trabalho conjunto aparar ou consumo excessivo de memória desnecessários por outros componentes do sistema operacional. Para obter mais informações, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:

    971442 O desempenho do sistema do servidor torna-se gravemente reduzido ao tentar copiar arquivos de um servidor que esteja executando o Windows Vista ou Windows Server 2008 através de uma rede

    974609 Um computador que esteja executando o Windows Server 2008 aleatoriamente pára de responder quando você executa um aplicativo grande

    971714 O processo de geração de relatórios pode parar de responder quando você executa o Perfmon.exe com o modelo de diagnóstico do Active Directory para gerar um relatório em um controlador de domínio baseado no Windows Server 2008
  7. Se você estiver executando o SQL Server no Windows 2008 R2 funcionar, você deve aplicar correções para problemas conhecidos que podem levar à remoção de conjunto de trabalho. Para obter mais informações, clique nos números abaixo para ler o artigo na Base de dados de Conhecimento Microsoft:
    979149 Um computador que esteja executando o Windows 7 ou Windows Server 2008 R2 deixa de responder quando você executa um aplicativo grande

    2155311 Desempenho ruim ocorre em um computador que possui processadores baseados NUMA e que esteja executando o Windows Server 2008 R2 ou o Windows 7 se um solicitações thread muita memória que está dentro dos primeiros 4 GB de memória

    2468345 Computador executado incorretamente intermitentemente ou pára de responder quando é usado o driver Storport no Windows Server 2008 R2

Como determinar a memória usada por edições de 64 bits do SQL Server

Você pode usar o Monitor de desempenho para exibir a página de memória que é usada por edições de 64 bits do SQL Server. Para fazer isso, monitore o contador de desempenho a seguir:
Objeto de desempenho: memória
Contador: Páginas/s
Para obter mais informações sobre como usar esse contador para determinar a página de memória, clique no número abaixo para ler o artigo na Base de dados de Conhecimento Microsoft:
889654 Como determinar o tamanho do arquivo de página apropriada para versões de 64 bits do Windows Server 2003 ou Windows XP
Além disso, você pode medir o efeito de paginação em edições de 64 bits do SQL Server ao monitorar os contadores de desempenho a seguir:
Objeto de desempenho: processo
Contador: Private Bytes
Instância: sqlservr

Objeto de desempenho: processo
Contador: Conjunto de trabalho
Instância: sqlservr
O contador Private Bytes mede a memória que está atualmente comprometida. O contador de conjunto de trabalho mede a memória física está ocupada no momento pelo processo. edições de 64 bits do SQL Server também usam o contador de desempenho a seguir para expor a memória aloca do pool de buffer:
Objeto de desempenho: Gerenciador de memória: SQL Server
Contador: Total do servidor (KB)
Observação Se a instância da edição de 64 bits do SQL Server for uma instância nomeada, o nome do objeto de desempenho é o seguinte:
MSSQL$InstanceName: Gerenciador de memória
Se o valor do contador de conjunto de trabalho é menor que o valor do contador Total (KB) de servidor, pelo menos parte da memória que faz parte do pool de buffer foi cortado do SQL Server conjunto de trabalho.

Depois de atribuir o direito de usuário Bloquear páginas na memória e você reiniciar o serviço do SQL Server, o pool de buffer do processo do SQL Server ainda responde a eventos de notificação de recursos de memória, e ele dinamicamente aumenta ou diminui em resposta a esses eventos. No entanto, você não conseguir ver as alocações de memória para o pool de buffer que estejam bloqueadas na memória os contadores de desempenho a seguir:
  • O contador Private Bytes e o contador de conjunto de trabalho no Monitor de desempenho
  • A coluna de Uso de memória na guia processos no Gerenciador de tarefas
Depois que essas páginas são bloqueadas, esses contadores de desempenho representam as alocações de memória dentro do processo do SQL Server quando as alocações não usar pool de buffer. O contador Total (KB) de servidor do objeto de desempenho do SQL Server: memória Manager representa com precisão a memória alocada para o pool de buffer.

Considerações importantes antes de atribuir ao usuário "Bloquear páginas na memória" à direita de uma instância de uma edição de 64 bits do SQL Server

Você deve fazer outras considerações antes de atribuir o usuário Bloquear páginas na memória direito. Se você atribuir este direito de usuário no sistemas que foram configurados incorretamente, o sistema pode ficar instável ou ocorrer uma diminuição do desempenho de todo o sistema. Além disso, 333 de identificação de evento pode ser registrado no log de eventos.

Se você contatar o serviço de suporte de cliente da Microsoft (CSS) para esses problemas, engenheiros do CSS podem lhe pedir para revogar esse direito de usuário para a conta de usuário que é usada como a conta de inicialização do serviço do SQL Server. Esta etapa pode ser necessária coletar dados de desempenho importantes que os engenheiros CSS podem usar para configuração necessárias das várias opções para o SQL Server e outros aplicativos que são executados no sistema. Depois de engenheiros do CSS coletam os dados de desempenho, você pode atribuir o usuário Bloquear páginas na memória diretamente para a conta de inicialização do serviço do SQL Server.

Antes de atribuir o direito de usuário Bloquear páginas na memória , certifique-se de capturar um log do Monitor de desempenho para determinar os requisitos de memória de vários aplicativos e serviços que estão instalados no sistema. Esses aplicativos também incluem o SQL Server. Para determinar os requisitos de memória, colete as seguintes informações de linha de base:
  • Certifique-se de definir a opção de memória máxima do servidor e memória mínima do servidor corretamente. Essas opções refletem apenas o requisito de memória de pool de buffer do processo do SQL Server. Essas opções não incluem a memória alocada para outros componentes dentro do processo do SQL Server. Esses componentes incluem o seguinte:
    • Os threads de trabalho do SQL Server
    • O alocador de várias páginas do Gerenciador de memória do SQL Server
    • Diversas DLLs e componentes que o processo do SQL Server é carregado dentro do espaço de endereço do processo do SQL Server
    • As operações de backup e restauração
  • As DLLs e os componentes incluem vários provedores OLE DB, os procedimentos armazenados estendidos, objetos COM Microsoft que são usados para o procedimento de sp_OACreate armazenados, servidores vinculados e CLR do SQL Server. Memória alocada para esses componentes encontra-se sob a região de pool do nonbuffer do espaço de endereço do processo do SQL Server. Para determinar o ideal é a quantidade máxima de memória que todo o processo do SQL Server pode usar, subtrair a memória alocada para componentes que não usam o pool de buffer da memória total que você deseja que o processo do SQL Server para usar. Em seguida, você pode usar o valor restante para definir a opção de memória máxima do servidor . Antes de configurar a opção de memória máxima do servidor e a memória mínima do servidor , você deve examinar cuidadosamente o tópico "Configurando as opções de memória manualmente" nos Manuais Online do SQL Server.
  • Determine os requisitos de memória de outros aplicativos e componentes do sistema operacional Windows. Os aplicativos podem incluir outros SQL Server componentes, por exemplo, SQL Server Agent, agentes de replicação do SQL Server, SQL Server Reporting Services, SQL Server Analysis Services, SQL Server Integration Services e pesquisa de texto completo do SQL Server. Aplicativos que executam operações de backup e operações de cópia de arquivo podem usar muita memória. Considere a possibilidade de operações como cópia em massa e o Snapshot Agent que geram e/s de arquivo. Você deve considerar o requisito de memória de todos esses aplicativos ao determinar o valor da opção de memória máxima do servidor e da opção de memória mínima do servidor . Você pode usar o contador Private Bytes e o contador de conjunto de trabalho sob o objeto de processo para todos os processos para determinar o requisito de memória para um processo específico.
  • Por padrão, o direito de usuário Bloquear páginas na memória já foi atribuído à conta interna do sistema Local. Para obter mais informações, visite o seguinte site da Microsoft:
    http://blogs.msdn.com/psssql/archive/2007/10/18/do-i-have-to-Assign-the-Lock-Privilege-for-local-System.aspx
  • Se você usar uma conta de usuário do Windows globalmente para todos os processos do SQL Server em um domínio, determine os direitos de usuário são atribuídos usando uma configuração de diretiva de grupo. Um processo do SQL Server de 32 bits pode usar essa conta como a conta de inicialização. No entanto, esta conta requer o direito de usuário Bloquear páginas na memória para ativar o recurso de extensões de janela de endereço (AWE). Para obter mais informações, consulte o tópico "Fornecendo a quantidade máxima de memória para o SQL Server" nos Manuais Online do SQL Server.
  • Antes de configurar a opção de memória máxima do servidor e a opção de memória mínima do servidor para várias instâncias do SQL Server, considere os requisitos de memória do pool do nonbuffer para cada instância do SQL Server. Em seguida, configure essas opções para cada instância do SQL Server.
Idealmente, você pode coletar essas informações de linha de base durante picos de carga. Portanto, você pode determinar os requisitos de memória para vários aplicativos e componentes suportar a carga de pico. Os requisitos de memória variam de um sistema para outro sistema, dependendo as atividades e os aplicativos que são executados no sistema.

Como usar as informações de buffers em anel SQL Server para determinar as condições de memória quando ocorre de paginação

Você pode usar informações de buffers em anel SQL Server para determinar as condições de memória no servidor quando ocorre de paginação. Você pode usar um script como o script a seguir para obter essas informações.
SELECT CONVERT (varchar(30), GETDATE(), 121) as runtime,
DATEADD (ms, -1 * (sys.ms_ticks - a.[Record Time]), GETDATE()) AS Notification_time,  
 a.* , sys.ms_ticks AS [Current Time]
 FROM 
 (SELECT x.value('(//Record/ResourceMonitor/Notification)[1]', 'varchar(30)') AS [Notification_type], 
 x.value('(//Record/MemoryRecord/MemoryUtilization)[1]', 'bigint') AS [MemoryUtilization %], 
 x.value('(//Record/MemoryRecord/TotalPhysicalMemory)[1]', 'bigint') AS [TotalPhysicalMemory_KB], 
 x.value('(//Record/MemoryRecord/AvailablePhysicalMemory)[1]', 'bigint') AS [AvailablePhysicalMemory_KB], 
 x.value('(//Record/MemoryRecord/TotalPageFile)[1]', 'bigint') AS [TotalPageFile_KB], 
 x.value('(//Record/MemoryRecord/AvailablePageFile)[1]', 'bigint') AS [AvailablePageFile_KB], 
 x.value('(//Record/MemoryRecord/TotalVirtualAddressSpace)[1]', 'bigint') AS [TotalVirtualAddressSpace_KB], 
 x.value('(//Record/MemoryRecord/AvailableVirtualAddressSpace)[1]', 'bigint') AS [AvailableVirtualAddressSpace_KB], 
 x.value('(//Record/MemoryNode/@id)[1]', 'bigint') AS [Node Id], 
 x.value('(//Record/MemoryNode/ReservedMemory)[1]', 'bigint') AS [SQL_ReservedMemory_KB], 
 x.value('(//Record/MemoryNode/CommittedMemory)[1]', 'bigint') AS [SQL_CommittedMemory_KB], 
 x.value('(//Record/@id)[1]', 'bigint') AS [Record Id], 
 x.value('(//Record/@type)[1]', 'varchar(30)') AS [Type], 
 x.value('(//Record/ResourceMonitor/Indicators)[1]', 'bigint') AS [Indicators], 
 x.value('(//Record/@time)[1]', 'bigint') AS [Record Time]
 FROM (SELECT CAST (record as xml) FROM sys.dm_os_ring_buffers 
 WHERE ring_buffer_type = 'RING_BUFFER_RESOURCE_MONITOR') AS R(x)) a 
CROSS JOIN sys.dm_os_sys_info sys
ORDER BY a.[Record Time] ASC

Observação Esta consulta é válida para o SQL Server 2005 e SQL Server 2008.

Você pode consultar as informações fornecidas a sys.dm_os_process_memory de exibição de gerenciamento dinâmico para entender se o sistema está com memória insuficiente. Para obter mais informações, consulte o Books Online do SQL Server 2008 no site da MSDN:
http://msdn.microsoft.com/en-us/library/bb510747.aspx
O SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA) fornece várias regras para detectar situações que podem resultar no trabalho de remoção do conjunto do processo do SQL Server. A ferramenta BPA do SQL Server 2008 R2 oferece suporte ao SQL Server 2008 e do SQL Server 2008 R2.

Recolher esta tabelaExpandir esta tabela
Software de regraTítulo de regraDescrição da regraVersões do produto em relação à qual a regra será avaliada
SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA)
Configurações de memória do SQL Server estão incorretas


Se você executar a ferramenta BPA e recebe o aviso, o "Mecanismo de banco de dados - memória de SQL Server configurações estiverem incorretas," você precisa verificar a configuração de memória máxima do servidor para esta instância do SQL Server e siga as recomendações na seção "Considerações importantes antes de atribuir o usuário 'Bloquear páginas na memória' à direita de uma instância de uma edição de 64 bits do SQL Server" deste artigo.SQL Server 2008
SQL Server 2008 R2


SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA)Drivers e arquivos do sistema operacional precisa de atualização para o aparamento de conjunto de trabalhoSe você executar a ferramenta BPA e enfrentar o erro, "mecanismo de banco de dados - operacional drivers e arquivos de sistema precisa de atualização para aparar, de conjunto de trabalho" é necessário analisar todas as correções discutidas na seção "Resolução" deste artigo e aplicá-las.
SQL Server 2008
SQL Server 2008 R2

SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA)Uma parte significativa da memória do SQL Server sofreu page out
Se você executar a ferramenta BPA e enfrentar o erro "Mecanismo de banco de dados - parte significativa do SQL Server memória sofreu page out," você precisa revisar as seções "Resolução" e "Solução alternativa" deste artigo e tomar a ação apropriada.
SQL Server 2008
SQL Server 2008 R2


Aprimoramentos no Windows Server 2008 e no Windows Server 2008 R2


Windows Server 2008 e Windows Server 2008 R2 melhoram o mecanismo de alocação de memória contígua. Essa melhoria permite que o Windows Server 2008 e Windows Server 2008 R2 reduzir, até certo ponto, os efeitos de paginação do conjunto de trabalho de aplicativos, quando chegarem novas solicitações de memória.

A seguir está uma explicação dos aprimoramentos em relação no white paper "Avança na memória gerenciamento no Windows":

No Windows Server 2008, a alocação de memória fisicamente contígua é significativamente aprimorada. Solicitações para alocar memória contígua são muito mais probabilidade de ter êxito porque o Gerenciador de memória agora substitui dinamicamente páginas, geralmente sem aparar o conjunto de trabalho ou executar operações de e/s. Além disso, muitos mais tipos de páginas ? como pilhas do kernel e páginas de metadados do sistema de arquivos, entre outros ? agora são candidatos para substituição. Conseqüentemente, mais memória contígua estará disponível a qualquer momento. Além disso, o custo para obter tais alocações é bastante reduzido.
Para exibir o white paper "Avança na memória gerenciamento no Windows", visite o seguinte Website da Microsoft:
http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/MemMgt.docx
Para obter mais informações, visite os seguintes sites da Microsoft:
http://blogs.msdn.com/psssql/archive/2008/03/03/SQL-Server-Working-Set-Trim-Problems-Consider.aspx
http://support.microsoft.com/kb/2001745
Observação Em um computador baseado no Windows Server 2008, você deve instalar o SQL Server Service Pack 2 (SP2) ou um service pack mais recente para o SQL Server.

Os produtos de terceiros neste artigo são fabricados por empresas independentes da Microsoft. A Microsoft não oferece nenhuma garantia, implícita ou não, sobre o desempenho ou confiabilidade desses produtos.

Propriedades

ID do artigo: 918483 - Última revisão: sexta-feira, 20 de junho de 2014 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Enterprise
Palavras-chave: 
kbsqlsetup kbsql2005engine kbexpertiseadvanced kbinfo kbmt KB918483 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.
Clique aqui para ver a versão em Inglês deste artigo: 918483

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