我試圖加載從Oracle到SQL Server數據的性能(對不起,之前不寫這個)提高大型緩慢dataloading查詢
我有一個表(實際上是具有不同表中數據的視圖)與至少有100萬條記錄。我以這樣的方式設計我的包,使我具有業務邏輯的功能,並直接在選擇查詢中調用它們。
例:
X1(id varchar2)
x2(id varchar2, d1 date)
x3(id varchar2, d2 date)
Select id, x, y, z, decode (.....), x1(id), x2(id), x3(id)
FROM Table1
注:我的表有20列,我呼籲ATLEAST 6-7列的5種不同的功能。 還有一些功能比較審計表中傳遞的參數和執行邏輯
我該怎樣才能提高查詢性能還是有更好的方法來做到這一點
我試圖做它在C#代碼,但最初選擇的記錄對於數據集來說足夠大,並且我會發現內存異常。
我的功能做選擇,然後例如進行邏輯:
Function(c_x2, eid)
Select col1
into p_x1
from tableP
where eid = eid;
IF (p_x1 = NULL) THEN
ret_var := 'INITIAL';
ELSIF (p_x1 = 'L') AND (c_x2 = 'A') THEN
ret_var:= 'RL';
INSERT INTO Audit
(old_val, new_val, audit_event, id, pname)
VALUES
(p_x1, c_x2, 'RL', eid, 'PackageProcName');
ELSIF (p_x1 = 'A') AND (c_x2 = 'L') THEN
ret_var := 'GL';
INSERT INTO Audit
(old_val, new_val, audit_event, id, pname)
VALUES
(p_x1, c_x2, 'GL', eid, 'PackgProcName');
END IF;
RETURN ret_var;
你會爲所有1,000,000條記錄運行這些函數嗎?是的,這需要一些時間來運行 - 當然不是毫秒。你的期望是什麼? – Guy 2009-09-25 14:02:09
我從來沒有說我想要毫秒,它運行1小時..所以我想改善(提高)表現我說...我沒有寫我想讓它在一眨眼之間完成 – 2009-09-25 14:21:48
看到我的最新回答編輯 – 2009-09-25 17:32:47