sql >> Database >  >> RDS >> Sqlserver

hoe te controleren of de zoekopdracht index gebruikt

Dit is eigenlijk moeilijker dan het lijkt - een typisch modern DBMS (en MS SQL Server is geen uitzondering) zal soms een volledige tabelscan uitvoeren, zelfs als de index beschikbaar is, simpelweg omdat dat sneller zou kunnen zijn bij kleine hoeveelheden gegevens.

Voorbeeld:

Bovendien kan de beslissing die het DBMS neemt worden beïnvloed door hoe vers/nauwkeurig de statistieken zijn.

De meest betrouwbare test om vast te stellen of de index wordt gebruikt, is door simpelweg uw database te vullen met representatieve hoeveelheden gegevens en vervolgens bekijk het uitvoeringsplan . En vergeet niet om de daadwerkelijke uitvoering van de query te timen, terwijl u toch bezig bent!

Een vereenvoudigd voorbeeld:als de hele tabel in een enkele databasepagina past, is het sneller om die pagina gewoon te laden en opeenvolgend te doorlopen, dan te wachten op de extra I/O voor de pagina die de index bevat.>



  1. Mysql CASE WHEN JOIN-instructiefout

  2. De beste manieren om SQL DELETE-instructie in een SQL-tabel te gebruiken

  3. Is er een manier om de standaard tijdstempels van Rails te wijzigen in Y-m-d H:i:s (in plaats van Y-m-d H:i:s.u) of om laravel het decimale gedeelte van Y-m-d H:i:s.u te laten negeren?

  4. Datumbereik splitsen in één rij per maand in sql-server