17
1 Performance em sistemas Performance em sistemas SQLServer 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.

Performance Sql Server

  • Upload
    jarlei

  • View
    497

  • Download
    0

Embed Size (px)

DESCRIPTION

Palestra na ALFAMIDIA sobre configuracoes de desempenho em SQLServer.

Citation preview

Page 1: Performance Sql Server

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.

Page 2: Performance Sql Server

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

Page 3: Performance Sql Server

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.

Page 4: Performance Sql Server

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

Page 5: Performance Sql Server

5

Performance em sistemas SQLServerPerformance em sistemas SQLServer

Infra-Estrutura/File GroupsInfra-Estrutura/File Groups

Page 6: Performance Sql Server

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

Page 7: Performance Sql Server

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

Page 8: Performance Sql Server

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

Page 9: Performance Sql Server

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.

Page 10: Performance Sql Server

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

Page 11: Performance Sql Server

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!

Page 12: Performance Sql Server

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)

Page 13: Performance Sql Server

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

Page 14: Performance Sql Server

14

Performance em sistemas SQLServerPerformance em sistemas SQLServer

BaselineBaseline

Page 15: Performance Sql Server

15

Performance em sistemas SQLServerPerformance em sistemas SQLServer

SQLServer 2005SQLServer 2005

Page 16: Performance Sql Server

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

Page 17: Performance Sql Server

17

Performance em sistemas SQLServerPerformance em sistemas SQLServer

[email protected]@[email protected]@hotmail.com