SQL Server, SQL Statistics-objekt

Gäller för:SQL Server

SQLServer:SQL Statistics-objektet i SQL Server tillhandahåller räknare för att övervaka kompilering och typen av förfrågningar som skickas till en instans av SQL Server. Att övervaka antalet frågekompileringar och omkompileringar samt antalet batcher som tas emot av en instans av SQL Server ger dig en indikation på hur snabbt SQL Server behandlar användarfrågor och hur effektivt frågeoptimeraren bearbetar frågorna.

Kompilering är en betydande del av en frågas svarstid. För att spara kompileringskostnaden sparar Database Engine den kompilerade frågeplanen i en frågecache. Cachen minskar kompilering genom att lagra kompilerade frågor för senare återanvändning, vilket eliminerar behovet av att kompilera om frågor vid efterföljande körningar. Dock måste varje unik fråga kompileras minst en gång. Följande faktorer kan orsaka omkompileringar av frågor:

  • Schemaändringar, inklusive grundläggande schemaändringar som att lägga till kolumner eller index i en tabell, eller statistikschemaändringar som att infoga eller ta bort ett betydande antal rader från en tabell.

  • Miljö (SET påstående) förändras. Ändringar i sessionsinställningar, såsom ANSI_PADDING eller ANSI_NULLS kan orsaka att en fråga kompileras om.

Mer information finns i:

Följande tabell listar SQL Server SQL Statistics-räknare.

SQL Server SQL Statistics-räknare Description
Auto-Param försök/sekund Antal autoparametriseringsförsök per sekund. Total bör vara summan av de misslyckade, säkra och osäkra autoparametriseringarna. Autoparametrisering sker när en instans av SQL Server försöker parametrisera en Transact-SQL-förfrågan genom att ersätta vissa literaler med parametrar så att återanvändning av den resulterande cachade exekveringsplanen över flera liknande förfrågningar är möjlig. Autoparametrisering kallas också enkel parameterisering. Denna räknare inkluderar inte tvingade parameteriseringar.
Batchförfrågningar/sekund Antal Transact-SQL kommandobatcher mottagna per sekund. Denna statistik påverkas av alla begränsningar (såsom I/O, antal användare, cachestorlek och förfrågningars komplexitet). Höga batchförfrågningar ger bra genomströmning.
Misslyckade Auto-Params/sek Antal misslyckade autoparametriseringsförsök per sekund. Detta värde bör vara litet. Autoparametrisering kallas också enkel parameterisering.
Tvingade parameteriseringar/sek Antal lyckade tvingade parameteriseringar per sekund.
Genomförande av guidade planer/sekund Antal planutföranden per sekund där frågeplanen har genererats med hjälp av en planguide.
Felriktade plangenomföranden/sec Antal planutföranden per sekund där en planguide inte kunde respekteras under plangenereringen. Frågeoptimeraren ignorerade planguiden och använde normal kompilering för att generera den utförda planen.
Säkra autoparametrar/sek Antal säkra autoparametriseringsförsök per sekund. Safe syftar på en bedömning av att en cachad exekveringsplan kan delas mellan olika liknande Transact-SQL-satser. SQL Server gör många försök till automatisk parameterisering. Vissa visar sig vara säkra, andra misslyckas. Autoparametrisering kallas också enkel parameterisering. Denna räknare inkluderar inte tvingade parameteriseringar.
SQL-uppmärksamhetsgrad Antal uppmärksamheter per sekund. En uppmärksamhet är en begäran från klienten att avsluta den pågående begäran.
SQL-kompilationer/sec Antal SQL-kompilationer per sekund. Anger hur många gånger kompileringskodens väg matas in. Inkluderar kompileringar orsakade av satsnivå-omkompileringar i SQL Server. När SQL Server-användaraktiviteten är stabil når detta värde ett stabilt tillstånd.
SQL Re-kompileringer/sec Antalet uppgifter omkompilerar per sekund. Räknar antalet gånger påstående omkompilerar triggas. Generellt vill du att rekompileringarna ska vara låga.
Osäkra Auto-Params/sek Antal osäkra autoparametriseringsförsök per sekund. Till exempel har frågan vissa egenskaper som förhindrar att den cachade planen kan delas. Dessa egenskaper klassas som osäkra. Denna räkning inkluderar inte antalet tvingade parameteriseringar.

Examples

För att utforska frågeprestandaräknarna i detta objekt, kör följande Transact-SQL (T-SQL)-fråga i den sys.dm_os_performance_counters dynamiska hanteringsvyn:

SELECT *
FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%SQL Statistics%';