Ich muss einen Index für eine Spalte für eine bessere Leistung erstellen. Die Spalte hat den Typ Zeitmarke und wäre ein funktionsbasierter Index. Das Problem ist: Diese Spalte wird sehr häufig aktualisiert.Index für eine Spalte sehr häufig aktualisiert
Die Oracle-Dokumentation besagt, dass Spalten, die häufig geändert werden, nicht indiziert werden.
Gibt es eine bessere Möglichkeit, diese Spalte abzufragen?
bearbeitet:
In der folgenden Abfrage wird die Spalte VALIDATIONTIME:
select *
from orders
where VALIDATIONTIME between
TO_TIMESTAMP('2016/03/06 10:45:18', 'YYYY/MM/DD HH24:MI:SS')
and
TO_TIMESTAMP('2016/03/15 19:50:18', 'YYYY/MM/DD HH24:MI:SS');
Der Index sollte nur erstellt werden, wenn dies bei Leistungsproblemen helfen kann. Der Trick besteht darin, den Engpass in Ihren Prozessen zu finden. Wenn Ihre Aktualisierungen zu lange dauern - erstellen Sie keinen Index, wenn Ihre Auswahlen Ihr Problem sind - erstellen Sie einen. Es gibt keine einzige Regel, die zu befolgen ist, und die Oracle-Dokumentation empfiehlt nur, was in diesen Fällen die beste Vorgehensweise ist. –
Wie die oben erwähnte Person, es ist nur ein Kompromiss. Testen Sie es für Ihre Anwendung und wägen Sie die Ergebnisse mit dem Endziel ab. – Dane