Mittwoch, August 29, 2012

Block Size und Performance

Rick van Dyke untersucht im Hotsos-Newsletter (von dem ich hoffe, dass seine Web-Adresse dauerhaft erreichbar bleibt) die Rolle der Block Size für die Performance von DML-Operationen und Queries. Die traditionelle Position in dieser Frage lautet dabei:
  • kleine Blocks für OLTP: weil hier viel DML anfällt und diese Operationen weniger Probleme bereiten, wenn jeder Block relativ wenige Sätze enthält und das Verhältnis von row-Anzahl zu itl-Einträgen (= interested transaction list) günstig ist.
  • große Blocks für DWHs: weil kaum DML erfolgt. Außerdem gibt es die Annahme, dass größere Index-Blocks das BLEVEL des Index verringern und dass größere Table-Blocks die Anzahl der Leseoperationen beim FTS reduzieren.
Relevant ist dabei sicher das contention Argument. Die Verbesserung der Performance durch größere Index- und Table-Blocks lässt sich in van Dykes Test hingegen nicht beobachten: zwar reduzieren sich die consistent gets für den FTS bei größeren Blocks, aber die Laufzeit der Operationen reduziert sich nicht entsprechend (tatsächlich ist in seinem Test der FTS bei 4K Blocks trotz hoher LIO-Anzahl am schnellsten). Für die Indizes zeigt sein Test nahezu keine Wirkung der Blockgrößen. Dabei spielt wahrscheinlich auch eine Rolle, dass das BLEVEL von Indizes in der Regel ohnehin nicht stark variiert (für größere Indizes - in den Systemen, die ich kenne -  normalerweise 2 oder selten 3, sehr selten 4).

Keine Kommentare:

Kommentar veröffentlichen