ERLEDIGT
JA
JA
ANTWORTEN
1
1
ZUGRIFFE
954
954
EMPFEHLEN
-
Hallo zusammen.
Bin dabei, div. Größen von Tabellen und deren Indizes auszuwerten.
Hierbei entsteht eine Tabelle, deren letzte Spalten so aussehen:
TABLE_NAME: Tabellen NamePHP-Code:TABLE_NAME IDX_BYTES_ALLOCATED TBL_IDX_SUM PCT
xxxx 619446272 9549905920 18,53
xxxx 520880128 9549905920 18,53
xxxx 433586176 9549905920 18,53
xxxx 520617984 9549905920 18,53
xxxx 664797184 9549905920 18,53
xxxx 1238630400 9549905920 18,53
xxxx 435421184 9549905920 18,53
xxxx 970981376 9549905920 18,53
yyyy 220200960 1636892672 3,18
yyyy 168034304 1636892672 3,18
yyyy 129236992 1636892672 3,18
yyyy 178782208 1636892672 3,18
IDX_BYTES_ALLOCATED: Bytes die der Index belegt
TBL_IDX_SUM: Bytes, die die Tabelle mit allen zu ihr gehörenden Indizes belegt (per SUM() OVER(PARTITION BY))
PCT: TBL_IDX_SUM/SUM(DISTINCT TBL_IDX_SUM) OVER())*100, also wieviel Prozent TBL_IDX_SUM von allen (einmal) belegt.
Dem geneigten Leser fällt inzwischen evtl. auf, jede Tabelle wird so oft wiederholt, wie ein ihr zugehöriger Index aufgelistet ist. Mir ist klar, dass das keine schöne Normalform ist, macht so aber durchaus sinn.
Gut, ich möchte die Prozentwerte hinten gerne Kumulieren, aber eben je Tabelle, nicht je Index.
Also ich hätte gerne noch so eine Spalte:
Also von der Theorie so was wie:PHP-Code:PCT_KUM
18,53
18,53
18,53
18,53
18,53
18,53
18,53
18,53
21,71
21,71
21,71
21,71
SUM(DISTINCT PCT) OVER(ORDER BY TBL_IDX_SUM DESC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) PCT_KUM
Nun ist DISTINCT so leider nicht erlaubt. Bzw. mit DISTINCT kein ORDER BY -> keine Windowing Klausel.
Jemand eine Idee, wie ich das lösen könnte?
Die oben dargestellte "Tabelle" kommt durch viele subselects zusammen und soll eigentlich so weggespeichert werden. Also ein subselect auf diese "Tabelle" halte ich für keine schöne Lösung.
Danke im VorausGeändert von styri (24.07.07 um 14:42 Uhr)
-
So, nach ner kleinen Pause und etwas Ablenkung ist das Hirn schon viel flexibler.
Thema ist erledigt.
PS: Der ganze Aufwand wird betrieben, damit man sagen kann:
Mich interessieren nur Tabellen und Indizes, die 90% des Platzes belegen.
Ähnliche Themen
-
[Oracle10g] aus mehreren Zeilen nur das Jüngste/Grösste
Von m3000 im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 15.05.09, 19:07 -
[Oracle10g] Alternative zu "not in...select from"
Von m3000 im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 10.02.09, 10:59 -
[Oracle10g] Reguläre Ausdrücke in SQL
Von m3000 im Forum Relationale DatenbanksystemeAntworten: 4Letzter Beitrag: 21.01.09, 12:15 -
SQL*Plus Worksheet unter Oracle10g - WO?
Von bibi135 im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 17.03.06, 15:43 -
Tablespace (oracle10g)
Von Stealth Cyborg im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 30.09.04, 19:51





Zitieren
Login





