मेरे पास 123MB sql फ़ाइल है जिसे मुझे अपने स्थानीय पीसी में निष्पादित करने की आवश्यकता है। लेकिन मुझे मिल रहा है
Cannot execute script: Insufficient memory to continue the execution of the program
इस समस्या को कैसे हल करें?
मेरे पास 123MB sql फ़ाइल है जिसे मुझे अपने स्थानीय पीसी में निष्पादित करने की आवश्यकता है। लेकिन मुझे मिल रहा है
Cannot execute script: Insufficient memory to continue the execution of the program
इस समस्या को कैसे हल करें?
जवाबों:
कमांड-लाइन टूल SQLCMD का उपयोग करें जो मेमोरी पर बहुत अधिक दुबला है। यह उतना ही सरल है:
SQLCMD -d <database-name> -i filename.sql
आपको अपने SQL सर्वर इंस्टेंस तक पहुँचने के लिए या डेटाबेस तक पहुँचने के लिए वैध क्रेडेंशियल्स की आवश्यकता होती है
यहां से ले गए ।
-e
विश्वसनीय कनेक्शन के लिए
यह आपकी मदद कर सकता है! कृपया नीचे दिए गए चरणों को देखें।
sqlcmd -S सर्वर-नाम -d डेटाबेस-नाम -i script.sql
आप सर्वर प्रॉपर्टीज में न्यूनतम मेमोरी प्रति क्वेरी मान भी बढ़ा सकते हैं। इस सेटिंग को संपादित करने के लिए, सर्वर नाम पर राइट क्लिक करें और गुण> मेमोरी टैब चुनें।
मुझे SSMS 2012 में 30MB SQL स्क्रिप्ट निष्पादित करने की कोशिश में इस त्रुटि का सामना करना पड़ा। 1024MB से 2048MB तक मान बढ़ाने के बाद मैं स्क्रिप्ट को चलाने में सक्षम था।
(यह वही उत्तर है जो मैंने यहां दिया है )
Windows प्रमाणीकरण के लिए इस sql cmd का उपयोग करें
SQLCMD -S TestSQLServer\SQLEXPRESS -d AdventureWorks2018 -i "d:\document\sql document\script.sql"
नोट: यदि sql फ़ाइल पथ में कोई स्थान है तो "(उद्धरण चिह्नों) का उपयोग करें"
SQL सर्वर प्रमाणीकरण के लिए इस sql cmd का उपयोग करें
SQLCMD -S TestSQLServer\SQLEXPRESS -U sa -P sasa -d AdventureWorks2018 -i "d:\document\sql document\script.sql"
-S TestSQLServer \ SQLEXPRESS: यहां SQL सर्वर नाम निर्दिष्ट करें
-U sa: उपयोगकर्ता नाम (SQL सर्वर प्रमाणीकरण के मामले में)
-सासा: पासवर्ड (SQL सर्वर प्रमाणीकरण के मामले में)
-d AdventureWorks2018: डेटाबेस का नाम यहां आता है
-i "d: \ document \ sql document \ script.sql": SQLFile का फ़ाइल पथ
यदि मैं आपकी समस्या को सही ढंग से समझता हूं, तो आप xyz.sql - डेटाबेस + स्कीमा को पुनर्स्थापित करने का प्रयास कर रहे हैं। आप इस कमांड को आज़मा सकते हैं जो मेरे लिए काम करता है:
SQLCMD -U sa -i xyz.sql
मेरा डेटाबेस 500mb से बड़ा था, मैंने तब निम्नलिखित का उपयोग किया
C:\Windows>sqlcmd -S SERVERNAME -U USERNAME -P PASSWORD -d DATABASE -i C:\FILE.sql
इसने एसपी सहित सभी चीजों को लोड किया
* NB: प्रशासक के रूप में cmd चलाएँ
कभी-कभी, स्क्रिप्ट और डेटा के भारी आकार के कारण, हम इस प्रकार की त्रुटि का सामना करते हैं। सर्वर को निष्पादित करने और परिणाम देने के लिए पर्याप्त मेमोरी की आवश्यकता होती है। हम बस प्रति क्वेरी में मेमोरी का आकार बढ़ा सकते हैं।
आपको बस sql सर्वर प्रॉपर्टीज> मेमोरी टैब (लेफ्ट साइड) में जाना होगा> अब आप जो अधिकतम मेमोरी लिमिट जोड़ना चाहते हैं, उसे सेट करें।
इसके अलावा, शीर्ष पर एक विकल्प है, "टेक्स्ट को परिणाम", जो "मेमोरी टू ग्रिड" के विकल्प की तुलना में कम मेमोरी का उपभोग करता है, हम कम मेमोरी निष्पादन के लिए रिजल्ट टू टेक्स्ट भी जा सकते हैं।
नीचे स्क्रिप्ट पूरी तरह से काम करती है:
sqlcmd -s Server_name -d Database_name -E -i c:\Temp\Recovery_script.sql -x
लक्षण:
Sqlcmd उपयोगिता के साथ एक रिकवरी स्क्रिप्ट निष्पादित करते समय, 'Sqlcmd: त्रुटि:' फ़ाइल_name.sql 'में कमांड' X 'के पास लाइन XYZ पर सिंटैक्स त्रुटि।' त्रुटि सामने आई है।
कारण:
यह एक sqlcmd उपयोगिता सीमा है। यदि SQL स्क्रिप्ट में किसी भी रूप में डॉलर का चिह्न ($) है, तो उपयोगिता स्क्रिप्ट को ठीक से निष्पादित करने में असमर्थ है, क्योंकि यह डिफ़ॉल्ट रूप से सभी चर को स्वचालित रूप से प्रतिस्थापित कर रहा है।
संकल्प:
किसी भी रूप में डॉलर ($) का संकेत देने वाली स्क्रिप्ट को निष्पादित करने के लिए, कमांड लाइन में "-x" पैरामीटर जोड़ना आवश्यक है।
जैसे
मूल: sqlcmd -s Server_name -d Database_name -E -ic: \ Temp \ Recovery_script.sll
फिक्स्ड: sqlcmd -s Server_name -d Database_name -E -ic: \ Temp \ Recovery_script.sql -x
sqlcmd -S mamxxxxxmu \ sqlserverr -U sa -P X1123 -d QLDB -i D: \ qldbscript.sql
व्यवस्थापक के रूप में चलाने में ओपन कमांड प्रॉम्प्ट
कमांड के ऊपर दर्ज करें
"mamxxxxxmu" कंप्यूटर का नाम है "sqlserverr" सर्वर नाम है "sa" सर्वर का उपयोगकर्ता नाम है "X1123" सर्वर का पासवर्ड है "QLDB" डेटाबेस का नाम है "D: \ qldbscript.sql डेटाबेस में निष्पादित करने के लिए sql स्क्रिप्ट फ़ाइल है