Finding and Tuning Similar Queries by Using Query and Query Plan Hashes

Przy wyszukiwaniu obciąża kwerendy, należy rozważyć sposób znajdowania i dostrajania podobne kwerendy, które wspólnie zużywa zasoby systemowe znaczący.The sys.dm_exec_query_stats and sys.dm_exec_requests dynamic management views provide query hash and query plan hash values that you can use to help determine the agregacja zasób usage for similar queries and similar query execution plans.

W tym temacie definiuje mieszania kwerendy i planu kwerend, wartość mieszania podaje przykłady korzystanie z wartości mieszania w celu znalezienia koszt skumulowany podobne kwerendy i planów wykonania i sposoby zwiększenia wydajności dla podobnych kwerendy i planów wykonania.

Opis mieszania Query i hash plan kwerend

Wartość mieszania kwerendy jest wartość mieszania binarne w kwerendzie i służy do identyfikowania kwerendy w logice podobne.optymalizator kwerendy oblicza wartość mieszania kwerendy podczas tworzenia kwerendy.Kwerendy, które różnią się tylko wartości mieszania będzie identyczny kwerendy.Na przykład następujące dwie kwerendy mieszania będzie identyczny kwerendy, ponieważ różnią się jedynie wartości literału, przypisane do FirstName i LastName.

Następujące dwie kwerendy mają mieszania innej kwerendy, ponieważ tych różnic są logiczne (AND i OR) i nie są ograniczone do tylko literałów.

Wartość mieszania planu kwerendy jest wartość mieszania binarne obliczonemu plan wykonania kwerend i służy do identyfikowania planów wykonywanie podobnych kwerendy.optymalizator kwerendy oblicza wartość mieszania planu kwerendy podczas kompilacji kwerendy przy użyciu wartości plan wykonania, takie jak operator logicznych i fizycznych i atrybuty ważne operator.Plany wykonanie kwerendy, które mają te same struktury drzewa operator fizyczne i logiczne, a także wartości atrybut w identycznym podzbiór atrybut ważne operatora, będą miały tego samego skrótu planu kwerendy.

Podczas kwerendy z kwerendy identyczne algorytmy tego typu są wykonywane dla różnych danych, różnice w Kardynalność w wynikach kwerendy może sprawić, że optymalizator kwerendy wybrać planów wykonania innej kwerendy, powodując algorytmy tego typu planu kwerendy będą inne.

W poniższym przykładzie przedstawiono sposób dwóch podobnych kwerendy mogą mieć tego samego skrótu kwerendy, ale może nie mieć ten sam plan wykonania kwerend.Służy do wyświetlania wartości mieszania na dwa sposoby: końcowe instrukcja SELECT i XML plan wykonania, gdzie są one wyświetlane w StmtSimple elementu jako wartości atrybut QueryHash and QueryPlanHash.

Jeśli relacja szacunki dla ProductID = 3 są wysokie, optymalizator kwerendy może użyć operator skanowanie indeksu w planu kwerend. Jeśli relacja szacunki dla IDProduktu = 1 są niskiego poziomu optymalizacji kwerendy może używać indeksu wyszukiwania operator.

Bez modyfikowania dla wartości mieszania

Istnieje możliwość kolizji mieszania w różnych kwerendach i kwerendy planów mają taką samą wartość mieszania, które mają.Chociaż prawdopodobieństwo kolizji mieszania jest bardzo mała i mało prawdopodobne, aplikacje zależne od unikatowości kwerendy mieszania i kwerendy planu mieszania może mieć błędów z powodu wartości mieszania duplikatów.Na przykład wartość mieszania kwerendy i mieszania planu kwerendy nie należy używać jako klucz podstawowy lub unikatowe kolumna.

Znajdowanie koszt skumulowany kwerendy

W poniższym przykładzie zwraca informacje o górny kwerendy pięciu zgodnie ze średnią czas PROCESORA.W tym przykładzie agregatów kwerendy zgodnie z ich mieszania kwerendy, tak aby równoznaczna kwerendy są pogrupowane według ich zużycie zasób skumulowany.

W poniższym przykładzie zwraca informacje o najwyższym planów kwerend pięć, zgodnie z średni czas PROCESORA.W tym przykładzie agregatów kwerendy zgodnie z ich mieszania planu kwerendy, aby kwerendy z tego samego skrótu planu kwerendy są grupowane według ich zużycie zasób zbiorczej.

Przy użyciu skrótu Query i hash plan kwerend, aby poprawić wydajność kwerendy

Śledzenie i zbadaj wykonanie plan zmian

Degradations wydajności lub ulepszenia może pojawić się wtedy, gdy kwerenda jest ponownie kompilowana i optymalizator kwerendy zapewnia planu wykonania innej kwerendy.Za pomocą skrótu planu kwerendy, można przechwytywać, przechowywać i porównywać planów wykonywania kwerend w czasie.Wiedząc, których wykonanie planów uległy zmianie może pomóc w zdiagnozowaniu wydajności wpływu zmian danych i konfiguracja.

Na przykład po zmianie konfiguracja systemu, można porównać wartości mieszania planu kwerendy dla kluczowych kwerendy w celu przywrócenia oryginalnych wartości mieszania planu kwerendy.Różnice wartości mieszania planu kwerendy powinien powiedzieć, którego zmiany konfiguracja systemu spowodowało planów wykonywanie kwerend zaktualizowane dla kwerend ważne.Można również zdecydować zatrzymać wykonywanie dla bieżącego długo działającą kwerendę, jeśli jego wartość mieszania planu kwerendy w sys.dm_exec_requests różni się od jego mieszania planu kwerendy według planu bazowego, który jest dobrą wydajnością.

Parameterize podobne kwerendy w celu zwiększenia buforowanego planu ponowne użycie

Jeśli zestaw kwerendy ma ten sam mieszania kwerendy i mieszania planu kwerendy, może zwiększyć wydajność, tworząc jeden kwerendy parametryczne.Wywołanie jednej kwerendy z parametrami zamiast wielu kwerend z wartości literałów umożliwia ponowne użycie plan wykonania kwerend pamięci podręcznej.Aby uzyskać więcej informacji na temat korzyści wynikających z ponownego użycia planów kwerend pamięci podręcznej zobacz Wykonanie planu buforowanie i ponowne użycie.

Jeśli aplikacja nie może modyfikować, umożliwia szablonu planu prowadnice z wymuszone parametryzacji uzyskać podobny efekt.Aby uzyskać więcej informacji zobaczSpecifying Query Parameterization Behavior by Using Plan Guides.