我试图加载从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