Mittwoch, Oktober 24, 2012

COUNT und bitmap Indizes

Zu den alten Wahrheiten, mit denen ich seit Jahren meine unvorsichtigen Zuhörer langweile, gehört, dass es keinen Unterschied macht, ob man in einer Query count(*) oder count(1) zum Zählen der Sätze verwendet. Falls jemand Details zum Thema wünscht, verweise ich auf Tom Kyte, der das Thema bereits 2001 abschließend beantwortet hat. Jetzt liest man bei Jonathan Lewis, dass es im Fall vorliegender bitmap Indizes allerdings einen Unterschied macht, ob man count(1) oder count(-1) verwendet: für den count(1)-Fall (und ebenso für count(*)) kann Oracle die Abkürzung des BITMAP CONVERSION COUNT verwenden, für count(-1) muss hingegen eine BITMAP CONVERSION TO ROWIDS durchgeführt werden. Immer wieder erstaunlich, welche Überraschungen bei solch harmlosen Tests auftauchen.

Keine Kommentare:

Kommentar veröffentlichen