Συμπτώματα
Όταν χρησιμοποιείτε το Microsoft SQL Server Management Studio (SSMS) για να εκτελέσετε ένα ερώτημα SQL το οποίο επιστρέφει μεγάλη ποσότητα δεδομένων, λαμβάνετε ένα μήνυμα σφάλματος που μοιάζει με το εξής:
Παρουσιάστηκε σφάλμα κατά την εκτέλεση της δέσμης. Το μήνυμα σφάλματος είναι: εξαίρεση του τύπου ' System. OutOfMemoryException ' που έχει εκπέσει
Αιτία
Αυτό το πρόβλημα παρουσιάζεται επειδή το SSMS δεν έχει αρκετή μνήμη για να εκχωρήσει για μεγάλα αποτελέσματα.Σημείωση Το SSMS είναι μια διαδικασία 32 bit. Επομένως, περιορίζεται σε 2 GB μνήμης. Το SSMS επιβάλλει ένα τεχνητό όριο στο μέγεθος του κειμένου που μπορεί να εμφανίζεται ανά πεδίο βάσης δεδομένων στο παράθυρο αποτελεσμάτων. Αυτό το όριο είναι 64 KB στη λειτουργία "πλέγμα" και 8 KB στη λειτουργία "κείμενο". Εάν το καθορισμένο αποτέλεσμα είναι πολύ μεγάλο, η μνήμη που απαιτείται για την εμφάνιση των αποτελεσμάτων του ερωτήματος μπορεί να ξεπεράσει το όριο των 2 GB της διεργασίας SSMS. Επομένως, ένα μεγάλο συνόλου αποτελεσμάτων μπορεί να προκαλέσει το σφάλμα που αναφέρεται στην ενότητα "Συμπτώματα".
Λύση
Για να επιλύσετε αυτό το ζήτημα, δοκιμάστε μία από τις ακόλουθες μεθόδους.
Μέθοδος 1: εξαγωγή των αποτελεσμάτων ως κείμενο
Ρυθμίστε τις παραμέτρους του παραθύρου ερωτήματος για να εξαγάγετε τα αποτελέσματα του ερωτήματος ως κείμενο. Ένα αποτέλεσμα κειμένου χρησιμοποιεί λιγότερη μνήμη από το πλέγμα και μπορεί να είναι αρκετό για να εμφανίσει τα αποτελέσματα του ερωτήματος. Για να κάνετε αυτήν την αλλαγή, ακολουθήστε τα παρακάτω βήματα:
-
Κάντε δεξί κλικ στο παράθυρο του ερωτήματος.
-
Κάντε κλικ στην επιλογή αποτελέσματα προς.
-
Κάντε κλικ στην επιλογή αποτελέσματα σε κείμενο.
Μέθοδος 2: έξοδος των αποτελεσμάτων σε αρχείο
Ρυθμίστε τις παραμέτρους του παραθύρου ερωτήματος για να εξαγάγετε τα αποτελέσματα του ερωτήματος σε ένα αρχείο. Ένα αρχείο εξόδου χρησιμοποιεί μια ελάχιστη ποσότητα μνήμης. Αυτό διατηρεί περισσότερη μνήμη για την αποθήκευση του συνόλου αποτελεσμάτων. Για να κάνετε αυτήν την αλλαγή, ακολουθήστε τα παρακάτω βήματα:
-
Κάντε δεξί κλικ στο παράθυρο του ερωτήματος.
-
Κάντε κλικ στην επιλογή αποτελέσματα προς.
-
Κάντε κλικ στην επιλογή αποτελέσματα σε αρχείο.
-
Εκτελέστε το ερώτημα και, στη συνέχεια, επιλέξτε τη θέση στην οποία θα αποθηκεύσετε το αρχείο αποτελεσμάτων.
Μέθοδος 3: χρήση του sqlcmd
Χρησιμοποιήστε το εργαλείο sqlcmd αντί για το SSMS για να εκτελέσετε τα ερωτήματα SQL. Αυτή η μέθοδος επιτρέπει την εκτέλεση ερωτημάτων χωρίς τους πόρους που απαιτούνται από το περιβάλλον εργασίας χρήστη του SSMS. Επιπλέον, μπορείτε να χρησιμοποιήσετε την έκδοση 64-bit του sqlcmd. exe για να αποφύγετε τον περιορισμό μνήμης που επηρεάζει τη διαδικασία SSMS-bit του 32.
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα πρόβλημα στα προϊόντα της Microsoft που παρατίθενται στην ενότητα "ισχύει για".