Gå til hovedinnhold

SQLynx Performance Kit

sp_LynxTopQueriesGrantedMemoryLoad

sp_LynxTopQueriesGrantedMemoryLoad er en lagret prosedyre for analyse av memory grants i SQL Server. Prosedyren er en del av SQLynx Performance Kit.

Den identifiserer hvilke queries som belaster minnet mest, hvor mye av minnet som faktisk brukes, og hvilke queries som driver samlet minnebelastning over tid.

Prosedyren er spesielt nyttig i situasjoner med høy grad av plan cache bloat, hvor memory-statistikk ofte er ustabil og vanskelig å tolke.

GitHub repository:

https://github.com/SQLynx/sqlynx-performance-kit

Hva analyseres?

Prosedyren samler data fra sys.dm_exec_query_memory_grants over tid og gir innsikt i:

  • hvilke spørringer som får store memory grants
  • hvor mye av minnet som faktisk brukes
  • hvor mye minne som ikke brukes (wasted grant)
  • hvilke spørringer som driver samlet minnebelastning

Resultatet presenteres fra tre perspektiver:

  • total minnebelastning over tid
  • ubrukt minne
  • største enkeltstående memory grants

Når er dette spesielt nyttig?

sp_LynxTopQueriesGrantedMemoryLoader spesielt nyttig i situasjoner med høy grad av plan cache bloat.

I slike tilfeller er memory-statistikk ofte ustabil og vanskelig å tolke, noe som gjør det krevende å identifisere hvilke spørringer som faktisk driver minnebelastningen.

Hvordan prosedyren fungerer

Prosedyren bruker en sampling-basert tilnærming over en definert tidsperiode.

Dette gjør det mulig å fange opp belastning over tid og identifisere mønstre som ikke er synlige i enkeltmålinger.

Resultatene aggregeres per query_hash og query_plan_hash og gir et mer representativt bilde av faktisk belastning.

Se detaljert beskrivelse README.md.

Eksempel

Bruker StackOverflow2010-databasen og kjører en stresstest mot den ved hjelp av verktøyet SQLQueryStress. Verktøyet brukes ofte for å simulere parallell belastning mot SQL Server ved testing av queries, locking, waits, CPU-bruk og memory grants.

Mens belastningen kjører sampler vi aktive memory grants med:

exec sp_LynxTopQueriesGrantedMemoryLoad
    @Top = 10,
    @SampleTimeSeconds = 10,
    @SampleIntervalMS = 50

I kombinasjon med andre verktøy

Etablerte verktøy som First Responder Kit gir gode oversikter over aktive spørringer og ressursbruk.

sp_LynxTopQueriesGrantedMemoryLoad bruker en sampling-basert tilnærming over tid, noe som gir et mer konsistent bilde av memory grants i situasjoner med høy grad av plan cache bloat.

Open source

SQLynx Performance Kit er tilgjengelig som open source på GitHub og vil over tid utvides med flere spesialiserte SQL Server-verktøy.

GitHub repository:

https://github.com/SQLynx/sqlynx-performance-kit

Målet er alltid det samme: identifisere rotårsakene og gjennomføre tiltak som faktisk gir bedre ytelse og stabilitet.

Ta kontakt med oss

Kontakt oss