Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como aumentar o desempenho de um Banco de Dados?


Otimize o design lógico

O nível lógico é sobre a estrutura da consulta e as próprias tabelas. Tente maximizar isso primeiro. O objetivo é acessar o menor número possível de dados no nível lógico.
  • Tenha as consultas SQL mais eficientes
  • Projete um esquema lógico que atenda às necessidades do aplicativo (por exemplo, tipo das colunas etc.)
  • Desenvolva a compensação para dar suporte a alguns casos de uso melhor do que outros
  • Restrições relacionais
  • Normalização

Otimize o design físico

O nível físico lida com considerações não lógicas, como tipo de índices, parâmetros das tabelas, etc. O objetivo é otimizar o IO que é sempre o gargalo. Ajuste cada tabela para caber sua necessidade. Tabela pequena pode ser carregada permanentemente carregada no cache do DBMS, tabela com baixa taxa de gravação pode ter configurações diferentes da tabela com alta taxa de atualização para ocupar menos espaço em disco, etc. dados desnormalizados de forma transparente com visualizações materializadas, etc.
  • Parâmetros de tabelas (tamanho da alocação etc.)
  • Índices (combinados, tipos, etc.)
  • Parâmetros de todo o sistema (tamanho do cache etc.)
  • Particionamento
  • Desnormalização

Tente primeiro melhorar o design lógico, depois o design físico. (A fronteira entre ambos é, no entanto, vaga, então podemos discutir sobre minha categorização).

Otimize a manutenção

O banco de dados deve ser operado corretamente para permanecer o mais eficiente possível. Isso inclui algumas tarefas de manutenção que podem ter impacto no desempenho, por exemplo,
  • Mantenha as estatísticas atualizadas
  • Resequenciar tabelas críticas periodicamente
  • Manutenção do disco
  • Todas as coisas do sistema para ter um servidor que arrasa