इससे कोई फर्क नहीं पड़ता कि वे टी-एसक्यूएल स्क्रिप्ट या डिज़ाइनर के माध्यम से बनाए गए हैं। आपका प्रश्न थोड़ा अस्पष्ट है, इसलिए मैं अनिश्चित हूं कि क्या आप यह भी पूछ रहे हैं कि क्या सभी विदेशी कुंजियों को अनुक्रमित करना ठीक है। हालाँकि, यदि आप हैं, तो उन स्तंभों पर अनुक्रमणिकाएँ बनाई जानी चाहिए जिन्हें अक्सर प्रश्नों में संदर्भित किया जाता है और आप प्रदर्शन को बेहतर बनाने के लिए निम्न कार्य कर सकते हैं:
-
डेटाबेस ट्यूनिंग विज़ार्ड चलाएँ जो सुधारों का सारांश प्रदान करेगा और अनुक्रमणिका की अनुशंसा करेगा।
-
सभी विदेशी कुंजियों को अनुक्रमित करें और निष्पादन योजना चलाएँ (यह देखने के लिए कि क्या प्रश्न तेज़ या धीमे प्रदर्शन कर रहे हैं)।
T-SQL
. के माध्यम से एक इंडेक्स बनाने के लिए :
CREATE INDEX IX_INDEX_NAME
ON Table (FieldName);
सभी विदेशी कुंजियों की सूची प्राप्त करने के लिए:
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
सभी विदेशी कुंजियों पर अनुक्रमणिका लागू करने वाली स्क्रिप्ट बनाने के लिए आप यह कर सकते हैं:
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