Checklist for Analyzing Slow-Running Queries

Kwerendy lub aktualizacji, które trwa dłużej niż powinno wykonać może wynikać z różnych powodów.Spowolnienie wykonywania kwerendy może być spowodowane przez problemy z wydajnością związanych z sieci lub komputera w przypadku gdy SQL Server jest uruchomiony. Spowolnić działanie kwerendy mogą także być spowodowane przez problemy z fizycznej bazy danych projektu.

Istnieje wiele typowych przyczyn spowolnić działanie kwerendy i aktualizacje:

  • Spowolnienie komunikacji w sieci.

  • Nieodpowiednie pamięci w komputerze serwera lub za mało pamięci SQL Server.

  • Brak przydatnych statystyk

  • Brak przydatnych indeksów.

  • Brak widoków indeksowanych użyteczne.

  • Brak rozkładanie użytecznych danych.

  • Brak partycjonowanie użyteczne.

Gdy kwerendy lub aktualizacja trwa dłużej niż powinno, zadaj sobie następujące pytania adres przyczyny spowolnić działanie kwerendy, które są wymienione w poprzedniej sekcji:

Porada

Aby zaoszczędzić czas, zapoznaj się ta lista kontrolna, przed skontaktować się z pomocą techniczną technicznych.

  1. Jest problem z wydajnością związane z składnik innego niż kwerendy?Na przykład to wydajność sieci problem?Czy istnieją inne składniki, które może być przyczyną lub przyczyniają się do obniżenia wydajności?

    Monitor systemu Windows może służyć do monitorowania wydajności SQL Server i składniki pokrewne serwera SQL. Aby uzyskać więcej informacji zobaczMonitoring Resource Usage (System Monitor).

  2. Jeśli problem z wydajnością jest związany z kwerendy, które kwerendy lub zestaw kwerendy jest powiązany?

    Użycie SQL Server Profiler Aby zidentyfikować wolne kwerendy lub kwerend. Aby uzyskać więcej informacji zobaczUsing SQL Server Profiler.Użycie sys.dm_exec_query_stats and sys.dm_exec_requests widoki dynamicznego zarządzania, aby znaleźć podobne kwerendy, które wspólnie zużywają dużej liczby zasobów.Aby uzyskać więcej informacji zobaczFinding and Tuning Similar Queries by Using Query and Query Plan Hashes.

  3. W jaki sposób I analizować wydajność spowolnić działanie kwerendy?

    Po zidentyfikowaniu kwerendy spowolnić uruchamianie lub kwerendy, można dalej analizować wydajność kwerendy przedstawiając Showplan, która może być tekst, XML lub graficzną reprezentację plan wykonania kwerend generowanych przez optymalizator kwerendy.Można utworzyć za pomocą plan wykonania Transact-SQL Opcje zestaw SQL Server Management Studio, lub SQL Server Profiler.

    Aby uzyskać informacje dotyczące korzystania z Transact-SQL Opcje wyświetlania tekstu i planów wykonania XML, zobacz temat zestaw Displaying Execution Plans by Using the Showplan SET Options (Transact-SQL).

    Aby uzyskać informacje dotyczące korzystania z SQL Server Management Studio Aby wyświetlić graficzne wykonanie planów, zobacz Displaying Graphical Execution Plans (SQL Server Management Studio).

    Aby uzyskać informacje dotyczące korzystania z SQL Server Profiler Aby wyświetlić tekst i planów wykonania XML, zobacz Displaying Execution Plans by Using SQL Server Profiler Event Classes.

    Informacje zebrane przez te narzędzia pozwala określić, jak kwerenda jest wykonywana przez SQL Server optymalizator kwerendy i indeksy, które są aktualnie używane. Wykorzystując te informacje, można określić, jeżeli poprawia wydajność może się odbywać według poprawiania kwerendy, zmiana indeksów w tabelach lub zamieść modyfikowanie projektu bazy danych.Aby uzyskać więcej informacji zobaczAnalyzing a Query.

  4. Czy kwerendy zoptymalizowana ze statystykami przydatne?

    optymalizator kwerendy używa statystyki do tworzenia planów kwerend, które poprawiają wydajność kwerendy.W przypadku większości kwerend optymalizator kwerendy generuje już niezbędne dane statystyczne, plan wysokiej jakości kwerendy; w kilku przypadkach, należy utworzyć dodatkowe statystyki lub zmodyfikowania projektu kwerendy, aby uzyskać najlepsze wyniki.

    Aby uzyskać więcej informacji zobaczUsing Statistics to Improve Query Performance.Ten temat zawiera wskazówki dotyczące poprawy efektywności statystyki dotyczące wydajności kwerendy.Następujące wskazówki:

    • Korzystając z opcji Statystyka obowiązujących w całej bazy danych.Na przykład należy sprawdzić, czy automatyczne tworzenie statystyk, AUTO_CREATE_STATISTICS, i automatycznej aktualizacja statystyki AUTO_UPDATE_STATISTICS, całej bazy danych opcje są.Jeśli są wyłączone, planów kwerend może być suboptimal i może zmniejszyć wydajność kwerendy.

    • Określanie, kiedy można utworzyć statystyki.W kilku przypadkach można poprawić, tworząc dodatkowe statystyki z planów kwerend CREATE STATISTICS (Transact-SQL) Instrukcja. Te dodatkowe statystyki może przechwytywać statystycznych korelacji, że optymalizator kwerendy nie konta na podczas tworzenia statystyk dla indeksów lub pojedynczej kolumny.

    • Określanie, kiedy aktualizacja statystyki.W niektórych przypadkach poprawić planu kwerend i w związku z tym zwiększyć wydajność kwerendy przez częściej niż po włączeniu AUTO_UPDATE_STATISTICS aktualizacji statystyki.Można zaktualizować statystyki z AKTUALIZACJA STATYSTYK instrukcja lub procedura przechowywana sp_updatestats.

    • Projektowanie kwerendy to statystyki użycia skutecznie.Niektóre implementacje kwerendy, takie jak zmiennych lokalnych i złożone wyrażenia w predykacie kwerendy może prowadzić do planów kwerendy suboptimal.Aby tego uniknąć może pomóc w następujących zasad projektowania kwerendy o efektywnym używaniem statystyki.

  5. Czy są dostępne odpowiednie indeksy?Czy dodanie jednego lub kilku indeksów poprawić wydajność kwerendy?Aby uzyskać więcej informacji zobacz General Index Design Guidelines, Finding Missing Indexes, a Database Engine Tuning Advisor Overview. Database Engine Dostrajanie Klasyfikator może również zaleca się tworzenia niezbędnych danych statystycznych.

  6. Czy nie ma żadnych danych ani indeksu punkty aktywne?Należy rozważyć użycie rozkładanie.Rozkładanie może być zaimplementowany przy użyciu macierzy RAID (redundant array of independent disks) poziom 0, jeżeli dane są przesyłane na kilku dyskach.Aby uzyskać więcej informacji zobacz Using Files and Filegroups i RAID.

  7. optymalizator kwerendy jest dostarczana z najlepszego szansy sprzedaży w celu zoptymalizowania złożoną kwerendę?Aby uzyskać więcej informacji zobaczQuery Tuning Recommendations.

  8. Jeśli masz dużą ilość danych, czy należy ją podzielić na partycje?Łatwość zarządzania danych jest głównych korzyści z partycjonowanie, ale jeśli Twój tabel i indeksów na nich są na podobnie partycje, partycjonowanie może również zwiększyć wydajność kwerendy.Aby uzyskać więcej informacji zobacz Understanding Partitioning i Tuning the Physical Database Design.

Historia zmian

Microsoft Learning

Zaktualizować zawartość statystyki celu objaśnienia sposobów zapewnienia ma przydatnych statystyk.

Temat odnosi się do nowej zawartości statystyk w temacie Using Statistics to Improve Query Performance.