Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Защо моят SQL Server ORDER BY е бавен, въпреки че подредената колона е индексирана?

Ако вашата заявка не съдържа ред дотогава, тя ще върне данните в какъвто ред е намерен. Няма гаранция, че данните дори ще бъдат върнати в същия ред, когато стартирате заявката отново.

Когато включите клауза за ред по ред, dabatase трябва да изгради списък на редовете в правилния ред и след това да върне данните в този ред. Това може да отнеме много допълнителна обработка, което води до допълнително време.

Вероятно ще отнеме повече време за сортиране на голям брой колони, които вашата заявка може да връща. В един момент ще ви свърши буферното пространство и базата данни ще трябва да започне да се разменя и производителността ще спадне.

Опитайте да върнете по-малко колони (посочете колоните, от които се нуждаете, вместо Изберете *) и вижте дали заявката работи по-бързо.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Първоначалната връзка към SQL Server Връзката е бавна. Защо?

  2. Печат за дата и час по подразбиране на SQL Server?

  3. Как да изтеглите файл, съхранен в SQL DB в двоичен формат

  4. Unicode в SQL Server 2012 Express

  5. Как да извлечете последната автоматично увеличена стойност в MS-Access като @@Identity в Sql Server