Dicas

Como diminuir o RESOURCE_SEMAPHORE_QUERY_COMPILE

Saiba agora mesmo como você pode diminuir o RESOURCE_SEMAPHORE_QUERY_COMPILE no SQL Server.

Recentemente eu trabalhei em um projeto de tunning e performance SQL Server, o ambiente estava bem lento mesmo. Ao analisar os principais waits que estavam ocorrendo no banco de dados SQL Server do cliente, pude identificar que um dos principais waits eram RESOURCE_SEMAPHORE_QUERY_COMPILE.

A princípio achei interessante, pois já tinha trabalhado com RESOURCE_SEMAPHORE. Então vou deixar aqui para vocês algumas dicas de como eu fiz para diminuir o RESOURCE_SEMAPHORE_QUERY_COMPILE

Entendendo o RESOURCE_SEMAPHORE_QUERY_COMPILE

Para entender melhor do que se trata o RESOURCE_SEMAPHORE_QUERY_COMPILE ocorre quando uma consulta está esperando por liberação da memória que vai permitir que a compilação ocorra.

A memória de compilação é retirada do buffer pool e mantida pelo tempo necessário para concluir o processo de compilação. O que em muitos casos acontecem é que o uso de muitas páginas em memória para várias compilações simultâneas cause uma pressão na memória. Para mitigar isso o SQL calcula quais consultas exigirão um grande número de páginas e para isso força algumas esperas.

Se já estiver com pressão de memória o SQL Server limitará o número de consultas intensivas de recursos que podem ser compiladas simultaneamente. Em resumo, significa que você pode ter muitas consultas que exigem muita memória. Ou outro recurso está pegando as páginas de memória do buffer pool.

Como posso investigar RESOURCE_SEMAPHORE_QUERY_COMPILE?

No meu caso eu abri o perfmon e verifiquei os seguintes contadores:

  • Compilations/sec
  • Compilations/batch
  • Recompilations/sec
  • Batch requests/sec

Em breve farei artigos sobre esses contadores com mais detalhes para vocês, se você ver que esse post já é antigo, pode procurar no campo de busca o nome desses contadores que certamente aparecerá esses detalhes que disse agora mesmo.

Recomendo também investigar as consultas que demoram mais tempo no SQL Server, para encontrar isso você pode investigar nas DMV’s sys.dm_exec_query_memory_grants, sys.dm_exec_query_resource_semaphores.

Caso você não tenha conseguido, entre em contato comigo para eu te mostrar como podemos resolver isso.

Consultoria SQL Server Remoto

Um grande abraço!

Como diminuir o RESOURCE_SEMAPHORE_QUERY_COMPILE
The following two tabs change content below.

Wesley Mota

Wesley Mota

Share
Published by
Wesley Mota

Recent Posts

Free Blackjack No Download: Appreciate Blackjack Anytime, Anywhere

Blackjack, additionally known as twenty-one, is just one of one of the most popular gambling…

4 semanas ago

The Ultimate Guide to Gry Online Ruletka

If you are a fan of online gambling, then you must have come across gry…

1 mês ago

Discover the Adventures of Free Spins at Online Casino Sites

On the internet online casinos have transformed the betting industry, enabling players to vegas.hu online…

7 meses ago

Best Free Spins No Deposit

Casinos online offer free spins to draw new customers. These bonuses are usually very profitable,…

8 meses ago

Ideal Online Port Gambling Enterprises: An Overview to Locating the Perfect Pc Gaming Experience

In recent times, online casino sites have actually obtained enormous appeal among gamers, providing a…

8 meses ago

Best Online Casinos That Accept Bitcoin Down Payments

Bitcoin, the most preferred cryptocurrency worldwide, has reinvented lots of industries, including the on baixar…

8 meses ago