Unglaublich langsam materialisierte Ansichtserstellung bei der Verwendung von String -Aggregation, irgendwelche Leistungsvorschläge?

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

Frage

Ich habe eine Menge materialisierter Ansichten, einige von ihnen brauchen nur ein paar Sekunden, um zu erstellen und zu aktualisieren, während andere mich bis zu 40 Minuten zum Kompilieren brauchen, wenn SQLDEVERVER nicht vorher abstürzt.

Ich muss einige Saiten in meiner Anfrage zusammenfassen, und ich habe die folgende Funktion

create or replace
function stragg
  ( input varchar2 )
  return varchar2
  deterministic
  parallel_enable
  aggregate using stragg_type
;

Dann verwende ich in meinem MV eine ausgewählte Anweisung wie z.

SELECT
  hse.refno,
  STRAGG (DISTINCT per.person_name) as PERSONS
FROM
 HOUSES hse,
 PERSONS per

Das ist großartig, weil es mir Folgendes gibt:

 refno        persons
 1            Dave, John, Mary
 2            Jack, Jill

Anstatt von :

 refno        persons
 1            Dave
 1            John
 1            Mary
 2            Jack 
 2            Jill

Es scheint, dass ich das benutze, wenn ich das benutze STRAGG Funktion, die Zeit zum Erstellen/Aktualisieren eines MV steigt dramatisch an. Gibt es eine alternative Methode, um eine Comma -Sonderliste von Werten zu erreichen? Ich benutze dies in meinem MVs, daher ist es eine sehr erforderliche Funktion für mich

Vielen Dank

War es hilfreich?

Lösung

Es gibt eine Reihe von Techniken für die String -Aggregation am folgenden Link. Sie könnten Ihnen eine bessere Leistung bieten.

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top