0

マテリアライズド ビューがたくさんあります。作成と更新に数秒しかかからないものもあれば、SQLDeveloper がそれまでにクラッシュしなければ、コンパイルに最大 40 分かかるものもあります。

クエリでいくつかの文字列を集約する必要があり、次の関数があります

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全体でこれを使用しているので、私にとって非常に必要な機能です.

ありがとう

4

1 に答える 1

1

以下のリンクには、文字列集約の手法がいくつかあります。パフォーマンスが向上する可能性があります。

http://www.oracle-base.com/articles/misc/StringAggregationTechniques.php

于 2010-02-24T11:05:18.113 に答える