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

Трябва ли клъстерираните индекси да бъдат уникални?

Те нямат да бъде уникален, но със сигурност се насърчава.
Все още не съм срещал сценарий, при който исках да създам CI на неуникална колона.

Какво се случва, ако създадете CI в неуникална колона

Това води ли до лошо представяне?

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

  • Колко данни съдържа таблицата.
  • Какъв е процентът на вмъкванията.
  • Колко често се използва CI в селекция (когато не съществуват покриващи индекси, почти винаги).

Редактиране
както беше посочено от Remus в коментари, съществуват случаи на употреба, при които създаването на неуникален CI би било разумен избор. Това, че не съм се сблъсквал с нито един от тези сценарии, просто показва собствената ми липса на експозиция или компетентност (изберете своя избор).



  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 LocalDB чрез JDBC

  2. SQL Server - липса на НАТУРАЛНО ПРИСЪЕДИНЯВАНЕ / x JOIN y ИЗПОЛЗВАНЕ(поле)

  3. SQL Server - Кумулативна сума, която се нулира, когато се срещне 0

  4. java.lang.ClassNotFoundException:com.microsoft.jdbc.sqlserver.SQLServerDriver:Зареждам ли правилния драйвер?

  5. Динамичен SQL (предаване на името на таблицата като параметър)