Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makale, büyük miktarda veri döndüren bir SQL sorgusu çalıştırmak için SQL Server Management Studio (SSMS) kullandığınızda oluşan sorunu çözmenize yardımcı olur.
Özgün ürün sürümü: SQL Server
Özgün KB numarası: 2874903
Belirtiler
Çok büyük miktarda veri döndüren bir SQL sorgusu çalıştırmak için SSMS kullandığınızda, aşağıdakine benzer bir hata iletisi alırsınız:
Toplu işlem yürütülürken bir hata oluştu. Hata mesajı şu şekildedir: 'System.OutOfMemoryException' türünde bir özel durum oluşturuldu
Neden
Bu sorun, SSMS'nin büyük sonuçlar için ayıracak bellek yetersiz olduğundan oluşur. SSMS 32 bitlik bir işlemdir. Bu nedenle, 2 GB kullanıcı modu sanal belleği ile sınırlıdır. SSMS, sonuç penceresinde veritabanı alanı başına ne kadar metin görüntülenebileceğine ilişkin yapay bir sınır uygular. Bu sınır Kılavuz modunda 64 KB ve Metin modunda 8 KB'tır. Sonuç kümesi çok büyükse, sorgu sonuçlarını görüntülemek için gereken bellek SSMS işleminin 2 GB sınırını aşabilir. Bu nedenle, büyük bir sonuç kümesi Belirtiler bölümünde belirtilen hataya neden olabilir.
Geçici çözüm
Bu sorunu geçici olarak çözmek için aşağıdaki yöntemlerden birini deneyin.
Yöntem 1: Sonuçları metin olarak çıktı olarak verir
Sorgu sonuçlarını metin olarak çıkarmak için sorgu penceresini yapılandırın. Metin çıktısı kılavuzdan daha az bellek kullanır ve sorgu sonuçlarını görüntülemek yeterli olabilir. Bu değişikliği yapmak için şu adımları izleyin:
- Sorgu penceresine sağ tıklayın.
- Sonuçlar'a Git.
- Metne Sonuçlar'ı seçin.
Yöntem 2: Sonuçları bir dosyaya verme
Sorgu sonuçlarını bir dosyaya çıkarmak için sorgu penceresini yapılandırın. Dosya çıkışı en az miktarda bellek kullanır. Bu, sonuç kümesini depolamak için daha fazla bellek ayırır. Bu değişikliği yapmak için şu adımları izleyin:
- Sorgu penceresine sağ tıklayın.
- Sonuçlar'ı seçin.
- Sonuçları Dosyaya seçin.
- Sorguyu çalıştırın ve sonuç dosyasının kaydedildiği konumu seçin.
Yöntem 3: sqlcmd kullanma
SQL sorgularını çalıştırmak için SSMS yerine sqlcmd Yardımcı Programı'nı kullanın. Bu yöntem, sorguların SSMS kullanıcı arabiriminin gerektirdiği kaynaklar olmadan çalıştırılmasını sağlar. Ayrıca, 32 bit SSMS işlemini etkileyen bellek kısıtlamasını önlemek için Sqlcmd.exe 64 bit sürümünü kullanabilirsiniz.