Dienstag, April 02, 2013

Hinweise zu Hints

Tanel Poder hat mal wieder einen extrem interessanten Artikel veröffentlicht: diesmal zu den nicht offiziell dokumentierten Views V$SQL_FEATURE und V$SQL_FEATURE_HIERARCHIE, zu denen bisher nur spärliche Hinweise (unter anderem) von Julian Dyke und Yong Huang zu finden waren. Außerdem liefert er ein paar Analyse-Scripts, mit denen sich diesen beiden Views und V$SQL_HINT einige interessante Informationen entnehmen lassen:
  • V$SQL_HINT
    • in diesem Fall beschränkt sich das zugehörige Script hint auf eine case-insensitive Suche über den Namen des Hints und eine Spaltenauswahl. Zu den enthaltenen Informationen gehören die Angaben des Releases, in dem der Hint zum ersten Mal erschien (VERSION), und des Releases, in dem der Hint in den "stored outline" Code aufgenommen wurde (VERSION_OUTLINE).
  • V$SQL_FEATURE, V$SQL_FEATURE_HIERARCHIE
    • das Script hinth (Hint Hierarchie) verknüpft die beiden Views und liefert damit Informationen zur Feature-Hierarchy und zeigt, in welchen Kontext ein Hint gehört (Execution oder Compilation; darunter dann CBO, RBO, QUERY_REWRITE, TRANSFORMATION etc.)
    • das Script sqlfh (SQL feature hierarchy) liefert eine Auflösung diverser Abkürzungen wie CBQT (cost-based query transformation) oder CVM (complex view merging), die man auch aus dem CBO Trace kennt (Event 10053)
Die direkten Links auf die Scripts des Herrn Poder spare ich mir, da ich mir bei Bedarf ähnliche Queries basteln würde - und denen würde ich dann Namen geben, mit denen ich mehr anfangen kann, als mit den Poder'schen Kürzeln.

Als kleine Ergänzung noch ein Link zu einem älteren Artikel von Jonathan Lewis mit einer kurzen Taxonomie undokumentierter Hints - die man in der Regel natürlich mit noch mehr Vorsicht behandeln sollte als die dokumentierten Varianten (mit denen man bekanntlich auch schon vorsichtig sein sollte).

Keine Kommentare:

Kommentar veröffentlichen