Recebo um .bak
arquivo de terceiros mensalmente e crio 1 banco de dados para cada recibo.
O tamanho do arquivo .bak é ~1Gb.
Esses dados são apenas para consulta e eu nunca escrevo neles. Há alguma medida que eu possa tomar para melhorar o desempenho para esse cenário?
Estou considerando:
ALTER DATABASE [TESTDB] SET READ_ONLY WITH NO_WAIT
Devo considerar:
- Encolher arquivo de log ou qualquer operação de arquivo de log?
- Faça qualquer coisa com índices como reorganize-an-index
Estou usando a versão atual do SQL Express.
Depois de restaurar o banco de dados, examine os planos de consulta para suas principais consultas e certifique-se de ter índices ideais para seus casos de uso.
Definir o banco de dados READ_ONLY normalmente aumentará o desempenho em alguns pontos percentuais para consultas SELECT. Se você tiver tempo e isso ainda não estiver em vigor, considere definir o fator de preenchimento do índice para 100% e usar a compactação de página para todos os índices - você não precisa escrever neles, então eles podem muito bem ser os menores possíveis.
Encolher o log não afetará o desempenho. Além disso, ninguém pode dizer se você deve reorganizar/reconstruir os índices porque não sabemos se eles estão fragmentados e também quão seletivas são suas consultas e se o servidor busca ou escaneia para obter os dados.
Tenho que admitir que parece que você está procurando uma lista de tarefas que ajude em todos os casos, mas não existe tal lista. Para melhorar o desempenho, precisamos saber o que causa os problemas de desempenho e reagir a esse problema. Em vez de tentar encontrar uma "solução global", talvez seja melhor se concentrar nas consultas de pior desempenho ou nas consultas mais usadas e verificar para cada uma delas o que deve ser feito para melhorar o desempenho.