Angeben von Zeilenblockung zur Verringerung des Systemaufwands
Die Zeilenblockung, die für alle Anweisungen und Datentypen (einschließlich LOB-Datentypen) unterstützt wird, verringert den Systemaufwand des Datenbankmanagers für Cursor durch Abrufen eines Blocks von Zeilen in einer einzigen Operation.
Informationen zu diesem Vorgang
Dieser Block von Zeilen stellt eine Anzahl von Seiten im Speicher dar. Dabei handelt es sich nicht um einen Block einer MDC-Tabelle (MDC = Multidimensional Clustering) oder einer ITC-Tabelle (ITC = Insert Time Clustering), der physisch einem EXTENTSIZE großen Speicherbereich auf dem Datenträger zugeordnet ist.
- BLOCKING ALL
- Cursor, die mit der Klausel FOR READ ONLY deklariert oder nicht mit FOR UPDATE angegeben sind, werden mit Blockung ausgeführt.
- BLOCKING NO
- Cursor werden nicht mit Blockung ausgeführt.
- BLOCKING UNAMBIG
- Cursor, die mit der Klausel FOR READ ONLY deklariert sind, werden mit Blockung ausgeführt. Cursor, die nicht mit der Klausel FOR READ ONLY oder FOR UPDATE deklariert sind und die nicht mehrdeutig sind oder die nur einen Lesezugriff ausführen, werden mit Blockung ausgeführt. Mehrdeutige Cursor werden nicht mit Blockung ausgeführt.
- Der Parameter aslheapsz gibt die Größe des Zwischenspeichers für die Anwendungsunterstützungsebene für lokale Anwendungen an. Dieser Parameter wird verwendet, um die E/A-Blockgröße festzulegen, wenn ein Blockcursor geöffnet wird.
- Der Parameter rqrioblk gibt die Größe des Kommunikationspuffers zwischen fernen Anwendungen und ihren Datenbankagenten auf dem Datenbankserver an. Dieser Parameter wird auch verwendet, um die E/A-Blockgröße auf dem Data Server Runtime Client festzulegen, wenn ein Blockcursor geöffnet wird.
Bevor Sie die Blockung von Zeilendaten für LOB-Datentypen aktivieren, müssen Sie verstehen, welche Auswirkungen dies auf die Systemressourcen hat. Es wird mehr gemeinsam genutzter Speicher auf dem Server benötigt, um die Verweise auf LOB-Werte in jedem Block von Daten zu speichern, wenn LOB-Spalten zurückgegeben werden. Die Anzahl solcher Verweise variiert entsprechend dem Wert des Konfigurationsparameters rqrioblk.
- Setzen Sie den Wert des Parameters auf AUTOMATIC.
- Erhöhen Sie den Wert um 256 Seiten, wenn der Parameter gegenwärtig auf einen benutzerdefinierten numerischen Wert eingestellt ist.
Zur Erhöhung der Leistung einer vorhandenen Anwendung mit eingebettetem SQL, die auf LOB-Werte zugreift, binden Sie die Anwendung erneut, indem Sie im Befehl BIND entweder die Klausel BLOCKING ALL oder die Klausel BLOCKING UNAMBIG zur Anforderung der Zeilenblockung angeben. Anwendungen mit eingebettetem SQL rufen LOB-Werte jeweils zeilenweise ab, nachdem ein Block von Zeilen vom Server abgerufen wurde. Benutzerdefinierte Funktionen (UDFs), die große LOB-Ergebnisse zurückgeben, können den DB2-Server veranlassen, zum einzeiligen Abruf von LOB-Daten zurückzukehren, wenn große Mengen Speicher auf dem Server belegt werden.
Vorgehensweise
Gehen Sie wie folgt vor, um die Zeilenblockung anzugeben: