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