文字列集約を使用するときに、信じられないほど遅いマテリアルビューの作成、パフォーマンスの提案はありますか?
-
22-09-2019 - |
質問
私はたくさんの具体化されたビューを持っていますが、それらのいくつかは作成と更新に数秒かかりますが、SQLDeveloperがその前にクラッシュしない場合、他の人は私をコンパイルするのに最大40分かかることがあります。
クエリにいくつかの文字列を集約する必要があり、次の機能があります
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/stringaggregationtechniques.php
所属していません StackOverflow