Симптоми

Когато използвате Microsoft SQL Server Management Studio (SSMS), за да изпълните SQL заявка, която връща голяма част от данните, получавате съобщение за грешка, подобно на следното:

Възникна грешка по време на изпълнение на партида. Съобщението за грешка е: изключение на типа "System. OutOfMemoryException" е хвърлена

Причина

Този проблем възниква, защото SSMS няма достатъчно памет, за да разпредели за големи резултати.Забележка SSMS е 32-битов процес. Следователно той е ограничен до 2 ГБ памет. SSMS налага изкуствени ограничения за това колко текст, който може да се показва в полето за база данни, в прозореца резултати. Това ограничение е 64 KB в режим "мрежа" и 8 KB в режим "текст". Ако наборът от резултати е твърде голям, паметта, която е необходима за показване на резултатите от заявката, може да надвиши ограничението от 2 ГБ за процеса на SSMS. Следователно голям набор от резултати може да доведе до грешката, спомената в секцията "симптоми".

Заобиколно решение

За да заобиколите този проблем, изпробвайте един от методите по-долу.

Метод 1: извеждане на резултатите като текст

Конфигуриране на прозореца на заявката за извеждане на резултатите от заявката като текст. Текстовата продукция използва по-малко памет от мрежата и може да се окаже достатъчна за показване на резултатите от заявката. За да направите тази промяна, изпълнете следните стъпки:

  1. Щракнете с десния бутон върху прозореца на заявката.

  2. Щракнете върху резултати.

  3. Щракнете върху резултатите в текст.

Метод 2: извеждане на резултатите във файл

Конфигуриране на прозореца на заявката за извеждане на резултатите от заявката във файл. Изходния файл използва минимално количество памет. Това запазва повече памет за съхраняване на набора от резултати. За да направите тази промяна, изпълнете следните стъпки:

  1. Щракнете с десния бутон върху прозореца на заявката.

  2. Щракнете върху резултати.

  3. Щракнете върху резултати във файл.

  4. Изпълнете заявката и след това изберете местоположението, където да запишете файла с резултати.

Метод 3: използване на SQLCMD

Използвайте инструмента SQLCMD вместо SSMS, за да изпълните SQL заявките. Този метод позволява заявките да се изпълняват без ресурсите, които са необходими за потребителския интерфейс на SSMS. Освен това можете да използвате 64-битова версия на SQLCMD. exe, за да избегнете ограничението за памет, което засяга процеса на SSMS на 32.

Състоянието

Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са посочени в секцията "важи за".

Нуждаете се от още помощ?

Разширете уменията си

Преглед на обучението >

Получавайте първи новите функции

Присъединете се към Microsoft приобщени >

Беше ли полезна тази информация?

Доколко сте доволни от качеството на езика?
Какво е повлияло на вашия потребителски опит?

Благодарим ви за обратната връзка!

×