Beruflich Dokumente
Kultur Dokumente
Nesta Seo
Tpico
Descrio
Otimizando o desempenho do
servidor usando opes de
configurao de memria
SQL Server 2008 R2
O componente gerenciador de memria do Microsoft SQL Server elimina a necessidade de gerenciamento manual da memria
disponvel para o SQL Server. Quando o SQL Server iniciado, ele determina, dinamicamente, quanta memria alocar, de acordo
com a quantidade de memria utilizada atualmente pelo sistema operacional e outros aplicativos. Assim como muda a carga no
computador e no SQL Server, a memria alocada tambm muda. Para obter mais informaes, consulte Arquitetura de memria.
Podem ser usadas as seguintes opes de configurao de servidor para configurar o uso de memria e influir no desempenho do
servidor:
A opo de configurao de servidor min server memory pode ser usada para garantir que o SQL Server no libere memria
abaixo da memria de servidor mnima configurada quando o limite for atingido. Esta opo de configurao pode ser definida
como um valor especfico, de acordo com o tamanho e a atividade do SQL Server. Se decidir definir este valor, especifique um
valor razovel para garantir que o sistema operacional no solicite memria demais a partir do SQL Server, o que pode influir no
desempenho do SQL Server.
A opo de configurao max server memory pode ser usada para especificar a quantidade mxima de memria que o SQL
Server pode alocar ao ser iniciado e durante sua execuo. Essa opo de configurao pode ser definida como um valor
especfico, caso voc tenha cincia de que h vrios aplicativos em execuo ao mesmo tempo como o SQL Server e queira
garantir que eles tenham memria suficiente para execuo. Se esses outros aplicativos, como servidores Web ou de email,
solicitarem memria apenas conforme a necessidade, no defina a opo de configurao de servidor max server memory, pois o
SQL Server j libera memria conforme a necessidade para eles. Muitas vezes, contudo, os aplicativos usam qualquer memria
que esteja disponvel ao serem iniciados e no solicitam mais, quando necessrio. Se um aplicativo que se comporta dessa maneira
estiver em execuo no mesmo computador e ao mesmo tempo que o SQL Server, defina a opo de configurao de
servidor max server memory com um valor que garanta que a memria solicitada pelo aplicativo no seja alocada pelo SQL
Server.
No defina as opes de configurao de servidor min server memory e max server memory com o mesmo valor, tornado fixa,
assim, a quantidade de memria alocada para o SQL Server. A alocao dinmica de memria produz o melhor desempenho
global no decorrer do tempo. Para obter mais informaes, consulteOpes de memria do servidor.
A opo de configurao de servidor max worker threads pode ser usada para especificar o nmero de threads utilizados para dar
suporte a usurios conectados ao SQL Server. O valor padro para max worker threads, 0, permite ao SQL Server configurar
automaticamente o nmero de threads de trabalho ao iniciar. Essa configurao melhor para a maioria dos sistemas; porm,
dependendo de sua configurao de sistema, definir max worker threads como um valor especfico, s vezes, melhora o
desempenho. Para obter mais informaes, consulte Opo max worker threads.
Observao
A configurao padro de max worker threads no SQL Server 2000 era 255. Atualizar uma instncia do SQL Serv
de Dados para uma verso mais nova reter o valor da configurao para max worker threads. Ao atualizar, recom
instncia max worker threads para 0, para permitir que o Mecanismo de Banco de Dados calcule o melhor nmero
A opo de configurao de servidor ndice cria memria controla a quantidade de memria utilizada pelas operaes de
classificao durante a criao de ndice. Criar um ndice em um sistema de produo , normalmente, uma tarefa realizada com
pouca frequncia e, muitas vezes, agendada como trabalho a executar fora do horrio de pico. Portanto, quando se cria ndices
pouco frequentemente e fora do horrio de pico, aumentar este nmero pode melhorar o desempenho de criao de ndice.
Mantenha, contudo, a opo de configurao de servidor min memory per query em um nmero baixo, para que o trabalho de
criao de ndice seja iniciado ainda que a memria solicitada no esteja disponvel. Para obter mais informaes, consulte Opo
index create memory.
A opo de configurao de servidor min memory per query pode ser usada para especificar a quantidade mnima de memria
que deve ser alocada para a execuo de uma consulta. Quando h muitas consultas em execuo simultnea em um sistema,
aumentar o valor de min memory per query pode ajudar a aumentar o desempenho de consultas que exigem muita memria,
como operaes substanciais de classificao e hash. No defina, entretanto, a opo de configurao de
servidor min memory per query com um valor alto demais, especialmente em sistemas muito ocupados, pois, nesse caso, a
consulta teria que esperar at poder assegurar a memria mnima solicitada ou at que o valor especificado na opo de
configurao de servidor query wait fosse ultrapassado. Se houver disponvel mais memria do que o valor mnimo necessrio
especificado para executar a consulta, ser permitido que a consulta use a memria adicional, desde que esta possa ser utilizada
com eficincia pela consulta. Para obter mais informaes, consulte Opo min memory per query e Opo query wait.
Otimizando o desempenho do
servidor usando opes de
configurao de E/S
SQL Server 2008 R2
A opo de configurao de servidor recovery interval pode ser usada para configurar o uso de E/S e melhorar o desempenho do
servidor. A opo de configurao de servidor recovery interval controla as emisses de um ponto de verificao pelo Microsoft
SQL Server em cada banco de dados. Por padro, o SQL Server determina o melhor momento para executar operaes de ponto
de verificao. Contudo, para determinar se essa a configurao apropriada, monitore a atividade de gravao em disco nos
arquivos do banco de dados, usando o Monitor de Desempenho. Picos de atividade que fazem a utilizao de disco atingir 100 por
cento podem afetar o desempenho. Alterar esse parmetro para fazer com que o processo de ponto de verificao ocorra com
menos freqncia pode melhorar o desempenho global, nessa situao. Porm, continue monitorando o desempenho para
determinar se o novo valor teve um efeito positivo sobre o desempenho. Para obter mais informaes, consulteOpo recovery
interval.
Otimizando o desempenho do
servidor usando opes do
Windows
SQL Server 2008 R2
possvel definir opes do Microsoft Windows Server 2003 no servidor para otimizar o desempenho do Microsoft SQL Server,
conforme descrito nesta seo.
Nesta seo
Tpico
Descrio
Maximizando a taxa de
transferncia de dados
Configurando a execuo
de tarefas do servidor
Configurando a memria
virtual
Maximizando a taxa de
transferncia de dados
SQL Server 2008 R2
Para otimizar o uso de memria do sistema para o SQL Server, voc deve limitar a quantidade de memria usada pelo sistema de
cache de arquivo. Para limitar o cache do sistema de arquivos, verifique se a opo Maximizar taxa de transferncia de dados
para compartilhamento de arquivos no est selecionada. possvel especificar o menor cache do sistema de arquivos
selecionando Minimizar a memria usada ou Equilbrio.
2.
3.
Na guia Geral da caixa de dilogo Propriedades de Conexo Local, selecione Compartilhamento de Arquivos e
Impressoras para Redes Microsoft e clique em Propriedades.
4.
Na caixa de dilogo Compartilhamento de Arquivos e Impressoras para Redes Microsoft, escolha uma das seguintes
opes:
5.
Maximize taxa de transferncia de dados para aplicativos de rede (opo definida automaticamente pelo
SQL Server)
Para obter mais informaes, consulte a documentao do sistema operacional Windows Server 2003.
Configurando a execuo de
tarefas do servidor
SQL Server 2008 R2
Se planejar se conectar ao Microsoft SQL Server a partir de um cliente local (em execuo no mesmo computador do servidor),
voc pode melhorar o tempo de processamento configurando o servidor para que execute aplicativos de primeiro e segundo planos
com a mesma prioridade. O SQL Server, nesse caso, executado como aplicativo de segundo plano com a mesma prioridade que
outros aplicativos em execuo em primeiro plano. Para obter mais informaes, consulte a documentao do Windows Server
2003.
Observao
Para obter mais informaes sobre como configurar a execuo de tarefas do servidor, consulte a documentao do sistema
operacional Windows Server 2003.
Configurando a memria
virtual
SQL Server 2008 R2
No Microsoft Windows Server 2003, o tamanho do arquivo de paginao da memria virtual deve ser configurado de acordo com
os servios que so executados simultaneamente no computador. Quando estiver executando o SQL Server, considere definir o
tamanho do arquivo de paginao da memria virtual em 1,5 vez a memria fsica instalada no computador.
Se voc tiver instalado o recurso Pesquisa de Texto Completo e planejar executar o servio do Microsoft Search de modo a poder
efetuar indexao e consulta de texto completo, considere configurar:
O tamanho da memria virtual em, pelo menos, 3 vezes a memria fsica instalada no computador.
A opo de configurao de servidor max server memory do SQL Server em 1,5 vez a memria fsica (metade da
configurao do tamanho da memria virtual).
Observao
Embora o Windows Server permita operar sem um arquivo de paginao, isso no recomendvel.
Se a configurao de memria virtual estiver muito baixa, o Windows poder gerar uma mensagem de erro fornecendo opes
para cuidar desse aspecto. Essas opes incluem fechar alguns aplicativos, aumentar o tamanho do arquivo de paginao atual ou
criar um arquivo de paginao adicional.
Observao
As etapas para alterar o tamanho do arquivo de paginao da memria virtual dependem da verso do
Windows Server que est sendo utilizada. Consulte a documentao do Windows S
No Pesquisador de Objetos, clique com o boto direito do mouse em um servidor e selecione Propriedades.
2.
Clique no n Memria.
3.
Na caixa Memria Mnima por Consulta, insira a quantidade mnima de memria (em kilobytes) que ser alocada para
a execuo de uma consulta.
O valor padro 1.024 KB por consulta.
No Pesquisador de Objetos, clique com o boto direito do mouse em um servidor e selecione Propriedades.
2.
Clique no n Memria.
3.
Na caixa Memria Mnima por Consulta, insira a quantidade mnima de memria (em kilobytes) que ser alocada para
a execuo de uma consulta.
O valor padro 1.024 KB por consulta.
Observao
A quantidade de mnimo de memria por consulta tem precedncia sobre a memria de criao de
ndice. No Microsoft SQL Server 2000 essas opes eram independentes, enquanto no Microsoft SQL
Server 2005 elas interagem. Se voc alterar ambas as opes e o index create memory for inferior ao
min memory per query, voc receber uma mensagem de aviso, mas o valor definido. Durante a
execuo de consulta, voc recebe um outro aviso semelhante.
A opo min memory per query uma opo avanada. Se voc estiver usando o procedimento armazenado do sistema
sp_configure para alterar a configurao, poder alterar min memory per query apenas quando show advanced options estiver
definida como 1. A configurao entra em vigor imediatamente (sem a reinicializao do servidor).
Uma taxa baixa de paginao (e, logo, de falhas de pgina) normal, mesmo que o computador tenha muita memria disponvel.
O Gerenciador de Memria Virtual (VMM) do Microsoft Windows conta as pginas do SQL Server e de outros processos,
organizando os tamanhos de conjunto de trabalho desses processos. Essa atividade do VMM tende a causar falhas de pgina. Para
determinar se o SQL Server ou outro processo a causa da paginao excessiva, monitore o contador Processo: Falhas de
pgina/segundo da instncia do processo do SQL Server.
Para obter mais informaes sobre como solucionar a paginao excessiva, consulte a documentao do sistema operacional
Windows.
Observao
Como um processo, o SQL Server adquire mais memria do que a especificada pela opo max server
memory. Os componentes internos e externos podem alocar memria fora do pool de buffers, o que
consome memria adicional, mas a memria alocada ao pool de buffers normalmente representa a parte
A quantidade de memria adquirida pelo Mecanismo de Banco de Dados completamente dependente da carga de trabalho
colocada na instncia. Uma instncia SQL Server que no est processando muitas solicitaes nunca consegue atingir a min
server memory.
Se o mesmo valor for especificado para a min server memory e a max server memory, quando a memria alocada ao
Mecanismo de Banco de Dados atingir o valor, o Mecanismo de Banco de Dados interromper a liberao e a aquisio
dinamicamente para o pool de buffers.
Se uma instncia do SQL Server estiver sendo executada em um computador em que outros aplicativos so interrompidos ou
iniciados com freqncia, a alocao e a desalocao de memria pela instncia do SQL Server podero reduzir as inicializaes
dos outros aplicativos. Alm disso, se o SQL Server for um dos vrios aplicativos de servidor em execuo em um nico
computador, os administradores de sistema podero precisar controlar a quantidade de memria alocada ao SQL Server. Nesses
casos, voc pode usar as opes min server memory emax server memory para controlar a quantidade de memria que o SQL
Server pode usar. Para obter mais informaes, consulte Opes de memria do servidor.
As opes min server memory e max server memory so especificadas em megabytes.
Observao
Para obter mais informaes sobre a API de AWE, consulte MSDN Web site, e pesquise o termo "Address Windowing
Extensions."
Para obter informaes sobre como o SQL Server funciona com NUMA (acesso no uniforme memria),
consulteCompreendendo o Non-uniform Memory Access.
Como um DBA SQL Server mais experiente provavelmente voc deva utilizar o super script
sp_blitz do mestre Brent Ozar e sua equipe. Com esse script voc tem uma viso geral do servidor e
bancos de dados do seu SQL Server, podendo otimizar SQL Server com uma velocidade bem maior.
Otimizando uma Consulta
Existem vrios recursos que podemos utilizar para otimizar uma consulta, porm o primeiro passo
gerar o plano de execuo da consulta e tambm utilizar os comandos set statistics io on e set
statistics time on para trazer mais informaes sobre a consulta. O plano de execuo nos dir se
precisamos criar novos ndices j as estatistas de io vo nos mostrando os resultados das
modificaes, pois a cada melhoria o normal que sejam diminudas os nmeros de leituras lgicas e
fsicas.
Com esse primeiro passo normalmente j conseguimos obter dados para melhorias da ordem de no
minimo 50% na maioria dos ambientes, pois normalmente os ndices so criados quando o problema
esto muito graves, mas depois eles nunca mais so revisados para verificar se devem ser
modificados ou mesmo criados novos ndices.
importante a reviso dos ndices pelo menos mensalmente porque qualquer modificao de
sistema pode tornar alguns ndices obsoletos e pedir novos ndices, assim como a reviso das
estatistas, pois essas so essenciais para o SQL Server utilizar o indice correto.
Concluso
Otimizar SQL Server no deve ser uma tarefa a ser realizada uma unica vez deve ser repetida de
tempos em tempos com critrio e usando conhecimentos j consagrados pela comunidade tcnica.
Ento se a sua empresa precisar Otimizar SQL Server conte com nossa equipe de especialistas,
contamos tanto como desenvolvedores como DBAs SQL Server para atuarem em conjunto nesse
trabalho.