[zt] MSSQL通過link導資料至oracle出錯:Server: Msg 7399, Level 16
在SQLServer中建了一個Link(name=XXLink)把相應資料匯入倒Oracle資料庫中,具體INSERT語句如下:
INSERT INTO openquery(XXLink,'SELECT col1,col2,col3 FROM TableInOracle')
SELECT col1,col2,col3 FROM TableInSQLServer
WHERE .......
以前一直可以的正常執行的,從近來某一天開始,就不能搞定,報如下錯誤
Server: Msg 7399, Level 16, State 1, Line 1
OLE DB provider 'MSDAORA' reported an error. The provider ran out of memory.
[OLE/DB provider returned message: Out of memory.]
OLE DB error trace [OLE/DB Provider 'MSDAORA' IRowsetChange::InsertRow returned 0x8007000e: The provider ran out of memory.].
開始就重啟SQLServer或重啟伺服器之後都有可能保證正常執行,但是無法根本解決
處理辦法:新增啟動引數 -g (例如使用-g384)
聯機幫助對-g引數的解釋:
以兆位元組為單位指定虛擬地址空間大小,SQL Server 將為 SQL Server 程式內的記憶體分配保留這一部分地址空間,但將其置於 SQL Server 記憶體池之外。這一區域由 SQL Server 用來裝載諸如擴充套件過程 .dll 檔案、分散式查詢所引用的 OLE DB 提供程式、Transact-SQL 語句中所引用的自動化物件等專案。預設值是 256 MB。
使用該選項有助於調節記憶體分配,但僅當 SQL Server 2000 個人版或 SQL Server 2000 標準版的實體記憶體大於 2 GB 或 SQL Server 2000 企業版的實體記憶體大於 3 GB 時才適用。
對於實體記憶體少於上述值的配置,即使使用該選項也不會有什麼幫助。如果 SQL Server 的記憶體使用要求反常,並且 SQL Server 程式的虛擬地址空間全都在使用,那麼在這樣的大記憶體配置中適合使用該選項。不正確地使用該選項可能導致 SQL Server 例項無法啟動或遇到執行時錯誤。
除非在 SQL Server 錯誤日誌中看到下面的警告資訊,否則應使用 –g 引數的預設值:
警告:Clearing procedure cache to free contiguous memory
此資訊表明 SQL Server 正試圖釋放 SQL Server 記憶體池的部分空間,以便為擴充套件儲存過程 .dll 檔案或自動化物件等專案尋找空間。在這種情況下,可以考慮增加由 -g 開關保留的記憶體量。使用低於預設值的值可以增加緩衝池和執行緒棧中的可用記憶體量;在不使用很多擴充套件儲存過程、分散式查詢或自動化物件的系統中,這種方法可為需要大量記憶體的工作負荷帶來效能方面的好處。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-608334/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MS SQL通過link導資料至oracle出錯:Server: Msg 7399, Level 16, State 1, Line 1SQLOracleServer
- SQL Server通過dblink訪問Oracle資料SQLServerOracle
- Qt中通過ODBC連線MSSQL資料庫QTSQL資料庫
- [zt] SQL Server匯出匯入資料方法SQLServer
- sqoop從hdfs導資料至oracle資料庫OOPOracle資料庫
- 【RMAN】oracle11g單機資料通過RMAN恢復至RACOracle
- 通過DB_LINK按照分割槽表抽取資料
- SQL SERVER Msg 7357錯誤解決SQLServer
- 一次通過DB_LINK抽取資料過慢原因分析
- zt_dbanotes_Oracle Trace Level Event NumbersOracle
- 通過Sqoop實現Mysql / Oracle 與HDFS / Hbase互導資料OOPMySqlOracle
- 關於SQL Server通過OLEDB訪問ORACLE資料表涉及Oracle11g新增欄位的錯誤提示SQLServerOracle
- 導資料時ora-31640報錯
- 通過DTS將RDS的資料實時同步至DataHub
- 關於SQL Server通過OLEDB訪問ORACLE資料表涉及CLOB或BLOB欄位的錯誤提示SQLServerOracle
- Query通過APD載入資料到DSO出錯
- GoldenGate MSSQL Oracle的主鍵問題導致的錯誤GoSQLOracle
- MSSQL Server 遷移至 ORACLE解決方案SQLServerOracle
- MSSQL資料庫健康檢查--SQL Server巡檢SQL資料庫Server
- 升級至SQL Server 2005的理由[zt]SQLServer
- 通過資料庫鏈匯出遇到ORA-39126錯誤資料庫
- oracle通過透明閘道器(Oracle Transparent Geteways),訪問ms sql server和其他資料庫OracleSQLServer資料庫
- Oracle 資料字典大全 ZTOracle
- 通過 POI 將資料庫中的資料上傳至 OSS 物件儲存資料庫物件
- 通過oracle 資料庫連結db link自動化備份生產庫的指令碼儲存過程Oracle資料庫指令碼儲存過程
- 通過SQL Server資料庫映象保護虛擬資料庫ICSQLServer資料庫
- c# 採用datatable 快速匯入資料至MSSQL的方法分享C#SQL
- MySQL Insert資料量過大導致報錯 MySQL server has gone awayMySqlServerGo
- MSSQL Server Rename Server_nameSQLServer
- SQL Server通過建立臨時表遍歷更新資料SQLServer
- Oracle 資料庫碎片整理(zt)Oracle資料庫
- 轉oracle資料泵匯出時報錯Oracle
- 使用SqlBulkCopy匯入資料至MS SQL ServerSQLServer
- 高效資料傳輸:Java透過繫結快速將資料匯出至ExcelJavaExcel
- 呼叫sp_send_mail時出現Msg 22050和Msg 14661錯誤AI
- 【SQL】Oracle資料庫通過job定期重建同步表資料SQLOracle資料庫
- [oracle]undo表空間出錯,導致資料庫例項無法開啟Oracle資料庫
- sql server資料庫附加錯誤的解決過程SQLServer資料庫