SQL Server 2008 Execution Plan Cache

Ich stand vor dem Problem, dass ich die Auswirkungen eine zus. Index auf eine Abfrage testen wollte. Dabei ändert sich der Execution Plan (EP) durch die Erstellung/Änderung des Index nicht automatisch (UPDATE: dachte ich jedenfalls – siehe unten), da die EPs ja im EP Cache gespeichert werden und immer wieder für die sich nicht ändernde Abfrage verwendet werden.

Mit DBCC FREEPROCCACHE kann man diesen EP Cache löschen – allerdings lag meine DB auf einem Produktivserver und da sollte man das besser nicht machen.

Allerdings kann man DBCC FREEPROCCACHE u.a. auf einen einzelnen plan_handle einschränken. Also mit …

SELECT plan_handle, st.text
FROM sys.dm_exec_cached_plans
CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS st
WHERE text LIKE N'SELECT abc FROM xxx%';

… fix plan_handle ermittelt und dann mit …

DBCC FREEPROCCACHE (0x0600010080C6043240811321020000000000000000000000)

den EP für meine Abfrage aus dem EP Cache gelöscht – super!

… Oder doch nicht so super, wenn man da ein bissel öfter rumspielen mag, denn dann muss man das ja nach jedem Versuch machen.
Für die Faultiere unter den Entwicklern gibt es da noch eine komfortable Möglichkeit, wie’s doch noch einfacher geht. Nämlich indem man einfach ans Ende der Abfrage noch folgendes anfügt:

OPTION (RECOMPILE)

Dann wird erst gar kein EP im Cache abgelegt – wirklich super!

UPDATE: Klaus Aschenbrenner hat mich übrigens noch darauf aufmerksam gemacht, dass der SQL Server 2008 bei einer Index-Änderung (Löschen, Erstellen, Ändern) automatisch alle relevanten EPs neu kompiliert.

Advertisements

Schlagwörter:

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s


%d Bloggern gefällt das: