我有大量的物化视图,其中一些只需要几秒钟来创建和刷新,而其他人可能需要40分钟来编译,如果SQLDeveloper在此之前没有崩溃。
我需要在查询中聚合一些字符串,并且我有以下函数
create or replace
function stragg
( input varchar2 )
return varchar2
deterministic
parallel_enable
aggregate using stragg_type
;
然后,在我的MV中,我使用了一个select语句,例如
SELECT
hse.refno,
STRAGG (DISTINCT per.person_name) as PERSONS
FROM
HOUSES hse,
PERSONS per
这很棒,因为它给了我以下内容:
refno persons
1 Dave, John, Mary
2 Jack, Jill
而不是:
refno persons
1 Dave
1 John
1 Mary
2 Jack
2 Jill
似乎当我使用这个STRAGG
函数时,创建/刷新MV所需的时间会急剧增加。是否有另一种方法来实现逗号单独的值列表?我在我的MV中使用它,所以它对我来说是一个非常必要的功能
由于
答案 0 :(得分:1)
以下链接中有许多字符串聚合技术。它们可能会为您提供更好的性能。
http://www.oracle-base.com/articles/misc/StringAggregationTechniques.php