sql >> Database >  >> Database Tools >> SSMS

Uitvoeringstijd query in Management Studio &profiler. Wat meet het?

Als ik uw vraag goed begrijp, twijfelt u eerst aan het verschil tussen de door Profiler gerapporteerde duur en de statistieken gepresenteerd in SSMS (ofwel in de rechter benedenhoek voor algemene tijd en/of door STATISTIEKEN INSTELLEN TIJD AAN). Bovendien lijkt u niet overtuigd te zijn van de opmerking van de productie-DBA dat de weergave binnen de verwachte duur van ~60 seconden wordt uitgevoerd.

Ten eerste, van Books Online, de statistieken die SSMS zou rapporteren via SET STATISTICS TIME ON:

"Geeft het aantal milliseconden weer dat nodig is om elke instructie te ontleden, compileren en uitvoeren."

Je bent hier perfect voor. De duur in Profiler wordt beschreven als:

"De duur (in microseconden) van het evenement."

Van waar ik zit, zouden deze twee functioneel equivalent moeten zijn (en, zoals je zeker hebt opgemerkt, zal Profiler binnen microseconden rapporteren als je tegen SQL 2005 of later ingaat). Ik zeg dit omdat de "gebeurtenis" in dit geval (met betrekking tot Duur in Profiler) de uitvoering van de selectie is, inclusief levering aan de klant; dit is in beide gevallen consistent.

Het lijkt erop dat u vermoedt dat geografie de boosdoener is van de lange duur bij het op afstand uitvoeren van de query. Dit kan heel goed zijn. U kunt dit testen door de select uit te voeren op de weergave in het ene queryvenster en vervolgens een ander queryvenster te openen en het wachttype op de query te bekijken:

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;

Ik vermoed dat je iets als ASYNC_NETWORK_IO zou zien als het wachttype als geografie het probleem is - kijk anders eens wat hiervan komt. Als u de query van uw externe uitvoering profileert, weerspiegelt de duur de tijdstatistieken die u in SSMS ziet. ECHTER, als u Profiler gebruikt en merkt dat de duur van deze zoekopdracht wanneer uitgevoerd vanaf een van de webservers die in hetzelfde datacenter zit als de SQL Server duurt nog 7 minuten, dan is de DBA een grote, dikke leugenaar :). Ik zou Profiler gebruiken om zoekopdrachten op te nemen die langer dan 1 minuut duren, proberen te filteren op uw weergave en het gemiddelde nemen om te zien of u op schema zit voor prestaties.

Omdat er geen andere antwoorden zijn gepost, ben ik bang dat ik hier ver naast de basis zit - maar het is laat en ik ben nieuw hier, dus ik dacht ik probeer het eens!



  1. Hoe exporteer ik een tabel naar Excel vanuit de mysql-database?

  2. CREATE USER-fout ontvangen bij poging om BACPAC te importeren van blob-opslag naar sms

  3. PHPMyAdmin-taal instellen

  4. PhpMyAdmin werkt niet op localhost