sql >> Database teknologi >  >> RDS >> Sqlserver

Hvorfor er min SQL Server ORDER BY langsom, selvom den ordnede kolonne indekseres?

Hvis din forespørgsel ikke indeholder en ordre inden, vil den returnere dataene i den rækkefølge, de blev fundet. Der er ingen garanti for, at dataene overhovedet bliver returneret i samme rækkefølge, når du kører forespørgslen igen.

Når du inkluderer en orden efter klausul, skal dabatasen bygge en liste over rækkerne i den rigtige rækkefølge og derefter returnere dataene i den rækkefølge. Dette kan tage en masse ekstra behandling, som udmønter sig i ekstra tid.

Det tager sandsynligvis længere tid at sortere et stort antal kolonner, som din forespørgsel muligvis returnerer. På et tidspunkt vil du løbe tør for bufferplads, og databasen bliver nødt til at begynde at bytte, og ydeevnen vil gå ned ad bakke.

Prøv at returnere færre kolonner (angiv de kolonner, du har brug for i stedet for Vælg *), og se, om forespørgslen kører hurtigere.



  1. Flere formularer og en PHP-modtager

  2. Tæl rækker i mysql-databasen, hvor tidsstempel inden for X-interval

  3. To genererede værdier i doktrin

  4. Afkrydsningsfelt og tjek alle funktioner i Datatable Jquery PHP Mysql