[英]Increasing max server memory to deal with System.OutOfMemoryException on SQL Server
[英]SQL Server System.OutOfMemoryException + too many outcomes
我是一個自學的SQL程序員。
當我嘗試加入表時(結果可能接近1億),將引發System.OutOfMemoryException
。 我的主要目的是生成值的組合; 另一個表(存儲了一組其他數字)將與自己進行比較,在每一行中采用這些值,並制定購買/出售策略。 斜體部分是發生內存不足錯誤的地方。 因此,您可以想象數據集將是巨大的。
這是代碼:
select *
into #MyTempTable
from
(Select distinct Parm_H
from [dbo].[Parmset1]) A1
inner join
(Select distinct Parm_D
from [dbo].[Parmset1]) A2 on A1.Parm_H > A2.Parm_D
inner join
(Select distinct Parm_A
from [dbo].[Parmset1]) A3 on A2.Parm_D > A3.Parm_A
select *
from [dbo].[MatchRegression]
cross join #MyTempTable
我的電腦規格如下
我的問題是:
雖然在線資源說這是RAM問題,但是僅添加RAM而無需升級到I7會有所幫助嗎?
與一些經驗豐富的程序員討論過的是,代碼本身很重要,因為涉及到太多的聯接,因此更改RAM毫無幫助。 任何不需要大量參與即可實現我的主要目標的想法。
自從我使用SQL Server以來,是否會專門設計任何其他軟件來處理大量數據(免費;更適用),並且與我的計算機的當前規格兼容?
無論如何我都願意學習。
謝謝文森特
內存不足異常是由您使用的32位SSMS客戶端生成的。
select * from [dbo].[MatchRegression] cross join #MyTempTable
顯然,您不會手動查看數據並對其進行任何處理,因此我的建議是將其插入到另一個表中並對它運行查詢,而不是嘗試選擇要在datagrid或客戶端應用程序中顯示的所有數據。 SQL Server應該可以輕松地處理數十億行數據,而不會出現任何問題。
但是,您可能需要查看版本比較表,以根據數據大小,要求等來查看哪種SQL Server版本最適合您的應用程序
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.