bir T-SQL Script üzerinden veya Designer yoluyla oluşturulur eğer önemli değildir. Sorunuz biraz belirsiz, bu yüzden eğer tüm yabancı anahtarları indekslemenin iyi olup olmadığını soruyorsanız emin değilim. eğer Ancak, endeksler sorgularda sık başvurulan sütunlar üzerinde oluşturulması gerekir ve performansı artırmak için aşağıdakileri yapabilirsiniz:
geliştirmelerin bir özeti tedarik ve endeksler tavsiye eder veritabanı ayarlama sihirbazı çalıştırın .
Endeksi yabancı anahtarların tamamı ve yürütme planını çalıştırın (sorguları hızlı veya daha yavaş performans gösterip görmek için).
T-SQL
aracılığıyla bir dizin oluşturmak için: yapabildin tüm yabancı tuşların üzerinde endeksleri uygulayan bir komut dosyası oluşturmak için
SELECT f.name AS ForeignKey,
OBJECT_NAME(f.parent_object_id) AS TableName,
COL_NAME(fc.parent_object_id, fc.parent_column_id) AS ColumnName,
OBJECT_NAME (f.referenced_object_id) AS ReferenceTableName,
COL_NAME(fc.referenced_object_id, fc.referenced_column_id) AS ReferenceColumnName
FROM sys.foreign_keys AS f
INNER JOIN sys.foreign_key_columns AS fc
ON f.OBJECT_ID = fc.constraint_object_id
:
CREATE INDEX IX_INDEX_NAME
ON Table (FieldName);
tüm yabancı anahtarların bir listesini almak için bunu yapmak:
SELECT 'CREATE INDEX [IX_' + f.name + '] ON ' + OBJECT_NAME(f.parent_object_id) + '(' + COL_NAME(fc.parent_object_id, fc.parent_column_id) + ')]'
FROM sys.foreign_keys AS f
INNER JOIN sys.foreign_key_columns AS fc
ON f.OBJECT_ID = fc.constraint_object_id
http://msdn.microsoft.com/en-us/library/ms188783.aspx
(Ben küçük tablolarda dizinler eklemek için değil eğilimindedir) FK isimleri hariç tutabilir dizindeki yabancı anahtarların tümüne tamam olup olmadığını da soran eğer, bu yüzden emin değilim "* – Kev