Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

तालिका परिवर्तन के लिए SQL सर्वर प्रदर्शन स्तंभ परिवर्तन डेटा प्रकार बदलता है

संयोग से, मुझे लगभग 3 घंटे पहले कुछ ऐसा ही करना था। तालिका 35 मीटर पंक्तियों की थी, यह काफी चौड़ी है, और ऐसा करने में हमेशा के लिए समय लग रहा था:

alter table myTable add myNewColumn int not null default 0;

यहां बताया गया है कि मैं किसके साथ जा रहा हूं:

alter table myTable add myNewColumn int null;

while 1=1
begin
    update top (100000) myTable
    set
        myNewColumn = 0
    where
        myNewColumn is null;

    if @@ROWCOUNT = 0 break;
end

alter table myTable alter column myNewColumn int not null;
alter table myTable add constraint tw_def_myNewColumn default (0) for myNewColumn;

इस बार, alter table बयान लगभग तत्काल थे। अद्यतन बैचों को करने में लगभग 7-8 मिनट (धीमे सर्वर पर) लगे। मैं अनुमान लगा रहा हूं कि SQL सर्वर मूल्यों को पुनर्स्थापित करने के लिए मेरी मूल क्वेरी में पूर्ववत उत्पन्न कर रहा था, लेकिन मुझे इसकी शुरुआत की उम्मीद नहीं थी।

वैसे भी, आपके मामले में, शायद कुछ ऐसा ही मदद करेगा। आप एक नया बिगिंट कॉलम जोड़ने का प्रयास कर सकते हैं, बैचों में नया कॉलम अपडेट कर सकते हैं, फिर उस पर बाधाएं सेट कर सकते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक्सएमएलएनएस के साथ ओपनएक्सएमएल:डीटी

  2. एसक्यूएल में डेटाटाइम से तारीख पाने के लिए

  3. SQL सर्वर तालिका में पहचान कॉलम मान को कैसे रीसेट करें - SQL सर्वर / T-SQL ट्यूटोरियल भाग 43

  4. SQL सर्वर 2014 के लिए एक प्रोसेसर का चयन करना - भाग 2

  5. SQL सर्वर प्राथमिक कुंजी के बिना संकुल अनुक्रमणिका के साथ तालिका बना रहा है