Com o Query Store, posso acompanhar o tamanho das minhas leituras físicas e com que frequência elas ocorrem. Como posso saber se esses números são tão grandes que indicam que preciso de mais RAM?
Por isso vale a pena, minha outra pesquisa indica que não tenho problemas de RAM:
- Minhas esperas são 99% SOS_WORK_DISPATCHER
- A expectativa de vida da página varia muito ao longo do dia, mas nunca a vi abaixo de 200.
- As consultas mais antigas
sys.dm_exec_query_stats
têm cerca de um mês.
Para esperas de monitoramento, há certas esperas benignas que geralmente você pode ignorar. Uma rápida pesquisa no SQLSkills sugere que isso
SOS_WORK_DISPATCHER
provavelmente pode ser ignorado, então eu examinaria o próximo tipo de espera.Esta é a consulta que o DBA Dash usa (uma ferramenta de monitoramento que criei) para capturar esperas se você quiser uma lista de exclusões que pode usar. Não tenho 100% de certeza da fonte original desta lista de exclusões - possivelmente SQLSkills, que é meu local habitual para obter informações sobre tipos de espera.
Se a próxima espera for uma
PAGEIOLATCH*
espera, isso pode ser uma indicação de que mais memória pode ser benéfica.PLE não tende a ser uma métrica tão confiável. Eu também examinaria o monitoramento de E/S do disco para ver quantos dados você está lendo do disco. Costumo usar as informações de sys.dm_io_virtual_file_stats para isso. Contadores Perfmon também podem ser usados. Além disso, observe a latência do disco como uma indicação do desempenho dos seus discos.
Quanto mais memória você tiver, menos precisará ler do disco e as consultas serão executadas mais rapidamente. Mais memória quase sempre será benéfica, mas se
PAGEIOLATCH*
não for um tipo de espera significativo no servidor, poderá não ter o impacto desejado.O Query Store é ótimo para muitas coisas, mas eu não o usaria para essa finalidade. Pelo menos não como ponto de partida. Eu começaria em um nível mais alto - estatísticas de espera e estatísticas de IO de nível de servidor/banco de dados/unidade. Se você determinar que seu servidor está com gargalos por IO, o armazenamento de consultas poderá ser usado para determinar quais consultas você pode querer analisar o ajuste. Você pode encontrar algumas vitórias fáceis que reduzem seu IO. Caso contrário, mais memória pode ser uma solução.
O Query Store funciona no nível do banco de dados e, mesmo assim, pode não rastrear toda a sua carga de trabalho.
sys.dm_io_virtual_file_stats
ou contadores perfmon serão mais precisos no rastreamento de seu IO em um nível mais alto e as estatísticas de espera lhe darão uma boa ideia se o IO for um gargalo significativo. Mas se você determinou que tem um gargalo de E/S, o armazenamento de consultas poderá ajudar a identificar quais consultas estão contribuindo para isso.