Release-Informationen


|10.5 DB2-Registrierungsvariablen und -Umgebungsvariablen

|10.5.1 Korrekturen an Leistungsvariablen


|

|Tabelle 5. Leistungsvariablen

Variablenname Betriebssystem Werte
Beschreibung
DB2_BINSORT Alle Standardeinstellung=NO

Werte: YES oder NO

Aktiviert einen neuen Sortieralgorithmus, der die CPU-Zeit und die abgelaufene Zeit für Sortierungen reduziert. Dieser neue Algorithmus weitet die extrem effiziente Integer-Sortiertechnik von DB2 UDB auf alle Sortierdatentypen wie BIGINT, CHAR, VARCHAR, FLOAT und DECIMAL sowie auf Kombinationen aus diesen Datentypen aus. Zur Aktivierung dieses neuen Algorithmus verwenden Sie den folgenden Befehl:
db2set DB2_BINSORT = yes
DB2_BLOCK_BASED_BP
Solaris-Betriebsumgebung Standardeinstellung=Keine

Werte: je nach Parameter

Gibt die erforderlichen Werte zum Erstellen eines Blockbereichs in einem Pufferpool an. Die ID des Pufferpools ist erforderlich. Sie ist in der Spalte BUFFERPOOLID der Systemkatalogsicht SYSCAT.BUFFERPOOLS zu sehen. Die Anzahl der Seiten, die im Pufferpool für blockbasierte E/A zugewiesen werden sollen, muss angegeben werden. Die Anzahl der Seiten, die in einen Block aufgenommen werden sollen, ist optional. Der Standardwert ist 32.

Das Format für die Verwendung diser Registrierdatenbankvariablen sieht folgendermaßen aus:

DB2_BLOCK_BASED_BP=PUFFERPOOL-ID,BLOCKBEREICHSGRÖSSE,[BLOCKGRÖSSE];...

Mehrere Pufferpools können mit derselben Variablen als blockbasiert definiert werden, indem die einzelnen Einträge durch Semikolon getrennt werden.

Der Wert für BLOCKGRÖSSE kann zwischen 2 und 256 liegen. Wenn keine Blockgröße angegeben ist, wird der Standardwert 32 verwendet.

Wenn die angegebene Blockbereichsgröße über 98% der Gesamtgröße des Pufferpools beträgt, wird der Pufferpool nicht blockbasiert. Es ist sinnvoll, immer einen gewissen Teil des Pufferpools im seitenbasierten Bereich des Pufferpools zu haben, da die Möglichkeit besteht, dass einzelne Seiten erforderlich sind, selbst wenn der Großteil der E/A im System eine sequenzielle Bereitstellung ist. Wenn der Wert für die Blockbereichsgröße nicht ein Mehrfaches der Blockgröße ist, wird er auf die nächste Blockgrößengrenze verringert. Weitere Informationen zur blockbasierten E/A finden Sie in

DB2_NO_FORK_CHECK
UNIX Standardeinstellung=OFF

Werte: ON oder OFF

Wenn diese Variable den Wert "ON" hat, schützt der Clientprozess sich nicht vor einer Anwendung, die eine Kopie des Prozesses zur Ausführung erstellt (Aufspaltung). Wenn Aufspaltung auftritt, sind die Ergebnisse unvorhersehbar. Die Ergebnisse könnten keine Auswirkungen, negative Auswirkungen, einige Fehlercodes oder ein Trap der Anwendung sein. Wenn Sie sicher sind, dass Ihre Anwendung keine Aufspaltung verursacht und Sie eine bessere Leistung wünschen, sollten Sie den Wert dieser Variablen in "ON" ändern.
DB2_MINIMIZE_LIST_PREFETCH Alle Standardeinstellung=NO

Werte: YES oder NO

Vorablesezugriff über Listen ist eine spezielle Methode des Tabellenzugriffs, die die qualifizierenden Satz-IDs aus dem Index abruft, sie nach Seitennummer sortiert und dann die Datenseiten bereitstellt.

Manchmal verfügt das Optimierungsprogramm nicht über genaue Informationen, um zu bestimmen, ob der Vorablesezugriff über Listen eine gute Zugriffsmethode ist. Dies könnte z. B. auftreten, wenn Prädikatauswahlmöglichkeiten Parametermarken oder Hostvariablen enthalten, die verhindern, dass das Optimierungsprogramm die Auswahlmöglichkeit über Katalogstatistiken ermittelt.

Diese Registrierdatenbankvariable verhindert, dass das Optimierungsprogramm in solchen Fällen den Vorablesezugriff über Listen versucht.

DB2_INLIST_TO_NLJN Alle Standardeinstellung=NO

Werte: YES oder NO

In einigen Fällen kann der SQL-Compiler ein Listenprädikat IN in eine Verknüpfung umschreiben. Die folgende Abfrage z. B.
     SELECT *
        FROM EMPLOYEE
    WHERE DEPTNO IN ('D11', 'D21', 'E21')
	  
könnte umgeschrieben werden in:
    SELECT *
     FROM EMPLOYEE, (VALUES 'D11', 'D21', 'E21) AS V(DNO)
     WHERE DEPTNO = V.DNO
	  

Diese Überarbeitung könnte später eine bessere Leistung bieten, wenn ein Index für DEPTNO vorhanden ist. Die Liste der Werte würde zuerst abgerufen und durch eine verschachtelte Schleife mittels des Index mit EMPLOYEE verknüpft, um das Verknüpfungsprädikat anzuwenden.

Manchmal verfügt das Optimierungsprogramm nicht über genaue Informationen, um die beste Verknüpfungsmethode für die umgeschriebene Version der Abfrage zu bestimmen. Dies kann auftreten, wenn die IN-Liste Parametermarken oder Hostvariablen enthält, die verhindern, dass das Optimierungsprogramm Katalogstatistiken zur Ermittlung der Auswahlmöglichkeit ermittelt. Diese Registrierdatenbankvariable veranlasst das Optimierungsprogramm, bevorzugt verschachtelte Schleifen für die Verknüpfung von Wertelisten mittels der Tabelle mit der IN-Liste als innere Tabelle in der Verknüpfung zu verwenden.

| |

|10.5.2 Neue Parameter für Registrierdatenbankvariable DB2BPVARS

|Die Registrierdatenbankvariable DB2BPVARS unterstützt zwei neue |Parameter: NUMPREFETCHQUEUES und PREFETCHQUEUESIZE. Diese |Parameter gelten für alle Plattformen und können zur Verbesserung des |Vorablesezugriffs für Pufferpooldaten verwendet werden. Betrachten Sie |beispielsweise den sequenziellen Vorablesezugriff, bei dem die gewünschte |Größe des Vorablesezugriffsspeichers in PREFETCHSIZE/EXTENTSIZE |Vorablesezugriffsanforderungen unterteilt ist. In diesem Fall werden |Anforderungen in Vorablesewarteschlangen eingereiht, von denen E/A-Server |zugeteilt werden, um asynchrone Ein-/Ausgabe durchzuführen. DB2 |verwaltet eine Warteschlange der Größe max( 100 , 2*NUM_IOSERVERS ) für jede |Datenbankpartition. In einigen Umgebungen ergeben sich |Leistungsverbesserungen mit mehreren Warteschlangen und/oder mit |Warteschlangen einer anderen Größe. Die Anzahl der |Vorablesewarteschlangen sollte höchstens der Hälfte der Anzahl der E/A-Server |entsprechen. Berücksichtigen Sie beim Setzen dieses Parameters andere |Parameter wie PREFETCHSIZE, EXTENTSIZE, NUM_IOSERVERS, die Pufferpoolgröße und |DB2_BLOCK_BASED_BP sowie Auslastungsmerkmale wie die Anzahl aktueller |Benutzer.

|Wenn Sie denken, dass die Standardwerte für Ihre Umgebung zu klein sind, |erhöhen Sie die Werte zuerst nur ein wenig. Sie könnten |z. B. NUMPREFETCHQUEUES=4 und PREFETCHQUEUESIZE=200 |festlegen. Nehmen Sie Änderungen an diesen Parametern kontrolliert vor, |so dass Sie die Auswirkungen der Änderung überwachen und beurteilen |können.
|

|Tabelle 6. Überblick über die neuen Parameter

Parametername Standardwert Gültiger Bereich
NUMPREFETCHQUEUES 1 1 bis NUM_IOSERVERS

Wenn der Parameter auf einen niedrigeren Wert als 1 eingestellt ist, ändern Sie den Wert in 1.

Wenn er auf einen höheren Wert als NUM_IOSERVERS eingestellt ist, setzen Sie ihn auf den Wert von NUM_IOSERVERS.

PREFETCHQUEUESIZE max(100,2*NUM_IOSERVERS) 1 bis 32767

Wenn der Parameter auf einen niedrigeren Wert als 1 eingestellt ist, setzen Sie ihn auf den Standardwert.

Wenn er auf einen höheren Wert als 32767 eingestellt ist, setzen Sie ihn auf 32767.

|10.5.3 Korrekturen und Ergänzungen zu verschiedenen Registrierungsvariablen

| | |

|Die Registrierungsvariable DB2_NEWLOGPATH2 ist verfügbar für |alle Betriebssysteme. Eine neue Variable, |DB2_ROLLFORWARD_NORETRIEVE, wurde eingeführt. Die korrekten |Informationen für beide Variablen sind unten aufgeführt.
|

|Tabelle 7. Verschiedene Variablen

Variablenname Betriebssystem Werte
Beschreibung
DB2_NEWLOGPATH2 ALLE Standardeinstellung=NO

Werte: YES oder NO

Mit diesem Parameter können Sie angeben, ob ein sekundärer Pfad zur Implementierung von doppelter Protokollierung verwendet werden soll. Der verwendete Pfad wird generiert, indem eine "2" an den aktuellen Wert des Datenbankkonfigurationsparameters logpath angehängt wird.
DB2_ROLLFORWARD_NORETRIEVE
ALLE Standardeinstellung=(nicht festgelegt)

Werte: YES oder NO

Wenn der Datenbankkonfigurationsparameter USEREXIT aktiviert ist, werden Protokolldateien automatisch bei aktualisierenden Wiederherstellungen vom Archiv abgerufen. Mit der Variablen DB2_ROLLFORWARD_NORETRIEVE können Sie angeben, dass aktualisierende Wiederherstellungen keine Protokolldateien aus dem Archiv abrufen sollen. Diese Variable ist standardmäßig inaktiviert. Setzen Sie diese Variable auf YES, wenn Sie nicht wollen, dass bei der aktualisierenden Wiederherstellung Protokolldateien automatisch abgerufen werden. Setzen Sie die Variable z. B. auf YES in einer Konfiguration mit Bereitschaftsmodus (Hot Standby), wenn Sie verhindern wollen, dass Protokolleinträge, die von einer fehlerhaften Anwendung erzeugt wurden, das Ausweichsystem beschädigen.

|10.5.4 Korrekturen und Ergänzungen zu allgemeinen Registrierungsvariablen

| |

|Eine neue Variable, DB2_REDUCED_OPTIMIZATION, wurde |eingeführt.
|

|Tabelle 8. Allgemeine Registrierungsvariable

Variablenname Betriebssystem Werte
Beschreibung
DB2_REDUCED_OPTIMIZATION ALLE Standardeinstellung=NO

Werte: YES, NO oder beliebige ganze Zahl

Mit dieser Registrierungsvariablen können Sie einige der Optimierungstechniken bei spezifischen Optimierungsstufen inaktivieren. Wenn Sie die Anzahl der verwendeten Optimierungstechniken verringern, verringern Sie auch die Dauer und die Ressourcennutzung der Optimierung.
Anmerkung:
Die Optimierungsdauer und die Ressourcennutzung können zwar verringert werden, das Risiko eines nicht optimalen Datenzugriffsplans erhöht sich jedoch.

  • Wenn die Variable auf NO gesetzt ist:

    Das Optimierungsprogramm ändert seine Optimierungstechniken nicht.

  • Wenn die Variable auf YES gesetzt ist:

    Wenn die Optimierungsstufe maximal 5 (Standardeinstellung) beträgt, inaktiviert das Optimierungsprogramm einige Optimierungstechniken, die beträchtliche Vorbereitungszeit und Ressourcen benötigen würden, die jedoch in der Regel keinen besseren Zugriffsplan ergeben.

    Wenn die Optimierungsstufe genau 5 ist, reduziert das Optimierungsprogramm einige zusätzliche Techniken oder inaktiviert sie. Dadurch können die Optimierungsdauer und die Ressourcennutzung weiter verringert werden, aber auch das Risiko eines nicht optimalen Zugriffsplans kann weiter erhöht werden. Bei Optimierungsstufen unter 5 sind einige dieser Techniken eventuell sowieso nicht in Verwendung. Wenn sie jedoch in Verwendung sind, bleiben sie weiter in Verwendung.

  • Wenn die Variable auf eine ganze Zahl gesetzt ist:

    Die Auswirkung ist dieselbe wie bei YES, mit dem folgenden zusätzlichen Verhalten für dynamisch vorbereitete Abfragen, die mit Stufe 5 optimiert werden: Wenn die Gesamtanzahl von Verknüpfungen in einem Abfrageblock die Einstellung übersteigt, wechselt das Optimierungsprogramm zur schnellen Verknüpfungsaufzählung statt weitere Optimierungstechniken zu inaktivieren, wie oben für Optimierungsstufe 5 beschrieben ist, was impliziert, dass die Abfrage mit einer Stufe ähnlich Optimierungsstufe 2 optimiert wird.

    Weitere Informationen zu schneller und dynamischer Verknüpfungsaufzählung finden Sie unter "Suchstrategien zur Auswahl der optimalen Verknüpfungsmethode" im Handbuch Systemverwaltung: Optimierung.

Beachten Sie, dass die dynamische Optimierungsverringerung bei Optimierungsstufe 5, wie sie in "Anpassen der Optimierungsklasse" im Handbuch Systemverwaltung: Optimierung beschrieben ist, Vorrang hat vor dem Verhalten für die Optimierungsstufe 5 bei DB2_REDUCED_OPTIMIZATION = YES sowie vor dem Verhalten für die Einstellung auf eine ganze Zahl.


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]