2011-01-11 9 views
5

Odnośnie Pożegnanie z wyjątkiem pamięci w SQL Server 2008:Z wyjątkiem pamięci w SQL 2008

Kiedy wykonać dużą zapytanie które wstawia tysiące wierszy w tabeli,

Wyjątkiem, który występuje podczas wykonywania tego jest "System.OutOfMemoryException".

+0

Potrzebujesz więcej informacji. Co robisz, co powoduje problem? –

+1

'System.OutOfMemoryException' jest wyjątkiem' .NET', co oznacza, że ​​prawdopodobnie jest on wysyłany przez klienta (SSMS). Spróbuj podzielić plik na mniejsze porcje lub użyj innego narzędzia do wykonania zapytania. –

Odpowiedz

4

Według naprawdę bardzo dobry artykuł bazy wiedzy Microsoft (linked here) to spowodowane przez kwerendę, która wymaga więcej pamięci RAM przydzielonej niż jest dostępna.

Innymi słowy, trzeba więcej pamięci RAM, albo trzeba przeprojektować zapytanie zerwać proces na mniejsze kawałki.

Jest to podsumowanie całego wyrobu. Oryginał zawiera linki do treści, aby dokładniej wyjaśnić proces, w którym należy postępować zgodnie z ich sugestiami.

Blockquote: Artykuł MS Knowledge Base 909678

może pojawić się "System.OutOfMemoryException" komunikat o błędzie podczas korzystania z SQL Server Reporting Services

Aby rozwiązać ten problem, zastosuj jedną z następujących metod.

Metoda 1

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

Uwaga Jeśli masz więcej niż 2 gigabajty (GB) pamięci, można włączyć przełącznik/3GB w pliku Boot.ini dla lepszej wydajności. Aby uzyskać więcej informacji o korzystaniu z przełącznika/3GB w programie SQL Server.

Metoda raporty 2

harmonogramu uruchomienia w off-godzin, jeśli ograniczenia pamięci są niższe.

Metoda 3

Regulacja memoryLimit odpowiednio ustawienia.

Uwaga: Podczas renderowania raportu przez usługę Web Reporting Services, usługi Web Reporting Services uzyskuje memoryLimit ustawienie z pliku Machine.config. Jednak zaplanowany raport jest renderowany przez usługę Windows Server Report Server. Usługa Zgłoś Windows Server uzyskuje memoryLimit ustawienie z pliku RSReportServer.config.

Metoda 4

Upgrade do wersji 64-bitowej wersji programu Microsoft SQL Server 2005 Reporting Services w celu umożliwienia Reporting Services do wykorzystania większej ilości pamięci.

Metoda 5

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

Przeprojektowanie zapytań raportu. Można zmniejszyć zużycie pamięci przez przeprojektowanie zapytania raportu w następujących sposobów:

  • Powrót mniej danych w kwerendach raportów.
  • Użyj lepszego ograniczenia klauzuli WHERE kwerend raportu.
  • Przenieś złożone agregacje do źródła danych.

Metoda B

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

Metoda C

uprościć projektowanie raportu.

Można zmniejszyć zużycie pamięci przez uproszczenie projektu raportu w jeden z następujących sposobów:

  • zawierać mniej danych regionów lub kontroluje w raporcie.
  • Użyj raportu z drążenia wszerz, aby wyświetlić szczegóły.
+1

to powinien być komentarz, a nie odpowiedź – JonH

+0

Dzięki @JonH. Jestem nowy w tym wszystkim. :) – zenbike

+2

-1 Nieistotne. Wykonują kwerendę wstawiania. nic wspólnego z usługami raportowania. –

-1

To jest problem z plikiem dziennika.

Tak więc za pomocą instrukcji inser into użyj instrukcji select into.