कुछ परिस्थितियों में, INSERT INTO <tablename> (WITH TABLOCK)न्यूनतम लॉगिंग के कारण वसीयत करना तेज हो जाएगा। उन परिस्थितियों में BULK_LOGGEDरिकवरी मॉडल में डेटाबेस शामिल है ।
वहाँ का उपयोग करने के किसी भी अन्य संभावित प्रदर्शन लाभ है WITH TABLOCKएक पर INSERTएक खाली टेबल पर जब डेटाबेस ( tempdb ) उपयोग कर रहा है SIMPLEवसूली मॉडल?
मैं SQL सर्वर 2012 मानक संस्करण के साथ काम कर रहा हूँ।
मेरा उपयोग मामला बनाने और फिर तुरंत एक संग्रहीत प्रक्रिया के भीतर एक अस्थायी तालिका को पॉप्युलेट करने के लिए है INSERT...SELECTजिसमें एक , कुछ मिलियन पंक्तियों के रूप में हो सकता है। मैं उस तरह के टेम्पर्ड एब्यूज से बचने की कोशिश करता हूं , लेकिन कभी-कभी इसकी जरूरत होती है।
मैं एक केस बनाने की कोशिश कर रहा हूं TABLOCK। ऐसा लगता नहीं है कि यह कुछ भी चोट लगी है, और एक लाभ हो सकता है। मैं यह पता लगाने की कोशिश कर रहा हूं कि क्या हमारे कोड बेस में कहीं भी इसे जोड़ने के लिए पर्याप्त संभावित लाभ है, जहां मुझे यकीन है कि कोई अन्य प्रक्रिया नहीं है जो तालिका में लिखना चाहती है।
मैं आमतौर पर एक नई निर्मित स्थानीय अस्थायी तालिका में एक संकुल पीके के साथ सम्मिलित करता हूं, लेकिन कभी-कभी एक ढेर का उपयोग करता हूं।