मैं लाखों पंक्ति पंक्ति से लगभग 9 0% पंक्तियां हटाना चाहता हूं। इसे तेजी से बनाने के लिए मैं कुछ भी कर सकता हूं? जैसे अगर मैं सरल रिकवरी मोड चालू करता हूं तो यह मदद करेगा?एक बड़ी तालिका (एसक्यूएल सर्वर) से बहुत सारे डेटा का तेजी से DELETE कैसे करें
उत्तर
उन पंक्तियों की प्रतिलिपि बनाएँ जिन्हें आप select into का उपयोग करके अस्थायी तालिका में हटाना नहीं चाहते हैं, और फिर truncate हटाए जाने के बजाय तालिका को हटाएं। पंक्तियों को पुरानी तालिका में वापस कॉपी करें। पहले drop contraints को याद रखें।
यदि आपके पास डेटा कॉलर के बाद पहचान कॉलम हैं, तो तालिका का शोध करने के लिए ऐसा कुछ उपयोग करें।
declare @seed int
select @seed = max(identity_col)+1 from tableName
DBCC CHECKIDENT (orders, table_name, @seed)
यह देखते हुए कि आप पंक्तियों के 90% को नष्ट करना चाहते हैं, यह सबसे तेजी से हुए 10% से पंक्तियों आप एक नया तालिका में रखना चाहते हैं जांच का चयन हो सकता है।
आप एक और मेज पर आराम कॉपी नहीं कर सकते, तो काटना और वापस कॉपी ...
... सूचकांक छोड़ने केवल एक चीज आप बुद्धिमान प्रोग्रामिंग कर सकते हैं के बारे में है। इस मामले में सूचकांक छोड़ना और उन्हें पुनर्निर्माण करने में मदद मिल सकती है।
... या डेटा के लिए अधिक तेज़ डिस्क उपप्रणाली प्राप्त करें।
रिकवरी मोड मदद नहीं करेगा - वसूली मोड का कहना है कि लॉग (अंतर्निहित हो सकता है) के तुरंत बाद लॉग हटाया जा सकता है, लेकिन इसमें कुछ भी नहीं है जो लॉग प्रविष्टियों को writte से बचाता है।
IsDeleted (BIT)
ध्वज जोड़ें, उस 90% के लिए 1 सेट करें, और अपनी तालिका पर एक दृश्य बनाएं जो केवल IsDeleted=0
के साथ पंक्तियां दिखाता है।
हटाना हमेशा एक है) संसाधन-गहन ऑपरेशन, और बी) उत्तरदायित्व की किसी भी संभावना को नष्ट कर देता है - यदि संभव हो तो मैं इसे टालने का प्रयास करूंगा, दोनों कारणों (प्रदर्शन और डेटा विनाश) के लिए। इसके बजाए "सॉफ्ट डिलीट" दृष्टिकोण का प्रयोग करें।
- 1. मैं बड़ी एसक्यूएल सर्वर तालिका
- 2. बहुत छोटे आवेषणों में डेटाबेस में बहुत सारे डेटा डालें
- 3. SQL सर्वर धीमी बड़ी तालिका से चुनें
- 4. बड़ी तालिका से डुप्लिकेट हटाना
- 5. एसक्यूएल सर्वर 2008 में एक तालिका का डेटा देखें
- 6. एंड्रॉइड डील बहुत सारे इरादे से
- 7. एसक्यूएल सर्वर कॉलम से पहचान कैसे छोड़ें
- 8. jQuery - एक बहुत बड़ी मेज
- 9. mysql बहुत सारे कॉलम?
- 10. एसक्यूएल सर्वर - स्टेजिंग टेबल से डेटा कॉपी करें
- 11. django विदेशीकी फ़ील्ड से बहुत सारे प्रश्न
- 12. धागा 100% सीपीयू बहुत तेजी से
- 13. बहुत बड़ी पोस्टग्रेएसक्यूएल डेटाबेस तालिका को कुशलतापूर्वक
- 14. तेजी से स्थानीय डेटाबेस
- 15. बहुत सारे डेटा के लिए mysql अनुकूलन
- 16. एसक्यूएल सर्वर 2005 से एक्सएमएल डेटा कैसे प्राप्त करें?
- 17. WAMP सर्वर। MySQL में बहुत बड़ी डेटा निर्देशिका?
- 18. एसक्यूएल सर्वर प्रबंधन स्टूडियो से स्कीमा या डेटा संपादित करें
- 19. SQL डेटा कॉलम डेटा प्रकार बहुत सारे डेटा
- 20. पायथन: एक बड़ी डीबीएफ (xbase) फ़ाइल में तेजी से पूछताछ
- 21. एसक्यूएल सर्वर: तालिका
- 22. एसक्यूएल सर्वर से डेस्कटॉप एप्लिकेशन तक डेटा पुश करें
- 23. एक बड़ी django तालिका
- 24. मेरा एसक्यूएल से एसक्यूएल सर्वर
- 25. एक बहुत बड़ी फ़ाइल
- 26. सीक्वेल बहुत सारे कॉलम का चयन
- 27. सर्वर के बीच बड़े डेटा को तेजी से स्थानांतरित करना
- 28. एसक्यूएल सर्वर 'में' या 'या' जो सबसे तेजी से
- 29. एसक्यूएल सर्वर - तालिका मेटाडाटा
- 30. ओपनसीवी फ्लेकर बहुत सारे आउटलेटर्स
अच्छा! मेरे पास पहचान कॉलम हैं इसलिए उन्हें इससे निपटना होगा, लेकिन यह ठीक है। – Rory
+1 - यह कम से कम 2005+ में कम से कम लॉग इन है (पूर्व संस्करणों के बारे में निश्चित नहीं है) तो यह बहुत तेज़ होना चाहिए। सूचकांक पुनर्निर्माण के लिए आवश्यक समय को ध्यान में रखें। – JNK