In index max length is 900 bytes anyway, तो आप ऐसा नहीं कर सकते सूचकांक NVARCHAR (2000)।
एक बड़ा सूचकांक कुंजी का मतलब है कम कुंजी सूचकांक पृष्ठों में फिट तो यह एक बड़ा पेड़ है, और अधिक इस्तेमाल किया डिस्क, और अधिक मैं/हे, और अधिक बफर पुल, कम कैशिंग पैदा करता है। क्लस्टर कुंजी के लिए यह बहुत खराब है क्योंकि क्लस्टर किए गए कुंजी मान को अन्य सभी गैर-क्लस्टर, इंडेक्स पर लुकअप वैल्यू के रूप में उपयोग किया जाता है, इसलिए यह के आकार इंडेक्स का आकार बढ़ाता है।
अंत में एक प्रश्न में सबसे प्रचलित प्रदर्शन ड्राइविंग मीट्रिक स्कैन किया/की तलाश एड पृष्ठों की संख्या है। यह भौतिक पढ़ने में अनुवाद करता है (= I/O प्रतीक्षा समय) या तार्किक पढ़ता है (= कैश प्रदूषण)।
अंतरिक्ष विचारों के अलावा, डेटा प्रकार क्वेरी व्यवहार में कोई अंतर नहीं करते हैं। char/varchar/nchar/nvarchar में टकराव होते हैं जिन्हें तुलनाओं पर ध्यान में रखा जाना चाहिए, लेकिन कोलेशन ऑर्डर लुकअप की लागत आमतौर पर निर्णायक कारक नहीं होती है।
और अंतिम लेकिन कम से कम नहीं, शायद सबसे महत्वपूर्ण कारक है, आपके एप्लिकेशन एक्सेस पैटर्न है। एसएआरजेबल को क्वेरी करने वाले कॉलम इंडेक्स करें, ऑप्टिमाइज़र द्वारा उपयोग नहीं किए जाने वाले इंडेक्स को बनाए रखने में बिल्कुल कोई फायदा नहीं है।
और कभी-कभी आपको समवर्ती मुद्दों पर विचार करना पड़ता है, जैसे कि आपको deadlocks caused by distinct update access path to the same record को खत्म करना होगा।
पोस्ट संपादित
एक मौजूदा MD5 हैश स्तंभ उपयोग के बाद अद्यतन:
create table foo (
bar nvarchar(2000) not null,
[hash] as hashbytes('MD5', bar) persisted not null,
constraint pk_hash unique ([hash]));
go
insert into foo (bar) values (N'Some text');
insert into foo (bar) values (N'Other text');
go
select * from foo
where [hash] = hashbytes('MD5', N'Some text');
go
आप बहुत अपने चाहता है के साथ सावधान रहना होगा, हैश इनपुट में कोई अंतर, यानी के लिए बेतहाशा अलग होगा । यदि आप यूनिकोड के बजाय असीसी पैरामीटर चाहते हैं ...
आपकी तालिका decent collision chance होगी यदि आपकी तालिका बड़ी हो जाती है।
आप खोज करने या विशिष्टता को लागू करने की जरूरत है? –
@Alex मुझे विशिष्टता को लागू करने की आवश्यकता है, लेकिन केवल सटीक मिलान कर रहे हैं। –
मैं ट्रिगर्स का उपयोग करूंगा। –