SSMS
 sql >> Baza danych >  >> Database Tools >> SSMS

Czas wykonania zapytania w Management Studio i profilerze. Co to mierzy?

Jeśli dobrze rozumiem Twoje pytanie, najpierw kwestionujesz różnicę między czasem trwania raportowanym przez Profiler a statystykami prezentowanymi w SSMS (albo w prawym dolnym rogu dla ogólnego czasu i/lub przez SET STATISTICS TIME ON). Poza tym wydaje się, że nie jesteś przekonany do komentarza produkcyjnego DBA, że widok jest wykonywany w oczekiwanym czasie ~60 sekund.

Po pierwsze, z Books Online, statystyki, które SSMS zgłosi z powrotem przez SET STATISTICS TIME ON:

"Wyświetla liczbę milisekund wymaganych do przeanalizowania, kompilacji i wykonania każdej instrukcji."

Jesteś na miejscu. Czas trwania w Profilerze jest opisany jako:

„Czas trwania (w mikrosekundach) zdarzenia”.

Z miejsca, w którym siedzę, te dwa powinny być funkcjonalnie równoważne (i, jak na pewno zauważyłeś, Profiler zgłosi raport w mikrosekundach, jeśli idziesz przeciwko SQL 2005 lub nowszemu). Mówię to, ponieważ „zdarzeniem” w tym przypadku (dotyczącym czasu trwania w Profilerze) jest wykonanie wyboru, które obejmuje dostawę do klienta; jest to spójne w obu przypadkach.

Wygląda na to, że podejrzewasz, że geografia jest przyczyną długiego czasu wykonywania zapytania zdalnie. To może być bardzo dobrze. Możesz to przetestować, wykonując zaznaczenie w widoku w jednym oknie zapytania, a następnie otwierając inne okno zapytania i sprawdzając typ oczekiwania w zapytaniu:

select
    a.session_id
    ,a.start_time
    ,a.status
    ,a.command
    ,db_name(a.database_id) as database_name
    ,a.blocking_session_id
    ,a.wait_type
    ,a.wait_time
    ,a.cpu_time
    ,a.total_elapsed_time
    ,b.text
from sys.dm_exec_requests a
    cross apply sys.dm_exec_sql_text(a.sql_handle) b
where a.session_id != @@spid;

Podejrzewam, że zobaczysz coś takiego jak ASYNC_NETWORK_IO jako typ oczekiwania, jeśli geografia jest problemem - w przeciwnym razie sprawdź, co z tego wynika. Jeśli profilujesz zapytanie dotyczące zdalnego wykonania, czas trwania będzie odzwierciedlał statystyki czasu widoczne w programie SSMS. JEDNAK, jeśli używasz Profilera i stwierdzasz, że czas trwania tego zapytania po wykonaniu z jednego z serwerów internetowych który znajduje się w tym samym centrum danych, co SQL Server, nadal zajmuje 7 minut, to DBA jest wielkim, grubym kłamcą :). Używałbym Profilera do rejestrowania zapytań, które trwają dłużej niż 1 minutę, spróbuj filtrować widok i wziąć średnią, aby zobaczyć, czy osiągasz cel pod względem wydajności.

Ponieważ nie ma innych opublikowanych odpowiedzi, obawiam się, że jestem tutaj daleko od bazy - ale jest późno i jestem w tym nowy, więc pomyślałem, że spróbuję!



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Dlaczego moje buforowane punkty są podłużne, a nie kołowe w SQL Server Management Studio - Spatial Results?

  2. Gdzie mogę sprawdzić typ tabeli definiowanej przez użytkownika w programie SQL Server 2008 w programie SSMS? i jak wstawić do niego nową kolumnę?

  3. SQL LocalDB - Nie można usunąć bazy danych, gdy jej pliki są usuwane

  4. SQL Server Management Studio, jak skrócić czas wykonania do milisekund

  5. SQL Server:Jak dołączyć/naprawić odłączoną/uszkodzoną bazę danych?