sql >> Database >  >> RDS >> Sqlserver

Waarom is mijn SQL Server ORDER BY traag ondanks dat de geordende kolom wordt geïndexeerd?

Als uw zoekopdracht op dat moment nog geen bestelling bevat, worden de gegevens geretourneerd in de volgorde waarin deze is gevonden. Er is geen garantie dat de gegevens zelfs in dezelfde volgorde worden geretourneerd wanneer u de query opnieuw uitvoert.

Wanneer u een order by-clausule opneemt, moet de dabatase een lijst van de rijen in de juiste volgorde opbouwen en vervolgens de gegevens in die volgorde retourneren. Dit kan veel extra verwerking vergen, wat zich vertaalt in extra tijd.

Het duurt waarschijnlijk langer om een ​​groot aantal kolommen te sorteren, die uw zoekopdracht mogelijk retourneert. Op een gegeven moment heb je geen bufferruimte meer en moet de database gaan swappen en gaat de prestatie bergafwaarts.

Probeer minder kolommen te retourneren (geef de kolommen op die u nodig hebt in plaats van Selecteer *) en kijk of de zoekopdracht sneller wordt uitgevoerd.



  1. MySQL-connectoren en licenties

  2. Uitvoer tussen twee datums mysql

  3. SELECTEER 1 van DUAL:MySQL

  4. 3 SQL Server-bewakingsvragen die u moet stellen bij het overnemen van een DBA-positie