Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Wyjątek braku pamięci w SQL 2008

Zgodnie z naprawdę niezłym artykułem z bazy wiedzy Microsoft (link tutaj) jest to spowodowane zapytaniem, które wymaga przydzielenia większej ilości pamięci RAM niż jest dostępne.

Innymi słowy, potrzebujesz więcej pamięci RAM lub musisz przeprojektować zapytanie, aby podzielić proces na mniejsze części.

To jest podsumowanie całego artykułu. Oryginał zawiera linki do treści, aby bardziej szczegółowo wyjaśnić proces, w którym należy postępować zgodnie z ich sugestiami.

Podczas korzystania z usług SQL Server Reporting Services może pojawić się komunikat o błędzie „System.OutOfMemoryException”

Aby rozwiązać ten problem, użyj jednej z następujących metod.

Metoda 1

Dodaj wystarczającą ilość pamięci fizycznej do komputera.

Uwaga Jeśli masz więcej niż 2 gigabajty (GB) pamięci, możesz włączyć przełącznik /3GB w pliku Boot.ini, aby uzyskać lepszą wydajność. Aby uzyskać więcej informacji o tym, jak używać przełącznika /3GB w SQL Server.

Metoda 2

Zaplanuj generowanie raportów poza godzinami pracy, gdy ograniczenia pamięci są mniejsze.

Metoda 3

Dostosuj odpowiednio ustawienie MemoryLimit.

Uwaga:Podczas renderowania raportu za pośrednictwem usługi sieci Web usług Reporting Services usługa sieci Web usług Reporting Services uzyskuje ustawienie MemoryLimit z pliku Machine.config. Jednak zaplanowany raport jest renderowany przez usługę Report Server Windows. Usługa serwera raportów systemu Windows uzyskuje ustawienie MemoryLimit z pliku RSReportServer.config.

Metoda 4

Uaktualnij do 64-bitowej wersji usług Microsoft SQL Server 2005 Reporting Services, aby umożliwić usługom raportowania wykorzystanie większej ilości pamięci.

Metoda 5

Przeprojektuj raport. Aby to zrobić, użyj jednej z następujących metod.

Przeprojektuj zapytania raportu.Zużycie pamięci można zmniejszyć, przeprojektowując zapytania raportu w następujący sposób:

  • Zwróć mniej danych w zapytaniach raportu.
  • Użyj lepszego ograniczenia klauzuli WHERE zapytań raportu.
  • Przenieś złożone agregacje do źródła danych.

Metoda B

Wyeksportuj raport do innego formatu. Możesz zmniejszyć zużycie pamięci, używając innego formatu do wyświetlania raportu.

Metoda C

Uprość projekt raportu.

Możesz zmniejszyć zużycie pamięci, upraszczając projekt raportu w następujący sposób:

  • Uwzględnij w raporcie mniej regionów danych lub kontrolek.
  • Użyj raportu szczegółowego, aby wyświetlić szczegóły.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 9 ważnych zadań, za które odpowiedzialni są administratorzy baz danych

  2. Czy kolumna klucza podstawowego Sequential Guid powinna być indeksem klastrowym?

  3. Lista formatów dat dostępnych z CONVERT() w SQL Server

  4. Jak znaleźć zduplikowane rekordy za pomocą klauzuli Group by i Having w SQL Server — SQL Server / TSQL Tutorial, część 132

  5. Czy muszę liczyć transakcje przed wycofaniem jednej w bloku catch w T-SQL?