(Oracle 10) Kostenfaktor einer Abfrage

MichaelW

Mitglied
Hallo zusammen,

kommt man irgendwie an den Kostenfaktor (Cost) ran der in der Explain-View angezeigt wird?
Ich möchte diesen aus einem externen Programm (Java Programm mit Hibernate) vor einer Abfrage abfragen und dann entscheiden wie weiterverfahren wird...

Geht das irgendwie?

Bin für alle Tips dankbar...

Gruß
Michael
 
Hallo zusammen,

kommt man irgendwie an den Kostenfaktor (Cost) ran der in der Explain-View angezeigt wird?
Ich möchte diesen aus einem externen Programm (Java Programm mit Hibernate) vor einer Abfrage abfragen und dann entscheiden wie weiterverfahren wird...

Geht das irgendwie?

Bin für alle Tips dankbar...

Gruß
Michael

Hallo,

Im SYS.dba_hist_sql_plan findest du solche Informationen. Mich würde interessieren, was du damit anfangen willst?. Der Wert ist ja für eine Abfrage erst vorhanden, nachdem der Soft-Parse durch ist..Du wirst auch mit dem SQL Hash arbeiten müssen, damit du an das eigentlich SQL rankommst


Gruss
 
Hallo,

danke für den Hinweis.

Also wir möchten eine Art Statistik aufbauen und dann, wenn genug Daten vorhanden sind, eine Aussage treffen wie lange eine Abfrage dauert. Beispiel: Eine Abfrage mit dem Kostenfaktor 15 dauert 10sek. Ein anderes mal dauert sie 8 Sek... usw........

Andere Ideen? Anregungen? Kritik?

Gruß & Danke
Micha
 
Hi,
willst du dann das Statement manipulieren? Die 10g leistet schon von Haus aus in der Richtig Optimierung und Caching vieles, solange die Statements i.O. sind.

greez
 
Hallo,

danke für den Hinweis.

Also wir möchten eine Art Statistik aufbauen und dann, wenn genug Daten vorhanden sind, eine Aussage treffen wie lange eine Abfrage dauert. Beispiel: Eine Abfrage mit dem Kostenfaktor 15 dauert 10sek. Ein anderes mal dauert sie 8 Sek... usw........

Andere Ideen? Anregungen? Kritik?

Gruß & Danke
Micha

- Funktioniert so nicht. Der Wert COST und "Dauer" korrelieren nicht (immer) miteinander.
 
Hi,
der Discoverer liefert so was ähnliches bei der Erzeugung von Reports. Aber wie?
Evtl. kannst dich rantasten mit "EXPLAIN PLAN FOR <SQL>"
 
also uns reicht schon eine ungefähre aussage darüber wie lange die abfrage dauert. in unserem system kann es vorkommen, dass eine abfrage bis zu einer stunde (oder noch länger dauert). da wäre eine aussage wie z.b. dauert länger als 30min für den user schon sinnvoll... es soll keineswegs die genaue zeit vorausgesagt werden.

über den explain plan komme ich schonmal an den kostenfaktor ran. der output von select *
from table(dbms_xplan.display()) finde ich nur etwas unschön. gibt es da noch andere möglichkeiten?

danke für alle tips

gruß
micha
 
Schau Dir mal den Oracle Resource Manager an. Über ihn lassen sich Benutzergruppen definieren, welche widerum in ihrem Resourcenverbrauch eingeschränkt werden können.

Eine Mögliche Einschränkung aus der Doku:
Execution Time Limit

You can specify a maximum execution time allowed for an operation. If the database estimates that an operation will run longer than the specified maximum execution time, the operation is terminated with an error. This error can be trapped and the operation rescheduled.
 

Neue Beiträge

Zurück