फ़ाइलग्रुप में प्राथमिक कुंजी ले जाएँ (SQL Server 2012)


14

मैं एक नए फ़ाइल समूह के लिए एक प्राथमिक प्राथमिक कुंजी को कैसे स्थानांतरित कर सकता हूं? मुझे पहले से ही एक संभव "एल्गोरिथ्म" मिला है, लेकिन यह बहुत ही अयोग्य है:

  1. गैर-संकुलित अनुक्रमित ड्रॉप करें (उनका सहारा लेना और पुनर्निर्माण करना आवश्यक है)
  2. ड्रॉप क्लस्टर इंडेक्स (पूरे टेबल का सहारा लेने की आवश्यकता है)
  3. नया प्राथमिक कुंजी अवरोध (विशाल सॉर्ट ऑपरेशन) बनाएँ
  4. सभी गैर-क्लस्टर किए गए अनुक्रमित बनाएं (सॉर्ट करना और लिखना आवश्यक)

क्या कोई अधिक कुशल तरीका है? यह बहुत ही अयोग्य है और एक कमजोर सर्वर पर तालिका 50GB आकार में होने में लंबा समय लगेगा।

क्या इन सभी को छोड़ देने और नए फ़ाइल समूह पर पुनर्निर्माण करने का कोई तरीका नहीं है? इसके लिए किसी तरह के डेटा की जरूरत नहीं होगी।

जवाबों:


24
CREATE UNIQUE CLUSTERED INDEX Your_PK_Name
    ON YourTable(YourColumnList)
WITH (DROP_EXISTING =  ON )
ON [YourOtherFileGroup]

यह वाक्यविन्यास में उल्लेख नहीं होने के बावजूद तार्किक पीके संपत्ति को संरक्षित करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.