我有一个简单的视图,该视图根据管道字符(作为varchar2数据类型)从表中获取列,并将某些列转换为数字。我很难通过视图将完整记录从源表加载到目标表。有可能提高其性能吗?
该视图如下所示,其中包含150个列拆分和35个转换
CREATE OR FORCE MYVIEW as
WITH CommonTableExpression
AS
(SELECT
a.*
,CAST(REGEXP_SUBSTR(a.Line, '([^|]*)(\||$)',1,1,NULL, 1) AS VARCHAR2(1)) Column1
FROM MYTABLE a)
SELECT
LINE
,CAST(REGEXP_SUBSTR (Line || '|', '([^|]*)(\||$)',1,1, NULL, 1 ) AS NUMBER(1,0)) Column1_NBR
FROM CommonTableExpression;
我永远无法加载全部16,00,000条记录,并且需要15小时才能加载表的三分之一。