Jakich techników używasz? Jak dowiesz się, które zlecenia najdłużej trwają? Czy istnieje sposób, aby dowiedzieć się, jakie uciążliwe aplikacje?Jaki jest najlepszy sposób na profilowanie bazy danych sqlserver 2005 dla wydajności?
Odpowiedz
Krok 1: Zainstaluj urządzenie SQL Server Performance Dashboard.
Krok 2: Zysk.
Poważnie, chcesz zacząć od spojrzenia na ten pulpit. Więcej na temat instalacji i korzystania z niego można znaleźć here i/lub
miałem dobre sukces na coraz bardziej z narzędziami Tuning Database świadczonych wewnątrz SSMS lub SQL Profiler podczas pracy na SQL Server 2000.
Najważniejsze jest, aby pracować z dobrym zestawem próbek, śledzić część prawdziwego obciążenia dla produkcji analsys, który dostanie najlepszy ogólny huk dla złotówki.
Używam kilku różnych technik.
Jeśli próbujesz zoptymalizować konkretne zapytanie, użyj Query Analyzer. Skorzystaj z dostępnych narzędzi, takich jak wyświetlanie planu wykonania itp.
W przypadku sytuacji, w której nie masz pewności, KTÓRE zapytanie działa wolno, jednym z najpotężniejszych narzędzi, z których możesz skorzystać, jest program SQL Profiler.
Wystarczy wybrać bazę danych, którą chcesz profilować i pozwolić jej działać.
Należy pozwolić mu działać przez odpowiedni czas (zależy to od ruchu w aplikacji), a następnie można zrzucić wyniki w tabeli i rozpocząć ich analizę.
Idziesz do zajrzeć do zapytań, które mają dużo czyta, albo zajmują dużo czasu procesora, itd
Optimization jest niedźwiedź, ale nie poddawać się w nim, a co najważniejsze, nie zakładaj, że wiesz, gdzie jest wąskie gardło, znajdź dowód, gdzie to jest i napraw to.
Używam SQL Profiler, który jest dostarczany z SQL Server. Większość źle działających zapytań, które znalazłem, nie zużywa dużo procesora, ale generuje masę IO dysku.
Mam tendencję do umieszczania filtrów na odczytach dysków i szukam zapytań, które mają tendencję do wykonywania ponad 20 000 odczytów. Następnie sprawdzam plan wykonania dla zapytań, które zazwyczaj dostarczają informacji potrzebnych do optymalizacji zapytania lub indeksów w powiązanych tabelach.
celu identyfikacji problematycznych zapytań uruchomić Profiler wybrać następujące zdarzenia:
- TSQL: BatchCompleted
- TSQL: StmtCompleted
- SP: Zakończony
- SP: StmtCompleted
filtr wyjście na przykład przez
- Czas trwania> x ms (na przykład 100 ms, zależy przede wszystkim od potrzeb i rodzaju systemu)
- centralne> y ms
- Odsłon> R
- Zapisuje> W
W zależności od tego, co chcesz zoptymalizować. Pamiętaj, aby filtrować dane wyjściowe na tyle, aby nie wyświetlać tysięcy datarów przewijających się przez okno, ponieważ wpłynie to na wydajność twojego serwera!
Pomocne w logowaniu wyników do tabeli bazy danych w celu późniejszej analizy. Pomocne może być również równoległe uruchamianie monitora systemu Windows w celu wyświetlenia obciążenia procesora, dysku i niektórych wskaźników wydajności serwera sql. Skonfiguruj sysmon, aby zapisać dane do pliku.
Niż trzeba produkować typowe obciążenie zapytań i dane wolumne w bazie danych, aby zobaczyć znaczące wartości z profilerem.
Po uzyskaniu danych wyjściowych z profilera można zatrzymać profilowanie.
Następnie ponownie załaduj przechowywane dane z tabeli profilowania do profilera i użyj importmenu, aby zaimportować dane wyjściowe z monitora systemowego, a profiler skoreluje dane wyjściowe sysmon z danymi profilera sql. To bardzo fajna funkcja.
W tym widoku można od razu zidentyfikować błędy związane z pamięcią, dyskiem lub systemem cpu.
Po zidentyfikowaniu niektórych zapytań, które chcesz omtymalizować, przejdź do analizatora zapytań i obejrzyj plan wykonania oraz spróbuj omówić użycie indeksu i projektowanie zapytań.
Dziękuję za odpowiedź, to SQL Server 2005 - ale wierzę, że kreator dostrajania baz danych wciąż istnieje (zaktualizowałem to pytanie). – digiguru
Tak, w takim przypadku skorzystaj z narzędzia Database Tuning Engine Advisor, dostępnego pod Narzędzia od SSMS! –