Yerel bilgisayarımda yürütmem gereken 123MB sql dosyam var. Ama alıyorum
Cannot execute script: Insufficient memory to continue the execution of the program
bu sorunu nasıl çözeriz?
Yerel bilgisayarımda yürütmem gereken 123MB sql dosyam var. Ama alıyorum
Cannot execute script: Insufficient memory to continue the execution of the program
bu sorunu nasıl çözeriz?
Yanıtlar:
Bellek konusunda daha zayıf olan komut satırı aracı SQLCMD'yi kullanın. Bu kadar basit:
SQLCMD -d <database-name> -i filename.sql
SQL Server örneğinize erişmek ve hatta bir veritabanına erişmek için geçerli kimlik bilgilerine ihtiyacınız var
Alındığı burada .
-e
güvenilir bağlantı için ekle
Size yardımcı olabilir! Lütfen aşağıdaki adımlara bakın.
sqlcmd -S sunucu-adı -d veritabanı-adı -i script.sql
Ayrıca, sunucu özelliklerinde sorgu başına minimum bellek değerini artırabilirsiniz. Bu ayarı düzenlemek için sunucu adına sağ tıklayın ve Özellikler> Bellek sekmesini seçin.
SSMS 2012'de 30MB'lik bir SQL betiği çalıştırmaya çalışırken bu hatayla karşılaştım. Değeri 1024MB'den 2048MB'ye çıkardıktan sonra betiği çalıştırabildim.
(Bu, burada verdiğim yanıtın aynısı )
Windows Kimlik Doğrulaması için bu sql cmd'yi kullanın
SQLCMD -S TestSQLServer\SQLEXPRESS -d AdventureWorks2018 -i "d:\document\sql document\script.sql"
Not: Sql dosya yolunda boşluk varsa "(Tırnak işaretleri)" kullanın
SQL Server Kimlik Doğrulaması için bu sql cmd'yi kullanın
SQLCMD -S TestSQLServer\SQLEXPRESS -U sa -P sasa -d AdventureWorks2018 -i "d:\document\sql document\script.sql"
-S TestSQLServer \ SQLEXPRESS: Burada SQL Sunucu Adını belirtin
-U sa: Kullanıcı Adı (SQL Server Kimlik Doğrulaması durumunda)
-P sasa: Parola (SQL Server Kimlik Doğrulaması durumunda)
-d AdventureWorks2018: Veritabanı Adı buraya gel
-i "d: \ document \ sql document \ script.sql": SQLFile Dosya Yolu
Sorununuzu doğru anladıysam, xyz.sql - veritabanı + şemasını geri yüklemeye (işlem sql) çalışıyorsunuz. Benim için çalışan bu komutu deneyebilirsiniz:
SQLCMD -U sa -i xyz.sql
Veritabanım 500mb'den büyüktü, sonra aşağıdakileri kullandım
C:\Windows>sqlcmd -S SERVERNAME -U USERNAME -P PASSWORD -d DATABASE -i C:\FILE.sql
SP'ler dahil her şeyi yükledi
* Not: cmd'yi Yönetici olarak çalıştırın
Bazen, betiğin ve verilerin ağır boyutu nedeniyle bu tür hatalarla karşılaşıyoruz. Sunucunun yürütmek ve sonucu vermek için yeterli belleğe ihtiyacı vardır. Sorgu başına bellek boyutunu artırabiliriz.
Sql sunucu özellikleri> Bellek sekmesine (sol taraf) gitmeniz yeterlidir> Şimdi eklemek istediğiniz maksimum bellek sınırını ayarlayın.
Ayrıca, en üstte, "Sonuçlar ızgaraya" kıyasla daha az bellek tüketen "Sonuçlar metne" seçeneği vardır, daha az bellek yürütme için Sonuçtan Metne de gidebiliriz.
Aşağıdaki komut dosyası mükemmel çalışıyor:
sqlcmd -s Server_name -d Database_name -E -i c:\Temp\Recovery_script.sql -x
Belirtiler:
Sqlcmd yardımcı programıyla bir kurtarma betiği çalıştırılırken, 'Sqlcmd: Hata:' file_name.sql 'dosyasındaki' X 'komutunun yanında XYZ satırında sözdizimi hatası.' hata ile karşılaşıldı.
Sebep olmak:
Bu bir sqlcmd yardımcı program sınırlamasıdır. SQL komut dosyası herhangi bir biçimde dolar işareti ($) içeriyorsa, yardımcı program, varsayılan olarak tüm değişkenleri otomatik olarak değiştirdiği için komut dosyasını düzgün bir şekilde yürütemez.
Çözüm:
Herhangi bir formda dolar ($) işareti olan betiği çalıştırmak için komut satırına “-x” parametresi eklemek gerekir.
Örneğin
Orijinal: sqlcmd -s Sunucu_adı -d Veritabanı_adı -E -ic: \ Temp \ Recovery_script.sql
Düzeltildi: sqlcmd -s Sunucu_adı -d Veritabanı_adı -E -ic: \ Temp \ Recovery_script.sql -x
sqlcmd -S mamxxxxxmu \ sqlserverr -U sa -P x1123 -d QLDB -i D: \ qldbscript.sql
Yönetici olarak çalıştırmada komut istemini açın
yukarıdaki komutu girin
"mamxxxxxmu" bilgisayar adıdır "sqlserverr" sunucu adı "sa" sunucunun kullanıcı adı "x1123" sunucunun şifresidir "QLDB" veritabanı adı "D: \ qldbscript.sql" veritabanında çalıştırılacak sql komut dosyasıdır