使用字符串聚合时,出现的表演建议时,实质性的视图创建非常缓慢?
-
22-09-2019 - |
题
我有大量实现的视图,其中一些只需几秒钟即可创建和刷新,而其他人则可以将我最多40分钟用于编译,如果Sqldeveloper在此之前没有崩溃。
我需要在查询中汇总一些字符串,并且具有以下功能
create or replace
function stragg
( input varchar2 )
return varchar2
deterministic
parallel_enable
aggregate using stragg_type
;
然后,在我的MV中,我使用选择语句
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所需的时间大大增加。是否有另一种方法可以实现单独的值列表?我在整个MVS中都使用它,所以这对我来说是一个必需的功能
谢谢
解决方案
下面的链接有许多用于字符串聚合的技术。他们可能会为您提供更好的性能。
http://www.oracle-base.com/articles/misc/stringaggregittechniques.php
不隶属于 StackOverflow