मैं एक खाली डेटाबेस में बड़ी मात्रा में डेटा आयात कर रहा हूं, और इससे पहले कि मैं शुरू करूं मैं सभी गैर-अद्वितीय गैर-क्लस्टर इंडेक्स को यह देखने के लिए अक्षम कर दूं कि क्या मैं आयात के प्रदर्शन में सुधार कर सकता हूं।
अब मैं अनुक्रमणिका को फिर से सक्षम करना चाहता हूं, और मैं सोच रहा हूं कि क्या ऐसा कुछ है जो मैं इसे अनुकूलित करने के लिए कर सकता हूं।
> 100 टेबल और लगभग 2,000 इंडेक्स को फिर से बनाया जाना है। डेटाबेस आकार में 200GB है।
मेरे द्वारा चलाए जा रहे स्क्रिप्ट का मुख्य भाग यह है:
declare c_toggle_index cursor FORWARD_ONLY READ_ONLY for
select 'alter index ' + QUOTENAME(i.name) + ' on ' + o.name + ' rebuild'
from sys.indexes as i
Inner Join sys.objects o
On o.object_id = i.object_id
Where o.is_ms_shipped = 0
And i.index_id >= 1
and i.type > 1
and i.is_disabled = 1
मैंने अनुक्रमणिका विवरण बदलने के लिए ONLINE = OFF की स्थापना पर विचार किया, लेकिन जैसा कि अनुक्रमणिका अक्षम होना शुरू हुई मुझे यकीन नहीं था कि इस सेटिंग का कोई प्रभाव पड़ेगा। मैंने SORT_IN_TEMPDB = ON सेट करने पर भी विचार किया, लेकिन जैसा कि tempdb फाइलें एक ही ड्राइव पर हैं। डेटाबेस की .mdf फाइलें मैं मानती हूं कि ऐसा करने का कोई लाभ भी नहीं था।
पुनर्निर्माण स्क्रिप्ट को चलाते हुए मैंने देखा है कि मेरे पास बहुत सारे CXPACKET प्रतीक्षा प्रकार हैं। मुझे वास्तव में समझ नहीं आया कि ऐसा क्यों होगा या यदि यह एक समस्या है जिसे मुझे संबोधित करना चाहिए।
एक अंतिम बिंदु जो प्रासंगिक हो सकता है: डेटाबेस में डेटा के इस आयात के अलावा मेरा पूरा सर्वर वर्तमान में निष्क्रिय है। विचार करने या चिंता करने के लिए कोई अन्य उपयोगकर्ता गतिविधि नहीं है; मेरी एकमात्र चिंता डेटाबेस में डेटा को कम से कम समय में आयात करना है।
CXPACKET
वेट्स के बारे में : इंडेक्स खुद को स्कैन इंडेक्स (यहां तक कि इंडेक्स को फिर से बनाया जा रहा है ) स्कैन करता है, और वे स्कैन समानता का उपयोग कर सकते हैं। आपको उन इंतजारों के बारे में चिंतित नहीं होना चाहिए - समानता शायद मदद कर रही है।