Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: DB2 Stored Procedure Langsam

  Alt 15. Mai 2007, 15:56
Zitat von r3v0:
Die View hat soweit ich weiß keinen Index. Haben Views überhaupt Indexe?
Das View an sich hat natürlich keinen Index. Es handelt sich ja nur um ein SQL-Statement (auch ein Insert oder Select hat keinen Index ). Ich bezog mich hier eher auf die Relationen, auf denen das View arbeitet. An sich ist ein Index ja gerade dafür gedacht, dass Du schneller Suchen kannst (eben zu Kosten der Einfüge/Lösch/Updateoperationen). Wenn Du jetzt eine Select-Anfrage erstellst oder eben einen Join, o.Ä., dann wird hier der Anfrageoptimierer (hoffentlich) einen Index berücksichtigen, soweit dieser vorhanden ist.
Wird also auf den Tabellen hauptsächlich eine bestimmte Anfrage ausgeführt, so lohnt sich hier ein Index (also Anfrage im Sinne von lesender Zugriff!). Natürlich kann es auch verschiedene Anfragen geben, die auf verschiedene Attribute zugreifen, da lohnen sich dann mehrere Sekundäre Indizes, allerdings nur solange die Lesezugriffe die Anzahl der Änderungen deutlich überwiegen (Update eines Index kostet natürlich wieder etwas Zeit).

An sich hilft hier im Zweifel auch die Auswertung der Statistiken die hier erhoben wurden. So erstellen Systeme wie Oracle und DB2 durchaus auch solche Informationen (wenn man es ihnen sagt), so dass man sieht, wie häufig welche Operationen eben statt finden/fanden. Das ganze lässt sich dann leicht ausnutzen um hier weitere Optimierungen vor zu nehmen. An sich hilft vielleicht auch gleich die Analyse des Auswertungsplans weiter (da findet man in den Graphischen Tools gleich einen Graphen, ansonsten müssten explain oder explain plan oder so helfen).
  Mit Zitat antworten Zitat