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

SQL Server създава ли неклъстъриран индекс на всички колони на таблица по подразбиране

Не, SQL Server не създава автоматично неклъстерирани индекси.
Клъстерен индекс се създава автоматично въз основа на първичния ключ, освен ако вашият CREATE TABLE изявлението казва друго.

Да, бих препоръчал индексиране на колони с външен ключ, защото те са най-вероятно да бъдат JOIN'd/търсени срещу използване на IN , EXISTS , и т.н. Имайте предвид обаче, че индекс на набор от стойности с ниска кардиналност (пол например) ще бъде относително безполезен, защото няма достатъчно разлика в стойностите.

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




  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 не може да вмъкне изрична стойност за колона за идентичност в таблица „Таблица“, когато IDENTITY_INSERT е зададено на OFF

  3. Изберете кирилица в SQL

  4. Какъв е максималният брой присъединявания, разрешен в SQL Server 2008?

  5. Да се ​​приложи като върху всички колони, без да се посочват имена на всички колони?