sql >> Databasteknik >  >> RDS >> Sqlserver

Varför är min SQL Server ORDER BY långsam trots att den ordnade kolumnen indexeras?

Om din förfrågan inte innehåller en beställning då kommer den att returnera data oavsett vilken ordning den hittades. Det finns ingen garanti för att data ens kommer att returneras i samma ordning när du kör frågan igen.

När du inkluderar en order by-sats måste dabatasen bygga en lista över raderna i rätt ordning och sedan returnera data i den ordningen. Detta kan ta mycket extra bearbetning vilket leder till extra tid.

Det tar förmodligen längre tid att sortera ett stort antal kolumner, som din fråga kan returnera. Vid något tillfälle kommer du att få slut på buffertutrymme och databasen måste börja byta och prestandan kommer att gå neråt.

Försök att returnera färre kolumner (ange vilka kolumner du behöver istället för Välj *) och se om frågan går snabbare.



  1. Hur man aktiverar/inaktiverar dataåtkomst i SQL Server (T-SQL-exempel)

  2. FORCE INDEX i MySQL - var ska jag lägga det?

  3. Observera:Konvertering av array till sträng i

  4. Hur använder du Python Msqldb-modulen? istället för %s för frågeparametrar?