बड़ी तालिकाओं में शामिल हों - लेनदेन लॉग सक्रिय लेनदेन के कारण पूर्ण - एसक्यूएल, tsql

मेरे पास 60 मिलियन, रेस के साथ दो बड़ी टेबल हैं। 10 मिलियन रिकॉर्ड मैं दोनों तालिकाओं को एक साथ जोड़ना चाहता हूं हालांकि प्रक्रिया 3 घंटे तक चलती है तो त्रुटि संदेश के साथ वापस आती है:

डेटाबेस के लिए लेनदेन लॉग "active_transaction" के कारण पूर्ण है

  • Autogrowth असीमित है और मैंने डीबी रिकवरी को सरल पर सेट किया है
  • लॉग ड्राइव का आकार 50 जीबी है

मै इस्तेमाल कर रहा हूँ SQL server 2008 r2

The SQL क्वेरी का उपयोग कर रहा हूं मैं है:

Select * into betdaq.[dbo].temp3  from
(Select XXXXX, XXXXX, XXXXX, XXXXX, XXXXX
from XXX.[dbo].temp1 inner join XXX.[dbo].temp2
on temp1.Date = temp2.[Date] and temp1.cloth = temp2.Cloth nd temp1.Time = temp1.Time) a

उत्तर:

उत्तर № 1 के लिए 1

कोई एकल आदेश एक हस्तांतरण है और हस्तांतरण के अंत तक कमिट नहीं है ।
तो आप हस्तांतरण लॉग भर रहे हैं ।

आप एक समय में १००,००० पंक्तियों की तरह पाश और डालने की आवश्यकता के लिए जा रहे हैं

इस बस के साथ शुरू करें परीक्षा का पहला १००,०००
तो एक कर्सर के साथ पाश जोड़ने की आवश्यकता होगी

create table betdaq.[dbo].temp3  ...
insert into betdaq.[dbo].temp3  (a,b,c,d,e)
Select top 100000 with ties XXXXX, XXXXX, XXXXX, XXXXX, XXXXX
from XXX.[dbo].temp1
join XXX.[dbo].temp2
on temp1.Date = temp2.[Date]
and temp1.Time = temp1.Time
and temp1.cloth = temp2.Cloth
order by temp1.Date, temp1.Time

और क्यों? यह डेटा का एक बहुत है । क्या आप किसी दृश्य या CTE का उपयोग कर सकते हैं?
यदि वे जोड़ने के कॉलम अनुक्रमित रहे है एक दृश्य बहुत ही कुशल हो जाएगा ।


जवाब के लिए 0 № 2

लेनदेन लॉग पूर्ण हो सकता है भले ही डेटाबेस सरल वसूली मॉडल में है, भले ही में चयन एक ंयूनतम लॉग इन आपरेशन है, लॉग अंय समानांतर में चल रहे transactiosn के कारण पूर्ण के रूप में अच्छी तरह से हो सकता है ।

मैं प्रश्नों के नीचे का उपयोग करें लेनदेन द्वारा tlog अंतरिक्ष उपयोग की जांच करते समय क्वेरी runnnig है

select * from sys.dm_db_log_space_usage

select * from sys.dm_tran_database_transactions
select * from sys.dm_tran_active_transactions
select * from sys.dm_tran_current_transaction

इसके अलावा क्वेरी नीचे एसक्यूएल पाठ भी जांच करने के लिए इस्तेमाल किया जा सकता

https://gallery.technet.microsoft.com/scriptcenter/Transaction-Log-Usage-By-e62ba57d


संबंधित सवाल
सबसे लोकप्रिय