sql >> Database >  >> RDS >> Sqlserver

Hoe kan ik inloggen en de duurste zoekopdrachten vinden?

  1. Gebruik SQL Server Profiler (in het menu Extra in SSMS) om een ​​tracering te maken die deze gebeurtenissen vastlegt:

     RPC:Completed
     SP:Completed
     SP:StmtCompleted
     SQL:BatchCompleted
     SQL:StmtCompleted
    
  2. U kunt beginnen met de standaard traceersjabloon en deze snoeien. Je hebt niet gespecificeerd of dit voor een specifieke database was of de hele server, als het voor specifieke Db's is, neem dan de DatabaseID-kolom op en stel een filter in op je DB (SELECT DB_ID('dbname') ). Zorg ervoor dat de logische kolom Reads-gegevens is opgenomen voor elke gebeurtenis. Stel de tracering in om naar een bestand te loggen. Als u deze tracering onbeheerd op de achtergrond laat draaien, is het een goed idee om een ​​maximale traceerbestandsgrootte in te stellen, bijvoorbeeld 500 MB of 1 GB als u voldoende ruimte heeft (het hangt allemaal af van hoeveel activiteit er op de server is, dus je zult eraan moeten zuigen en zien).

  3. Start de tracering kort en pauzeer deze. Ga naar Bestand->Exporteren->Script Trace Definition en kies uw DB-versie en sla op in een bestand. U hebt nu een sql-script dat een tracering maakt die veel minder overhead heeft dan door de GUI van de profiler te lopen. Wanneer u dit script uitvoert, wordt de Trace-ID uitgevoerd (meestal @ID=2 ); noteer dit.

  4. Zodra u een traceerbestand (.trc) heeft (ofwel de tracering is voltooid vanwege het bereiken van de maximale bestandsgrootte of u stopte de actieve tracering met

    EXEC sp_trace_setstatus @ID, 0
    EXEC sp_trace_setstatus @ID, 2

U kunt de trace in profiler laden, of ClearTrace gebruiken (erg handig) of als volgt in een tabel laden:

SELECT * INTO TraceTable
FROM ::fn_trace_gettable('C:\location of your trace output.trc', default)

Vervolgens kunt u een query uitvoeren om de gegevens te verzamelen, zoals deze:

SELECT COUNT(*) AS TotalExecutions, 
    EventClass, CAST(TextData as nvarchar(2000))
 ,SUM(Duration) AS DurationTotal
 ,SUM(CPU) AS CPUTotal
 ,SUM(Reads) AS ReadsTotal
 ,SUM(Writes) AS WritesTotal
FROM TraceTable
GROUP BY EventClass, CAST(TextData as nvarchar(2000))
ORDER BY ReadsTotal DESC

Zodra u de kostbare vragen hebt geïdentificeerd, kunt u de daadwerkelijke uitvoeringsplannen genereren en onderzoeken.



  1. BOB volledig begrijpen ATTR_PERSISTENT

  2. Hoe pgAdmin 4 te installeren op Ubuntu 20.04/18.04/16.04

  3. PostgreSQL-logboekanalyse met pgBadger

  4. Grote objecten mogen niet worden gebruikt in de modus voor automatisch vastleggen