文字列集約を使用するときに、信じられないほど遅いマテリアルビューの作成、パフォーマンスの提案はありますか?

StackOverflow https://stackoverflow.com/questions/2325390

質問

私はたくさんの具体化されたビューを持っていますが、それらのいくつかは作成と更新に数秒かかりますが、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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top