程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> SQL Server湧現System.OutOfMemoryException異常的處理辦法

SQL Server湧現System.OutOfMemoryException異常的處理辦法

編輯:MSSQL

SQL Server湧現System.OutOfMemoryException異常的處理辦法。本站提示廣大學習愛好者:(SQL Server湧現System.OutOfMemoryException異常的處理辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是SQL Server湧現System.OutOfMemoryException異常的處理辦法正文


明天在用SQL Server 2008履行一個SQL劇本文件時,總是湧現激發類型為“System.OutOfMemoryException”的異常毛病,劇本明明是從SQL Server 2008導出的,應當不會失足,研討了很久成績才得以處理。

湧現這個毛病的重要緣由是因為SQL劇本文件太年夜,估量跨越了100M了,處理辦法就是把劇本文件分紅幾個劇本文件,分離去履行便可。


來自微軟官方的處理計劃:

緣由:

由於盤算機沒有足夠的內存來完成要求的操作,則會湧現此成績。

在 SQL Server 2000 Reporting Services 的限制會招致內存綁定的處置申報的某些部門。例如,查詢成果處置和對象模子出現受限於內存。

盤算機沒有足夠的內存來完成要求的操作在一個或多個以下前提都為真:

1.一個申報是太年夜或太龐雜。
2.其他正在運轉的過程的費用長短常高的。
3.盤算機的物理內存是太小。

處置報表,則分兩個階段。兩個階段是履行和出現。在履行階段時代或在出現階段,會湧現此成績。

假如在履行階段中,會湧現此成績,此成績極可能是由於太多的內存消費在查詢成果中前往的數據。另外,以下身分會影響內存消費,在履行階段:

1.分組
2.挑選
3.聚合
4.排序
5.自界說代碼

假如在出現階段中會產生此成績,緣由被與該報表顯示何種信息和報表顯示信息的方法。

1.數目和類型的控件
2.這些控件之間的關系
3.格局設置
4.顯示的數據量

處理計劃:

若要處理此成績,請應用以下辦法之一。

辦法 1

向盤算機中添加足夠的物理內存。

留意假如您跨越 2 千兆字節 (GB) 的內存可以啟用該 / 3gb 切換在 Boot.ini 文件中為更好的機能。 有關若何在 SQL Server 中應用了 / 3gb 開關的具體信息單擊上面的文章編號,以檢查 Microsoft 常識庫中響應的文章:
274750若何設置裝備擺設 SQL Server 應用 2 GB 以上物理內存

辦法 2

將申報籌劃支配為在內存限制時較低的非岑嶺時段運轉。

辦法 3

調劑地點停止響應設置。

留意:出現時經由過程申報辦事 Web 辦事的申報,該申報辦事 Web 辦事從 Machine.config 文件中取得地點。然則,籌劃的申報出現由報表辦事器的 Windows 辦事。報表辦事器的 Windows 辦事獲得從 RSReportServer.config 文件的地點。

有關地點的具體信息,請參閱"更多信息"一節。

辦法 4

進級到 64 位版本的 Microsoft SQL Server 2005年申報辦事。

辦法 5

從新設計該報表。若要履行此操作,請應用以下辦法之一。

辦法 A

從新設計報表查詢。經由過程從新設計報表查詢,經由過程以下辦法,可以削減內存消費:
1.申報查詢中前往更少的數據。
2.在申報查詢的 WHERE 子句中應用的一個更好的限制。
3.挪動到數據源的龐雜的聚合。

辦法 B

將報表導出為其他格局。經由過程應用分歧的格局來顯示報表,您可以削減內存占用。下表列出了幾個按次序從年夜多半內存消費到最低的內存消費的導出格局。
格局    解釋
Microsoft Excel  出現在 Excel 中的報表
(TIFF) 圖象   將報表出現為靜態圖象的面向頁的格局
PDF     出現報表采取可移植文檔格局 (PDF)
HTML    出現到閱讀器在 HTML 報表
CSV     出現報表以逗號分隔的格局 ;在與 CSV 文件格局聯系關系的檢查對象中翻開報表
XML     出現報表的 XML ;在閱讀器中翻開報表
留意:假如沒有運用 XSLT 轉換,這類格局將消費比 CSV 格局所消費的內存更少。

辦法 C

簡化報表設計。可以經由過程以下方法簡化報表設計削減內存消費:
1.在申報中包括更少的數據區域或控件。
2.鑽取報表用於顯示具體信息。
另外,假如申報的目標是只是數據的聚集,可用於其他 Microsoft 產物更好的機能。例如,您可使用數據轉換辦事 (DTS) 或 Microsoft SQL Server 2005年集成辦事。

示例

上面的示例演示了若何處理此成績。請斟酌上面的示例:

1.以 PDF 格局,並以 Excel 格局,沒法出現在報表治理器前往 160 頁的申報。當應用 8.5 × 11 英寸頁面尺寸時,報表能夠遠遠跨越 250 頁。
2.報表的數據源前往報表辦事器 500 兆字節 (MB) 的數據。平日情形下,SQL Server 2000年報表辦事請求數據集所應用的內存量的兩到三倍。是以,SQL Server 2000年申報辦事須要簡直 1.5 GB 的內存來出現該報表。

若要處理此成績,在此示例中,從新設計報表,以顯示該報表僅為無限的一組挑選器值的匯總數據。另外,請確保聚合產生在申報數據中提取數據庫查詢和聚合中的申報自己不是。這些辦法有助於年夜年夜削減到報表辦事器前往的數據量。是以,勝利地並更快地出現報表。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved