Ich betrachte Hints als ein Instrument, das man mit Bedacht einsetzen und in Produktivsystemen nach Möglichkeit vermeiden sollte, habe sie aber auch dort schon eingesetzt, wenn ich mir anders nicht zu helfen wusste. Darüber hinaus denke ich, dass sie zu Diagnosezwecken ausgesprochen nützlich sind. Hints weisen den Optimizer dazu an, im Falle bestimmter Entscheidungen einer Vorgabe zu folgen (und sind somit keine Empfehlungen, sondern Direktiven), wodurch sich Fehler des Optimizers korrigieren lassen, aber unter Umständen auch sinnvolle Reaktionen des Systems auf veränderte Bedingungen (also Statistiken) verhindert werden. Ein weiteres Argument gegen ein allzu großes Vertrauen in Hints nennt Jonathan Lewis: manchmal verschwinden sie einfach zwischen den Releases. So geschehen mit (no_)cluster_by_rowid, der in 11.2.0.4 verfügbar war, aber in 12.1.0.1 nicht mehr aufzufinden ist, obwohl er unter bestimmten Umständen (insbesondere im Exadata-Kontext) sehr hilfreich sein konnte.
Keine Kommentare:
Kommentar veröffentlichen