2009-10-12 15 views
7

W niekończącym się poszukiwaniu wydajności (i mojego własnego doświadczenia w bękowaniu) nauczyłem się kilku rzeczy, które mogą obniżyć wydajność instrukcji SQL.Jakie narzędzia są dostępne do testowania wydajności instrukcji SQL?

obsesyjno-kompulsywne Podzapytania Disorder
robienie szalonych konwersje typu (i gniazdo tych w zapomnienie)
Group By na zagregowanych funkcji powiedział szalony typu konwersje
Gdzie fldID w (wybierz wszystko od mojego 5mil tabeli rekordu)

Zazwyczaj pracuję z MSSQL. Jakie narzędzia są dostępne do testowania wydajności instrukcji SQL? Czy narzędzia te są wbudowane i specyficzne dla każdego typu serwera DB? Czy są dostępne ogólne narzędzia?

+0

Płucasz rzeczy do doświadczenia? A może twoje doświadczenie * rozrasta się *? +1 za odpowiedź Mitcha. – DaveE

Odpowiedz

9

SQL Profiler (wbudowane): Monitoring with SQL Profiler

SQL Benchmark Pro (komercyjna)

SQL Server 2008 ma nową Data Collector

SQL Server 2005 (dalej) ma brakujące indeksy Dynamic Management View (DMV), które mogą być całkiem przydatne (ale tylko dla planów zapytań znajdujących się obecnie w pamięci podręcznej planu): About the Missing Indexes Feature.

Istnieje również SQL Server Database Engine Tuning Advisor która robi rozsądny pracy (tylko nie realizować wszystko to sugeruje!)

+0

Dzięki, że prawie wszystko mnie zaczyna. Obejmuje to kąt MSSQL, czy istnieją ogólne narzędzia dostępne dla MySQL lub Oracle? A może mieliby swoje własne narzędzia? – MoSlo

3

Najczęściej wystarczy użyć Profiler i plan wykonania widza

+0

Prawie wszystko, czego potrzebujesz, zawsze, na indywidualne zapytania – gbn

0

MSSQL ma doradcą strojenia bazy danych, które będą często zalecają indeksów dla tabel opartych na wspólnych zapytaniami uruchamianych podczas okres strojenia, ale nie przepisuje on dla ciebie zapytania.

Moim zdaniem doświadczenie i eksperymentowanie to najlepsze narzędzia do pisania dobrych zapytań SQL.

0

W mysql (może być również w innych bazach danych) możesz EXPLAIN swoje zapytanie, aby zobaczyć, co serwer bazy danych myśli o tym. Zazwyczaj służy to określeniu, które indeksy powinny zostać utworzone. Ten jest wbudowany, więc możesz go używać bez instalowania dodatkowego oprogramowania.

0

Adam Machanic ma proste narzędzie o nazwie SqlQueryStress, które może być przydatne. Został zaprojektowany do użycia w celu "uruchomienia szybkiego testu wydajności w odniesieniu do pojedynczego zapytania, w celu przetestowania pomysłów lub zatwierdzenia zmian".

+0

Narzędzie Adama jest naprawdę świetne. Użyłem go i okazało się, że jest bardzo pomocny przy dostrajaniu bazy danych. –

1

Execution Plans to jedna z pierwszych rzeczy, na które należy zwrócić uwagę przy debugowaniu problemów z wydajnością zapytań. Plan wykonania pokaże, ile czasu zajmuje mniej czasu w każdej części zapytania, i może być wykorzystany do szybkiego stwierdzenia, czy brakuje indeksów lub kosztownych połączeń lub pętli.

Powiązane problemy