Analysere SQL spørringer i Dynamics CRM

Det er av og til aktuelt å analysere hvordan SQL spørringene foregår i en Dynamics CRM implementasjon. Som oftest er dette nødvendig for å finne årsaker til eventuelle ytelsesproblemer, men det kan også være aktuelt for å optimalisere egenutviklede løsninger (f.eks. teste forskjellige måter å kalle web services på).

Når du skal trace og analysere SQL spørringene som CRM genererer, så vil du komme borti noen utfordringer:

  • Du må sette filtre i SQL Profiler for å finne de spørringene som du er på jakt etter. I et produksjonsmiljø med mye trafikk kan dette være en utfordring.
  • For å optimalisere ytelsen, må du sjekke valgene i SQL for oppdatering av statistikker og re-indeksering av fragmenterte indekser.
  • CRM bruker Stored Procedures. De SQL kallene som du klarer å trace i SQL Profiler bruker “sp_executeSQL”. Dette gjør det umulig å analysere execution plan i SQL siden all tid vil brukes i denne stored procedure (noe som ikke vil fortelle deg noenting om evnt. flaskehalser). Du må derfor “konvertere” sp_executeSQL-kallet til en “normal” SQL spørring for å kunne se hvor tiden brukes i en eksekvering. Det finnes et verktøy som kan gjøre denne konverteringen for deg. Ved å kjøre den “normale” SQL spørringen og sjekke execution plan, så vil du kunne avdekke hvilken tabell/index som eventuelt skaper ytelsesproblemer.

Du finner mer info om dette på CRM team Bloggen.

_Jorulf_

 Abonner på nyheter via RSS| Abonner på nyheter via E-post