2011-12-20 4 views
12

मेरे पास दो टेबल हैं जिनमें लाखों रिकॉर्ड हैं।
मैं पूर्ण पाठ खोजना चाहता हूं (मूल रूप से पहले और अंतिम नाम।) हालांकि, इन दोनों तालिकाओं को अनिवार्य रूप से मिटा दिया जाता है और सप्ताहांत में विरासत डीटीएस पैकेज द्वारा प्रतिस्थापित किया जाता है।
मैंने ट्रैकिंग सेट को स्वचालित रूप से बदल दिया था और जब डीटीएस ने कहा था, तो तालिका बंद हो गई और सभी प्रश्न विफल हो गए।एसक्यूएल सर्वर के लिए सलाह पूर्ण पाठ अनुक्रमण परिवर्तन ट्रैकिंग और जनसंख्या

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

इसके अलावा, "परिवर्तन ट्रैकिंग" और "जनसंख्या" के बीच क्या अंतर है और वे कैसे संबंधित हैं?
कोई परिवर्तन ट्रैकिंग नहीं होने पर सूचकांक कैसे काम कर सकता है?
क्या परिवर्तन आबादी बंद होने पर भी पूर्ण जनसंख्या इंडेक्स जोड़ती है?

उत्तर

26

इंडेक्स आबादी तक पहुंचने के कई तरीके हैं जब टेबल सप्ताहांत में मिटा दिए जाते हैं। एक विकल्प है कि इसे पोंछने से पहले टेबल पर पूर्ण-पाठ अनुक्रमणिका ड्रॉप करना और लीगेसी डीटीएस पैकेज प्रतिस्थापन के बाद इंडेक्स को फिर से बनाना है। एक और विकल्प इंडेक्स को चेंज ट्रैकिंग सेट करने के लिए इंडेक्स को बदलना है। तालिका को मिटा दिया गया है और एफटी इंडेक्स आबादी को फिर से पॉप्युलेट किया जा सकता है, इसके बाद ALTER FULLTEXT INDEX को कॉल करके ट्रिगर किया जा सकता है ... अद्यतन अद्यतन प्रारंभ करें। मैं उत्तरार्द्ध पसंद करता हूं (यदि इस तालिका में बहुत सारे अपडेट दिखाई देते हैं तो परिवर्तन ट्रैकिंग को रीसेट करना न भूलें)।

CHANGE_TRACKING और जनसंख्या के बीच

अंतर -

CHANGE_TRACKING निर्दिष्ट करता है और तालिका में किए गए परिवर्तनों को पूर्ण-पाठ सूचकांक को प्रचारित कर रहे हैं। इसे ऑटो, मैनुअल या ऑफ पर सेट किया जा सकता है।

जनसंख्या केवल तभी महत्वपूर्ण है जब CHANGE_TRACKING को मैन्युअल या बंद पर सेट किया गया हो।

मैन्युअल पर सेट होने पर, उपयोगकर्ता को अद्यतन आबादी कमांड को ट्रिगर करना होता है ताकि पूर्ण-पाठ ट्रैक किए गए परिवर्तनों को अनुक्रमित कर सके यानी वे स्वचालित रूप से अनुक्रमित नहीं होते हैं।

ऑफ़ सेटिंग यह निर्दिष्ट करता है कि SQL सर्वर कमांड आमंत्रण के दौरान तालिका केवल तालिका को अनुक्रमणित करने के बजाय परिवर्तित डेटा का ट्रैक नहीं रखता है। जब CHANGE_TRACKING को बंद करने के लिए कोई जनसंख्या निर्दिष्ट नहीं की जाती है, तो पूर्ण-पाठ अनुक्रमणिका को तब तक अबाधित नहीं किया जाता है जब तक उपयोगकर्ता प्रारंभ पूर्ण पूर्णता के साथ ALTER FULLTEXT INDEX को कॉल नहीं करता है या प्रारंभिक जनसंख्या खंड प्रारंभ नहीं करता है।

CREATE FULLTEXT INDEX एमएसडीएन आलेख में इन सभी विकल्पों को अधिक गहराई से शामिल किया गया है।

+0

अच्छी तरह से डाल दिया। आपको जाना होगा और आपको +1 करने के लिए लॉग इन करना होगा। @fregas - सुनिश्चित करें कि आप अपने अच्छे उत्तर के लिए 'aks' upscore। इसके अलावा, अगर कोई अन्य नहीं है तो यह सबसे अच्छा जवाब देने योग्य है। मैंने इसे काफी उपयोगी पाया। मेरे द्वारा –

+0

+1। एमएसडीएन लेख से बेहतर ... – Shubhojit

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