Configurações de performance no SQL Server José Antônio da Cunha CEFET-RN

Documentos relacionados
BOAS PRÁTICAS DE CONFIGURAÇÃO DE MEMÓRIA E PROCESSADOR NO SGBD MICROSOFT SQL SERVER 2008 R2

Introdução ao Windows Server 2008

Instalação do Windows Server 2008

SQL Server Surface Area Configuration

STD SERVIÇO DE BACKUP EM NUVEM

Requisitos de Ambiente para Central SAVER OmniLink

Dicas para melhorar a performance do sistema

Backup. José Antônio da Cunha CEFET-RN

TUTORIAL DE INSTAÇÃO DO WINDOWS SERVER 2008 R2

Segue abaixo um manual prático de como se instalar o SQL Server 2008 para rodá-lo com os sistemas da Secullum.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO CONCEITO DE SOFTWARE PROFESSOR CARLOS MUNIZ

Procedimentos para Instalação Sisloc (Estação de Trabalho)

Leia-me do monitor do Veritas System Recovery 16

Introdução à Ciência da Computação ICC0001 Prof. Diego Buchinger

Gestão de Sistemas Operacionais

Gerência de Redes de Computadores RMON. Prof. Alex Furtunato

Apresentação. Prezado Cliente, A Newness Broadcast agradece por você se tornar um usuário do N-Map Server.

Curso de Ciência da Computação

FERRAMENTA DE CONFIGURAÇÃO DE PAINEL SENSÍVEL AO TOQUE MANUAL DE OPERAÇÃO

Laboratório 1. Configurando as Interfaces de redes

Instalação e Manutenção de Computadores Sandra Silva

Uma equipe forte: DocuWare e Microsoft Outlook

INFORMÁTICA: Informação automática

ANEXO TÉCNICO REQUERIMENTOS DE INFRAESTRUTURA BEMATECH GEMCO MATRIZ

Leia-me do Veritas System Recovery 16 Management Solution

Revisão Q de 26/06/2015

Formação de DBAs SQL Server 2008

Leia-me do Veritas System Recovery 16 Management Solution

Instalar o SQL Server 2016 usando um arquivo de configuração

Configurar servidores de raio externos no ISE

Backup do Banco Sybase Passo a Passo

Administração de Banco de Dados

Hardware - Processador

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO SISTEMA OPERACIONAL: PROCESSOS E ARQUIVOS PROFESSOR CARLOS MUNIZ

Data Warehouse ETL. Rodrigo Leite Durães.

Procedimentos para configuração do DVG-2001S para operadora Vono

UFCD SISTEMA OPERATIVO INSTALAÇÃO E CONFIGURAÇÃO

Instalação do banco de dados SQL Server 2008R2 Express (Somente no Servidor)

Instalação e Configuração de Servidores Linux Server Configuração de Rede. Prof. Alex Furtunato

COLOCANDO A REDE PARA FUNCIONAR

Requisitos do Sistema

DE FUSO HORÁRIO E HORÁRIO DE VERÃO

MASTERSAF DW PONTOS DE ATENÇÃO

Configurar receptores da notificação de SNMP em um interruptor com o CLI

Manual SISTEMA GERENCIADOR DE SENHAS Versão SERVIDOR

Organização de Computadores I

Stored Procedures e Triggers

Instalação do SQL Server 2008

Requisitos do Sistema

Manual de instalação e configuração

Benvindo ao Curso de Introdução ao Firebird com Ferramenta de Relatórios!

A instância Oracle é composta de :

Requisitos de Hardware e Software Engeman. Versão 2018/06

Configurar IP SLA que segue para as rotas estáticas IPv4 em um interruptor SG550XG

Endereçamento de Memória POR QUE UM SISTEMA X86 SÓ ENXERGA 4GB?

TRABALHO DE ANALÍSE. Arquitectura TCP-IP

Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S

CCNA 2 Conceitos Básicos de Roteadores e Roteamento

Este tutorial apresenta uma análise para uso adequado e otimizado de seus parâmetros nos processos de ETL, e sua aplicação em situações distintas.

Configurando uma regra de descoberta de rede

Prof. Adriano Maranhão

T.I. para o DealerSuite: Servidores Versão: 1.1

Requisitos do Sistema

Recreie o base de dados de CDR em um servidor do CallManager da Cisco

COMPUTADOR 2. Professor Adão de Melo Neto

Buffer de Rede Configuração de Rede <x> Modo NPA Comutação p/ PCL Configuração p/ PS Binário PS p/ MAC

Para desinstalar o antivírus, recomendo que acesse o painel de controle e selecione a opção Desinstalar um programa.

SECRETARIA DE VIGILÂNCIA EM SAÚDE DEPARTAMENTO DE GESTÃO DA VIGILÂNCIA EM SAÚDE

Manual do Simond. Peter H. Grasch

Guia para o iniciante no Orthanc Para físicos-médicos, médicos e clínicos gerais.

Introdução ao Uso do LCD Inteligente (Versão Preliminar) Por Gilson Yukio Sato. Introdução

Consultor de TI Instrutor Cisco CCNA Analista de Sistemas Especialista de TI Pai do Miguel

Sistemas Operacionais II

Sankhya Web Connection. Versão: 02 Criado em: 28/03/2017

Brilliant Solutions for a Safe World

4 Testes e experimentos realizados 4.1. Implementação e banco de dados

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

Configurando uma regra de descoberta de rede

Configurando uma regra de descoberta de rede

Montamos esse e-book para te ajudar a otimizar sua estrutura e assim o seu Protheus alcançar um melhor funcionamento de forma rápida e segura.

Procedimentos para configuração de WDS With AP

Manual de instalação do Microsoft SQL Server 2008 R2 Express no Windows 10

Buffer Trabalhos MAC Binary PS Buffer de rede Configuração <de rede> x

Administração de Sistemas Operacionais. Prof. Marlon Marcon

Utilitário de Configuração do Computador Guia do Usuário

Linha de Sistemas Folhamatic

Curso de Banco de Dados Plataforma: MS SQL Server. Configurações do Ambiente para Acesso Pós-instalação

Criar uma máquina virtual

Cisco CallManager: Manualmente suprimindo dos registros dos destalhes da chamada (CDR) sem a ferramenta de relatório administrativo (ART)

Guia de Integração do SIGAGFE com TOTVS Colaboração 2.0

Especificações e limites do Microsoft Excel

NoSQL Apache Cassandra para DBAs. Conceitos básicos que todo DBA deve conhecer sobre Apache Cassandra.

Introdução. Antes de começar

Tutoriais Able Business JUNIOR

Windows 98 e Windows Me

Transcrição:

Configurações de performance no SQL Server 2005 José Antônio da Cunha CEFET-RN

Para obter o máximo de performance, DBAs configuram o SQL Server para atender às suas necessidades de negócio e muitas vezes acabam alterando configurações de forma equivocada. Número de configurações possíveis de alterar: No SQL Server 2000 = 37 No SQL Server 2005 = 64

Conhecendo as configurações: A maneira mais fácil de obter a lista das configurações que o banco de dados possui é executando uma stored procedure de servidor chamada SP_CONFIGURE. Esta stored procedure irá listar as configurações que estão sendo utilizadas atualmente no banco de dados, e seu resultado pode variar dependendo da versão do SQL Server. EXEC SP_CONFIGURE Repare que para cada configuração, temos cinco colunas de informações:

Name: nome da configuração; Minimun: valor mínimo permitido para a configuração listada; Maximun: valor máximo permitido para a configuração listada; Config_value: valor configurado; Run_value: valor que está sendo executado. Pode ser que o valor que está sendo executado não seja o valor configurado, isto acontece porque determinadas configurações, quando alteradas, só entrarão em vigor após o servidor ser reiniciado.

Alterando uma configuração A stored procedure de servidor SP_CONFIGURE, além de exibir as configurações, pode ser utilizada também para alterá-las. A sintaxe para alterar uma configuração é a seguinte: SP_CONFIGURE [ nome da configuração ], [novo valor a ser configurado] Observe que mesmo utilizando o comando que serve para alterar uma configuração em tempo de execução, algumas configurações só serão realmente executadas ao reiniciar o servidor, como é o caso do recovery interval (intervalo de recuperação do banco de dados).

Como exemplo, vamos alterar a configuração clr enabled para desabilitar o suporte ao CLR (common langauge runtime) no banco de dados, alterando o valor de 1 para 0. SP_CONFIGURE clr enabled, 0 Para confirmar alteração SP_CONFIGURE clr enabled

Configurações que influencia a performance Dentre as configurações listadas através da stored procedure de servidor SP_CONFIGURE, vale destacar algumas configurações importantes para o conhecimento e manuteção do banco de dados e, com isso, obter um ganho considerável de desempenho: Recovery Interval, Network Packet Size, Min Memory Per Query, Max Degree Of Parallelism, Priority Boost, Max Server Memory, Min Server Memory, Index Create Memory, Nested Triggers, Query Governor Cost Limit.

Recovery Internal alterar o intervalo de recuperação dos objetos que compõem o banco de dados quando alguma falha acontecer. Se o seu SQL Server é muito ativo, recebendo uma carga enorme de transações e mantém o monitor de performance em 100% na maior parte do tempo, esta é uma boa configuração a ser alterada. Por padrão, o SQL Server tem o valor 0 nesta configuração, o que significa que ele terá até 1 minuto para realizar uma recuperação após reiniciar, o que pode não ser suficiente. Para este caso, podemos aumentar este intervalo para 5 minutos, como no exemplo abaixo: Exec SP_CONFIGURE recovery interval, 5

Network Packet Size: altera o tamanho padrão de pacotes enviados pelas transações do SGBD. O tamanho padrão é 4096 bytes para cada pacote. Esta configuração pode ser alterada para um valor maior quando a sua aplicação armazena e trafega com freqüência dados com um grande número de bytes, por exemplo, imagens e longos trechos de texto. Aumentar o número de bytes, temos menos pacotes trafegando e assim aceleramos o tráfego na rede. Por outro lado, se o banco de dados trafega dados em pouca quantidade, aumentar o tamanho dos pacotes pode ser prejudicial. Exec SP_CONFIGURE network packet size, 6000

Min Memory Per Query: altera o valor mínimo da memória para cada query. O valor mínimo padrão é 1024Kb, podendo ser aumentado somente quando o servidor possui muita memória RAM disponível e se existe a certeza de que as queries disparadas ocupam um valor bem maior que o padrão. Ou seja, as chamadas consultas pesadas. Como exemplo, considere uma consulta que traga milhares de registros de várias tabelas, e estes registros precisem ser ordenados pelo usuário. Como o espaço em memória requerido para esta tarefa é grande e sempre irá ultrapassar o tamanho padrão de 1024Kb, pode-se configurar um tamanho mínimo padrão de memória maior. Exec SP_CONFIGURE min memory per query, 3072

Max Degree Of Parallelism: altera o grau máximo de paralelismo. Por padrão, o valor 0 indica que o paralelismo está ativado e pode usar os CPU s existentes no servidor. Se você alterar esta definição para 1, o paralelismo é desativado para todas as CPU s. Devemos desativar o paralelismo somente quando for desnecessário o uso de múltiplas CPU s, por exemplo, aplicações que executam consultas que retornam poucos registros e fazem pouco uso de processamento. Para estas, aconselha-se utilizar somente uma CPU, poupando as outras CPU s para serviços com maiores prioridades. Exec SP_CONFIGURE max degree of parallelism, 0 Nota: Paralelismo é a capacidade do Query Optimizer de usar múltiplas CPUS para executar uma única consulta.

Priority Boost: altera a prioridade dos processos referentes ao SQL Server no servidor. Aqui temos uma configuração muito interessante: os processos oriundos do SQl server terão uma prioridade maior de execução que de outros aplicativos no servidor, podendo ser utilizado quando temos a certeza de que existem no servidor outras aplicações rodando além do SQL Server, e que sejam aplicações com baixo grau de importância quanto à performance. Não o utilize quando tiver apenas o SQl Server rodando no Servidor. Exec SP_CONFIGURE priority boost, 1 O valor padrão é 0 sem prioridade 1 prioridade maior

Max Server Memory e Min Server Memory: configuram o valor máximo e mínimo de memória para um servidor SQL, respectivamente. Esta opção pode ser interessante quando, no servidor onde reside o SQL Server, existirem aplicações que em determinados momentos consomem muita memória, deixando pouca para o SQL Server. Caso o seu banco de dados seja a única aplicação no servidor, aconselha-se não alterar esta configuração, porque o uso da memória já estará otimizado. Exec SP_CONFIGURE min server memory (MB), 2 Exec SP_CONFIGURE max server memory (MB), 3

INDEX Create Memory: define o tamanho de memória utilizado para criação de índices. O valor padrão 0 diz para o SQL Server determinar automaticamente o valor ideal a ser utilizado. Em praticamente todos os casos, o SQL Server irá configurar a quantidade de memória otimizada, por exemplo, em índices cluster. Em outros casos, pode acontecer de um índice ocupar espaço demais em uma tabela e tornar as consultas lentas. Somente se essa ocorrência for verificada, é que se torna importante definir um espaço em memória para os índices. Exec SP_CONFIGURE index create memory, 2048

NESTED TRIGGERS: configura o uso ou não de triggers aninhadas. Por padrão é configurada a opção 1, que significa que o uso de triggers aninhadas está ativo. Sabemos que eles consomem uma boa parte do processamento de uma transação, então caso deseje que os desenvolvedores não usem este tipos de triggers, basta setar esta configuração para o valor 0. Exec SP_CONFIGURE nested triggers, 0

Query Governor Cost Limit: configura o limite de custo de uma consulta. Esta opção é uma das poucas que normalmente sofrem alterações por parte dos DBAs, pois permite que seja gerenciado o tempo em segundos para uma consulta ser disparada. O valor padrão para essa configuração é 0, o que significa que não há limites para quanto tempo uma consulta pode ser executada. Deixar o banco de dados com esta configuração pode ser perigoso para consultas lentas, principalmente quando há diversos usuários simultâneos acessando o banco de dados. Exec SP_CONFIGURE query governor cost limit, 50 segundos Observação: Com o tempo em segundos limitado, os desenvolvedores serão levados a criar consultas mais rápidas.

Configurações avançadas O SQL Server 2005 é um SGBD onde a maioria das configurações já vêm ajustadas para se obter a melhor performance possível. Elas podem ser alteradas conforme a regra de negócio, mas no geral é aconselhável que se mantenha o valor padrão já configurado no banco. As configurações avançadas só podem ser alteradas quando a configuração show advanced options estiver setada com o valor 1. Conheça algumas destas configurações, onde na maioria dos casos, aconselha-se manter o valor padrão.

AWE ENABLED: esta é a configuração utilizada somente em situações que o SQL Server 2005 esteja rodando em um ambiente de 32 bits. Se o servidor onde o SQL Server reside possui 4GB de memória RAM ou menos, aconselha-se manter o valor padrão (0, zero). Isto faz com que a memória AWE não seja utilizada. A API AWE permite executar aplicações que foram desenvolvidas para usar mais de 4GB de memória RAM no Windows 2003 Enterprise Server ou Windows 2003 Datacenter Serrver. Lembrando que se o sistema operacional for Windows 2003 Server, tanto o SQL Server 2005 Standard com o Enterprise Edition podem usar até 32GB de memória RAM. Se o sistema operacional for Windows 2003 Datacenter Server, estes dois SGBDs podem utilizar até 64GB. Atenção! para aplicações de pequeno e médio porte, aconselha-se utilizar o valor 0. Nota: A AWE (Address Windows Extensions) é uma API específica do Windows que realiza o acesso direto aos endereços de memória RAM com tamanho acima de 4GB por aplicações que fazem alto uso de memória.

AFFINITY I/O MASK: a affinity I/O mask permite que possamos configurar um conjunto de CPUs multiprocessadas para um servidor. O valor a ser configurado depende do número de CPUs a serem utilizadas, conforme a Tabela 1. Valor Descrição 1 Configura o uso de até 8 CPUs em um computador. 2 Configura o uso de até 16 CPUs em um computador. 3 Configura o uso de até 24 CPUs em um computador. 4 Configura o uso de até 32 CPUs em um computador. Tabela 1. Opções da configuração Affinity I/O Mask. O valor 0(zero) significa que o SQL Server está programado para ser executado em qualquer número de CPUs disponíveis.

AFFINITY MASK: Se o Affinity I/O Mask informa o número total de CPUs utilizadas no servidor, é o Affinity Mask que define quais processadores o SQL Server usará, podendo então escolher 4 entre 6 processadores disponíveis, por exemplo. Isto pode ser interessante em servidores que rodam múltiplas instâncias do SQL Server e/ou outros aplicativos, onde você pode definir que processador utilizar para cada um. O valor padrão é 0(zero). Caso você só tenha o SQL Server rodando em um servidor, então não altere este valor. Isto permite utilizar um algoritmo do sistema operacional específico para determinar que thread executar, em que CPU, e quando mover uma thread de uma CPU para outra.

Alterar as configurações do SQL Server pode ser uma ótima maneira de otimizar desempenho, porém requer um considerável conhecimento da estrutura e funcionamento do banco de dados. Isto é bom quando conhecemos estas configurações e podemos utilizá-las para adaptar o nosso banco a cada situação, mas também pode ser perigoso, pois uma série de recursos que foram automaticamente configurados para uma boa performance podem ser alterados de forma errada, gerando gravíssimos problemas no banco de dados. O ideal é realizar as configurações em um servidor de teste, e caso sucesso, implementá-las no banco em produção.