濮阳杆衣贸易有限公司

主頁 > 知識庫 > SQL Server出現(xiàn)System.OutOfMemoryException異常的解決方法

SQL Server出現(xiàn)System.OutOfMemoryException異常的解決方法

熱門標簽:廣州人工電銷機器人費用 400外呼系統(tǒng)合法 電銷機器人被曝光 怎樣把地圖標注導入公司地址 真人語音電銷機器人 寧波人工外呼系統(tǒng)有效果嗎 地圖標注一個圓圈怎么用 洛陽外呼系統(tǒng)平臺 如何在地圖標注自己店鋪

今天在用SQL Server 2008執(zhí)行一個SQL腳本文件時,老是出現(xiàn)引發(fā)類型為“System.OutOfMemoryException”的異常錯誤,腳本明明是從SQL Server 2008導出的,應該不會出錯,研究了好久問題才得以解決。

出現(xiàn)這個錯誤的主要原因是由于SQL腳本文件太大,估計超過了100M了,解決方法就是把腳本文件分成幾個腳本文件,分別去執(zhí)行即可。


來自微軟官方的解決方案:

原因:

因為計算機沒有足夠的內存來完成請求的操作,則會出現(xiàn)此問題。

在 SQL Server 2000 Reporting Services 的限制會導致內存綁定的處理報告的某些部分。例如,查詢結果處理和對象模型呈現(xiàn)受限于內存。

計算機沒有足夠的內存來完成請求的操作在一個或多個下列條件都為真:

1.一個報告是太大或太復雜。
2.其他正在運行的進程的費用是非常高的。
3.計算機的物理內存是太小。

處理報表,則分兩個階段。兩個階段是執(zhí)行和呈現(xiàn)。在執(zhí)行階段期間或在呈現(xiàn)階段,會出現(xiàn)此問題。

如果在執(zhí)行階段中,會出現(xiàn)此問題,此問題很可能是因為太多的內存消耗在查詢結果中返回的數據。此外,下列因素會影響內存消耗,在執(zhí)行階段:

1.分組
2.篩選
3.聚合
4.排序
5.自定義代碼

如果在呈現(xiàn)階段中會發(fā)生此問題,原因被與該報表顯示何種信息以及報表顯示信息的方式。

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

解決方案:

若要解決此問題,請使用下列方法之一。

方法 1

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

注意如果您超過 2 千兆字節(jié) (GB) 的內存可以啟用該 / 3gb 切換在 Boot.ini 文件中為更好的性能。 有關如何在 SQL Server 中使用了 / 3gb 開關的詳細信息單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
274750如何配置 SQL Server 使用 2 GB 以上物理內存

方法 2

將報告計劃安排為在內存限制時較低的非高峰時段運行。

方法 3

調整所在進行相應設置。

注意:呈現(xiàn)時通過報告服務 Web 服務的報告,該報告服務 Web 服務從 Machine.config 文件中獲得所在。但是,計劃的報告呈現(xiàn)由報表服務器的 Windows 服務。報表服務器的 Windows 服務獲取從 RSReportServer.config 文件的所在。

有關所在的詳細信息,請參閱"更多信息"一節(jié)。

方法 4

升級到 64 位版本的 Microsoft SQL Server 2005年報告服務。

方法 5

重新設計該報表。若要執(zhí)行此操作,請使用下列方法之一。

方法 A

重新設計報表查詢。通過重新設計報表查詢,通過以下方法,可以減少內存消耗:
1.報告查詢中返回更少的數據。
2.在報告查詢的 WHERE 子句中使用的一個更好的限制。
3.移動到數據源的復雜的聚合。

方法 B

將報表導出為其他格式。通過使用不同的格式來顯示報表,您可以減少內存占用。下表列出了幾個按順序從大多數內存消耗到最低的內存消耗的導出格式。

復制代碼 代碼如下:
格式    說明
Microsoft Excel  呈現(xiàn)在 Excel 中的報表
(TIFF) 圖像   將報表呈現(xiàn)為靜態(tài)圖像的面向頁的格式
PDF     呈現(xiàn)報表采用可移植文檔格式 (PDF)
HTML    呈現(xiàn)到瀏覽器在 HTML 報表
CSV     呈現(xiàn)報表以逗號分隔的格式 ;在與 CSV 文件格式關聯(lián)的查看工具中打開報表
XML     呈現(xiàn)報表的 XML ;在瀏覽器中打開報表

注意:如果沒有應用 XSLT 轉換,這種格式將消耗比 CSV 格式所消耗的內存更少。

方法 C

簡化報表設計。可以通過以下方式簡化報表設計減少內存消耗:
1.在報告中包含更少的數據區(qū)域或控件。
2.鉆取報表用于顯示詳細信息。
此外,如果報告的目的是只是數據的集合,可用于其他 Microsoft 產品更好的性能。例如,您可以使用數據轉換服務 (DTS) 或 Microsoft SQL Server 2005年集成服務。

示例

下面的示例演示了如何解決此問題。請考慮下面的示例:

1.以 PDF 格式,并以 Excel 格式,無法呈現(xiàn)在報表管理器返回 160 頁的報告。當使用 8.5 × 11 英寸頁面尺寸時,報表可能遠遠超過 250 頁。
2.報表的數據源返回報表服務器 500 兆字節(jié) (MB) 的數據。通常情況下,SQL Server 2000年報表服務要求數據集所使用的內存量的兩到三倍。因此,SQL Server 2000年報告服務需要幾乎 1.5 GB 的內存來呈現(xiàn)該報表。

若要解決此問題,在此示例中,重新設計報表,以顯示該報表僅為有限的一組篩選器值的匯總數據。此外,請確保聚合發(fā)生在報告數據中提取數據庫查詢和聚合中的報告本身不是。這些方法有助于大大減少到報表服務器返回的數據量。因此,成功地并更快地呈現(xiàn)報表。

您可能感興趣的文章:
  • 解決SQL SERVER數據庫備份時出現(xiàn)“操作系統(tǒng)錯誤5(拒絕訪問)。BACKUP DATABASE 正在異常終止?!卞e誤的解決辦法
  • SQL Server自定義異常raiserror使用示例
  • SQLServer 連接異常與解決方法小結
  • SQLserver2000 企業(yè)版 出現(xiàn)"進程51發(fā)生了嚴重的異常"錯誤的處理方法
  • SQL Server 2005 中使用 Try Catch 處理異常
  • SqlServer異常處理常用步驟
  • SQL Server異常代碼處理的深入講解

標簽:咸寧 珠海 煙臺 東營 石家莊 南昌 北海 晉中

巨人網絡通訊聲明:本文標題《SQL Server出現(xiàn)System.OutOfMemoryException異常的解決方法》,本文關鍵詞  SQL,Server,出現(xiàn),System.OutOfMemoryException,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQL Server出現(xiàn)System.OutOfMemoryException異常的解決方法》相關的同類信息!
  • 本頁收集關于SQL Server出現(xiàn)System.OutOfMemoryException異常的解決方法的相關信息資訊供網民參考!
  • 推薦文章
    松溪县| 塔河县| 志丹县| 两当县| 镇赉县| 土默特右旗| 锡林浩特市| 黄陵县| 镇远县| 阳朔县| 高邑县| 衡阳县| 汕尾市| 哈尔滨市| 买车| 离岛区| 陈巴尔虎旗| 泸西县| 安陆市| 顺义区| 六安市| 理塘县| 南澳县| 霞浦县| 广宗县| 云南省| 那坡县| 霞浦县| 朝阳区| 柘城县| 合山市| 安图县| 昌宁县| 富裕县| 博客| 益阳市| 安阳县| 徐州市| 库车县| 遂宁市| 凤冈县|