2011-06-01 14 views
8

में इंडेक्स पर कॉलेशन मुझे दिलचस्पी है कि उस कॉलम के संयोजन से अलग इंडेक्स बनाते समय कॉलम के लिए संयोजन निर्दिष्ट करने की संभावना है? और अनुक्रमित होने पर, कॉलम के संयोजन या डेटाबेस के संयोजन के अनुसार क्रमबद्ध स्ट्रिंग डेटा हैं?एसक्यूएल सर्वर

उत्तर

5

मुझे विश्वास नहीं है कि आप कर सकते हैं।

  • बनाना या एक डेटाबेस
  • फेरबदल बनाना या एक तालिका स्तंभ
  • एक का मिलान कास्टिंग फेरबदल: हालांकि COLLATE अलग से दर्ज है, आप केवल 3 सूचीबद्ध स्थानों पर जहां यह हो सकता है देखते हैं कि ध्यान दें जाएगा अभिव्यक्ति

ध्यान दें कि उदाहरण के तौर पर CREATE TABLE में:

<column_definition> ::= 
column_name <data_type> 
    [ FILESTREAM ] 
    [ COLLATE collation_name ] 
    ... 

कि COLLATE क्लॉज का स्पष्ट रूप से उल्लेख किया गया है।

जबकि, CREATE INDEX में: - नहीं एक स्तंभ परिभाषा, और न ही एक अभिव्यक्ति

CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name 
    ON <object> (column [ ASC | DESC ] [ ,...n ]) 
    ... 

ध्यान दें कि सभी कि यहाँ की अनुमति दी है एक स्तंभ है।


मैं एक सूचकांक के भीतर प्रत्येक स्तंभ का मिलान उचित तालिका में अंतर्निहित स्तंभ (ओं) का मिलान इस प्रकार है विश्वास करते हैं। CREATE/ALTER तालिका विवरणों के दौरान कॉलम को डिफ़ॉल्ट कॉलेशन की आपूर्ति करने के अलावा, जहां तक ​​मुझे पता है, डेटाबेस कॉलेशन का अधिक उपयोग नहीं किया जाता है।

6

आप आवश्यक collation के साथ गणना की गई फ़ील्ड बना सकते हैं और इस फ़ील्ड पर अनुक्रमणिका बना सकते हैं।

+1

इसके लिए डबल स्टोरेज की आवश्यकता है ..... – Pacerier

+0

@Pacerier यदि मैं दस्तावेज़ों को सही तरीके से पढ़ रहा हूं, तो आपको गणना किए गए कॉलम पर इंडेक्स बनाने के लिए 'PERSISTED' का उपयोग करने की आवश्यकता नहीं है। – binki

4

एक अनुक्रमित दृश्य बनाने का प्रयास करें और चयन कथन में कॉलम में संयोजन जोड़ें।

+0

मेरा मानना ​​है कि इसका प्रदर्शन भयानक होगा, http://dev.mysql.com/doc/refman/5.0/en/view-restrictions.html, http://www.percona.com/blog/2007/08/12/mysql-view-as-performance-troublemaker /, पहली जगह इंडेक्स के पूरे बिंदु को हराकर ..... – Pacerier

+1

@Pacerier मुझे एहसास है कि यह पुराना है, लेकिन मैं यह इंगित करना चाहता था कि आपने इसके बारे में जानकारी से जुड़ा हुआ है गलत मंच 2014 में, एसक्यूएल सर्वर के पास बेहतर प्रदर्शन क्षमता के साथ और अधिक उन्नत विचार थे जो कि MySQL दस्तावेज़ में वर्णित है। – Daniel

संबंधित मुद्दे