Ne, SQL Server automaticky nevytváří indexy bez klastrů.
Clusterový index se vytváří automaticky na základě primárního klíče, pokud nemáte CREATE TABLE
prohlášení říká něco jiného.
Ano, doporučoval bych indexovat sloupce cizích klíčů, protože u nich je největší pravděpodobnost, že budou JOIN'd/prohledávány pomocí IN
, EXISTS
, atd. Mějte však na paměti, že index na množině hodnot s nízkou mohutností (například pohlaví) bude relativně k ničemu, protože v hodnotách není dostatečný rozdíl.
Kompromisem se všemi indexy je, že mohou urychlit načítání dat, ale zpomalit vkládání/aktualizaci/mazání dat. Existuje také údržba, kterou je třeba provádět, protože se mohou fragmentovat (jako pevné disky), ale také si časem nemusí zvyknout. Indexy také zabírají místo na disku.