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

Сортиране на първичен ключ

Данните се съхраняват физически чрез клъстериран индекс, който обикновено е първичен ключ, но не е задължително.

Не се гарантира, че данните в SQL имат ред без клауза ORDER BY. Винаги трябва да посочите клауза ORDER BY, когато имате нужда данните да са в определен ред. Ако таблицата вече е сортирана по този начин, оптимизаторът няма да свърши никаква допълнителна работа, така че няма нищо лошо да я има там.

Без клауза ORDER BY, RDBMS може да върне кеширани страници, съответстващи на вашата заявка, докато чака записите да бъдат прочетени от диска. В този случай, дори ако има индекс в таблицата, данните може да не влязат в реда на индекса. (Обърнете внимание, че това е само пример – не знам или дори мисля, че RDBMS в реалния свят ще направи това, но това е приемливо поведение за SQL реализация.)

РЕДАКТИРАНЕ

Ако имате влияние върху производителността при сортиране спрямо когато не сортирате, вероятно сортирате по колона (или набор от колони), която няма индекс (клъстериран или друг). Като се има предвид, че това е времеви ред, може да сортирате въз основа на времето, но клъстерираният индекс е на първичния bigint. SQL Server не знае, че и двете се увеличават по един и същи начин, така че трябва да използва всичко.

Ако колоната за време и колоната с първичен ключ са свързани по ред (едната се увеличава, ако и само ако другата се увеличава или остава същата), вместо това сортирайте по първичния ключ. Ако те не са свързани по този начин, преместете клъстерирания индекс от първичния ключ към всяка колона(и), по която сортирате.



  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 файлове в директория

  2. Как да добавя xml кодиране <?xml version=1.0 encoding=UTF-8?> към xml изход в SQL Server

  3. T-SQL:Обратно на конкатенацията на низове - как да разделите низ на множество записи

  4. Име на колони за променлива на SQL Server?

  5. Регистърът на транзакциите на SQL Server, част 1:Основи на регистрирането