इससे कोई फर्क नहीं पड़ता कि वे टी-एसक्यूएल स्क्रिप्ट या डिजाइनर के माध्यम से बनाए गए हैं या नहीं। आपका प्रश्न थोड़ा संदिग्ध है, इसलिए मुझे यकीन नहीं है कि आप यह भी पूछ रहे हैं कि क्या सभी विदेशी कुंजीों को इंडेक्स करना ठीक है या नहीं। हालांकि, अगर आप कर रहे हैं, अनुक्रमित कॉलम कि प्रश्नों में अक्सर संदर्भित पर बनाया जाना चाहिए और आप के प्रदर्शन में सुधार करने के लिए निम्न कर सकते हैं:
डेटाबेस ट्यूनिंग विज़ार्ड जो सुधार का एक सारांश की आपूर्ति और अनुक्रमित की सिफारिश करेंगे भागो ।
सभी विदेशी कुंजी इंडेक्स और निष्पादन योजना चलाएं (यह देखने के लिए कि प्रश्न तेजी से या धीमे प्रदर्शन कर रहे हैं)।
T-SQL
के माध्यम से एक सूचकांक बनाने के लिए: सभी विदेशी कुंजी आप कर सकते थे भर में अनुक्रमित लागू होने वाला एक स्क्रिप्ट उत्पन्न करने के लिए
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);
सभी विदेशी कुंजी की एक सूची प्राप्त करने के लिए ऐसा करें:
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
स्रोत
2012-05-24 10:20:44
मैं आपको अपने प्रश्न को स्पष्ट करने के लिए, डैरेन के जवाब में इस अवलोकन को देखने की जरूरत है (मैं छोटे टेबल पर अनुक्रमित जोड़ने के लिए नहीं करते): * "आपका प्रश्न एक छोटे से अस्पष्ट है , तो मैं अनिश्चित हूं अगर आप भी अगर यह सूचकांक विदेशी कुंजी के सभी के लिए ठीक है पूछ रहे हैं "* – Kev