SQL Server, SQL Statistics object

Van toepassing op:SQL Server

Het SQLServer:SQL Statistics-object in SQL Server biedt tellers om compilatie en het type verzoeken dat naar een instantie van SQL Server wordt gestuurd te monitoren. Door het aantal querycompilaties en hercompilaties en het aantal batches dat door een instantie van SQL Server wordt ontvangen te monitoren, krijg je een indicatie van hoe snel SQL Server gebruikersqueries verwerkt en hoe effectief de queryoptimizer de queries verwerkt.

Compilatie is een belangrijk onderdeel van de doorlooptijd van een query. Om de compilatiekosten te besparen, slaat de Database Engine het gecompileerde queryplan op in een querycache. De cache vermindert compilatie door gecompileerde queries op te slaan voor later gebruik, waardoor het opnieuw compileren van queries bij latere uitvoeringen overbodig wordt. Elke unieke query moet echter minstens één keer worden gecompileerd. De volgende factoren kunnen quellhercompilaties veroorzaken:

  • Schemawijzigingen, waaronder basisschemawijzigingen zoals het toevoegen van kolommen of indexen aan een tabel, of statistische schemawijzigingen zoals het invoegen of verwijderen van een aanzienlijk aantal rijen uit een tabel.

  • Omgeving (SET statement) verandert. Wijzigingen in sessie-instellingen, ANSI_PADDING zoals of ANSI_NULLS of kunnen ervoor zorgen dat een query opnieuw wordt gecompileerd.

Voor meer informatie, zie:

De volgende tabel geeft een overzicht van de SQL Server SQL Statistiek-tellers.

SQL Server SQL Statistiek-tellers Description
Auto-Param pogingen/sec Aantal auto-parametrisatiepogingen per seconde. Total moet de som zijn van de mislukte, veilige en onveilige automatische parameterisaties. Auto-parametrisatie vindt plaats wanneer een instantie van SQL Server probeert een Transact-SQL-verzoek te parametriseren door enkele literals te vervangen door parameters, zodat hergebruik van het resulterende gecachede uitvoeringsplan over meerdere vergelijkbaar ogende verzoeken mogelijk is. Auto-parametrisatie staat ook bekend als eenvoudige parameterisatie. Deze teller bevat geen geforceerde parameterisaties.
Batchverzoeken/sec Aantal ontvangen Transact-SQL commandobatches per seconde. Deze statistiek wordt beïnvloed door alle beperkingen (zoals I/O, aantal gebruikers, cachegrootte en complexiteit van verzoeken). Hoge batchverzoeken betekenen goede doorvoer.
Mislukte Auto-Params/sec Aantal mislukte auto-parametrisatiepogingen per seconde. Deze waarde moet klein zijn. Auto-parametrisatie staat ook bekend als eenvoudige parameterisatie.
Gedwongen parameterisaties per seconde Aantal succesvolle gedwongen parameterisaties per seconde.
Uitvoeringen van begeleide plannen/sec Aantal planuitvoeringen per seconde waarin het queryplan is gegenereerd met behulp van een plangids.
Misplaatste planuitvoeringen/sec Aantal planuitvoeringen per seconde waarbij een plangids niet kon worden nageleefd tijdens het genereren van plannen. De query-optimizer negeerde de plangids en gebruikte normale compilatie om het uitgevoerde plan te genereren.
Veilige automatische params/sec Aantal veilige autoparametrisatiepogingen per seconde. Veilig verwijst naar de bepaling dat een gecachet uitvoeringsplan gedeeld kan worden tussen verschillende vergelijkbaar ogende Transact-SQL statements. SQL Server doet veel pogingen tot automatische parameterisatie. Sommige blijken veilig te zijn, andere falen. Auto-parametrisatie staat ook bekend als eenvoudige parameterisatie. Deze teller bevat geen geforceerde parameterisaties.
SQL Aandachtsfrequentie Aantal aandacht per seconde. Een attention is een verzoek van de client om het momenteel lopende verzoek te beëindigen.
SQL-compilaties/sec Aantal SQL-compilaties per seconde. Geeft het aantal keren dat het compilatiecodepad wordt ingevoerd. Bevat compileringen veroorzaakt door hercompilaties op instructieniveau in SQL Server. Nadat de gebruikersactiviteit van SQL Server stabiel is, bereikt deze waarde een stabiele toestand.
SQL Re-Compilaties/sec Het aantal statements wordt per seconde opnieuw gecompileerd. Telt het aantal keren dat hercompilaties van een statement worden geactiveerd. Over het algemeen wil je dat de recompiles laag zijn.
Onveilige Auto-Params/sec Aantal onveilige autoparametrisatiepogingen per seconde. De query heeft bijvoorbeeld enkele kenmerken die voorkomen dat het gecachte plan gedeeld kan worden. Deze kenmerken worden als onveilig aangemerkt. Deze telling omvat niet het aantal geforceerde parameterisaties.

Examples

Om de queryprestatietellers in dit object te verkennen, voer je de volgende Transact-SQL (T-SQL) query uit op de sys.dm_os_performance_counters dynamische beheerweergave:

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