Upload
jarlei
View
497
Download
0
Embed Size (px)
DESCRIPTION
Palestra na ALFAMIDIA sobre configuracoes de desempenho em SQLServer.
Citation preview
1
Performance em sistemas SQLServerPerformance em sistemas SQLServer
Objetivo:- Destacar pontos para a performance em sistemas com SQLServer, tanto na parte de estrutura física quanto de estrutura lógica, incluindo pontos de continência, rede de dados, queryes, ambiente SQLServer e programação.
2
Performance em sistemas SQLServerPerformance em sistemas SQLServer
Agenda:1. Infra-estrutura
1. Instâncias2. File Groups3. Universo de Dados4. Logs5. Rede
2. Estrutura Lógica1. Registro2. View Indexada3. Índices4. Programação
3. Baseline4. SQLServer 20055. Referências
1. Livros2. Links3. Outros Tópicos
3
Performance em sistemas SQLServerPerformance em sistemas SQLServer
Estrutura FísicaEstrutura Física
Ações para o ambiente de apoio aos sistemas.Ações para o ambiente de apoio aos sistemas.Atividades de Suporte e Tecnologia.Atividades de Suporte e Tecnologia.
4
Performance em sistemas SQLServerPerformance em sistemas SQLServer
Estrutura Física/InstânciasEstrutura Física/Instâncias
Característica:Até 16 instâncias em uma mesma máquina.
Por quê:-Separar processos entre os databases;-Processos de Performance para cada instância;-TempDB separada-Tempos de Backup
5
Performance em sistemas SQLServerPerformance em sistemas SQLServer
Infra-Estrutura/File GroupsInfra-Estrutura/File Groups
6
Performance em sistemas SQLServerPerformance em sistemas SQLServer
Infra-Estrutura/Universo de DadosInfra-Estrutura/Universo de Dados
1.1. Definir tempo para dados mais acessados (normalmente 3 meses)Definir tempo para dados mais acessados (normalmente 3 meses)2.2. Definir tempo de Armazenagem (normalmente 5 anos)Definir tempo de Armazenagem (normalmente 5 anos)3.3. Eliminar logs do sistemaEliminar logs do sistema4.4. Definir processo de ArchivingDefinir processo de Archiving
Histórico
Produção
Relatórios
BI
7
Performance em sistemas SQLServerPerformance em sistemas SQLServer
Infra-Estrutura/LogsInfra-Estrutura/Logs
Trace flag -1Trace flag 1204Trace flag 1205Trace flag 1807Trace flag 3604Trace flag 3608Trace flag 8202
sp_cycle_errorlog
8
Performance em sistemas SQLServerPerformance em sistemas SQLServer
Infra-Estrutura/RedeInfra-Estrutura/Rede SAN/NAS
Rede de Backup
Rede de Dados
Rede de Dados
OSOS DatabasesDatabases LogLog
9
Performance em sistemas SQLServerPerformance em sistemas SQLServer
Estrutura LógicaEstrutura Lógica
Ações para o ambiente do Banco de Dados.Ações para o ambiente do Banco de Dados.Atividades para o DBA ou responsável pelo sistema.Atividades para o DBA ou responsável pelo sistema.
10
Performance em sistemas SQLServerPerformance em sistemas SQLServer
Estrutura Lógica/RegistrosEstrutura Lógica/Registros
Um database é uma coleção de páginas lógicas de 8KB, e estas páginas são a unidade fundamental de armazenamento e de I/O, além de ser a unidade básica para locking.Porém o SQLServer aloca estas páginas através de Extents – que é o agrupamento lógico de 8 páginas de 8KB (64 KB).Uma Extent pode ser Uniform ou Mixed:
Uniform: toda as 8 páginas da Extent são alocadas para um único tipo de objeto, uma tabela por exemplo.
Mixed: Cada página pode ser alocada somente para um único objeto, porém podemos ter diferentes objetos na Extent Mixed. Por exemplo, podemos ter oito tabelas na Extent. A razão para ter dois tipos de Extent é para garantir que todas as oito páginas não sejam utilizadas para tabelas pequenas. Quanto os dados começam a ser inseridos, se completarem todas as oito páginas, a partir da nona página, o SQLserver irá colocar em uma Extent Uniform.
1 2 3 4 5 76 8
11
Performance em sistemas SQLServerPerformance em sistemas SQLServer
Estrutura Lógica/View IndexadaEstrutura Lógica/View Indexada
Aumento de performance na seleção dos dados!
12
Performance em sistemas SQLServerPerformance em sistemas SQLServer
Estrutura Lógica/ÍndicesEstrutura Lógica/Índices
• Procurar SEMPRE indexar • Procurar NUNCA indexar
1. Campos utilizados em JOINS2. Campos utilizados em
QUERIES como RANGE, GROUP BY e ORDER BY.
3. Campos utilizados com AGGREGATE FUNCTIONS, como SUM, AVG, etc.
1. Tabelas com poucos registros 2. Campos com pouca seletividade
(muita repetição de valores)3. Campos com tamanho total maior
que 25 bytes.4. Campos não usados em QUERIES5. Tabelas com alta taxa de INSERT
e DELETE
Analisar a tabela e os acessos (INSERT, DELETE, UPDATE)
13
Performance em sistemas SQLServerPerformance em sistemas SQLServer
Estrutura Lógica/ProgramaçãoEstrutura Lógica/Programação
1. Evitar recompilações em Stored Procedures (KEEPFIXED PLAN) – analisar com Query Analyzer; (Q243586 INF: Troubleshooting Stored Procedure Recompilation)
2. Código curto, se possível;
3. Evitar utilizar CURSORES;
4. Utilizar Tabelas Derivadas
14
Performance em sistemas SQLServerPerformance em sistemas SQLServer
BaselineBaseline
15
Performance em sistemas SQLServerPerformance em sistemas SQLServer
SQLServer 2005SQLServer 2005
16
Performance em sistemas SQLServerPerformance em sistemas SQLServer
Links:www.sqlmag.comwww.sql-server-performance.comwww.swyink.comwww.microsoft.com/sql/evaluation/sysreqs/2000/default.asp
Livros:Microsoft Hitchhiker’s Guide to Visual Basic & SQLServer
William R.VaughnMicrosoft SQLServer 2000 – DBA Guia de Sobrevivência
Mark Spenik, Orryn SledgeSAMS – Campus
Microsoft SQLServer Performance, Optimization and TunningKen England
SQLServer Books OnLineMicrosoft
Redes de ComputadoresAndrew Tanenbaum
Outros Tópicos:Locks/DeadlocksComandos de Ambiente (SET DEADLOCK_LOW PRIORITY)Views ParticionadaRestrição em ViewsModelo ERTransaçõesFront-End
Query AnalyzerPerformance MonitorConfiguração do SQLServerSP_EXECUTESQLFunçõesConstraintsN-Tier
17
Performance em sistemas SQLServerPerformance em sistemas SQLServer
[email protected]@[email protected]@hotmail.com