In einer Instanz sind DBSpaces mit verschiedenen Page-Sizes angelegt. Was muss ich bei der Erstellung der notwendigen Temp-DBSpaces beachten?
Frage aus dem Support:
Ich benutze DBSpaces mit unterschiedlichen Page-Sizes. Was muss ich beachten beim Anlegen von Temp-DBSpaces, wenn ich für jede Page-Size ein vernünftig Dimensioniertes Temp. DBSpace zur Verfügung stellen möchte?
Hinterlege ich in der Variablen DBSPACETEMP meine temp.-DBSpaces mit unterschiedlicher Page-Size, so kommt folgende Warnung im online.log beim Starten der Instanz:
18:16:49 Warning: The dbspace 'tmp2' has a different page size than the first dbspace listed in DBSPACETEMP 'tmp1'. Only those dbspaces which match the page size of the first dbspace will be active as default temp dbspaces. 18:16:49 Warning: The dbspace 'tmp3' has a different page size than the first dbspace listed in DBSPACETEMP 'tmp1'. Only those dbspaces which match the page size of the first dbspace will be active as default temp dbspaces. 18:16:49 Warning: The dbspace 'tmp4' has a different page size than the first dbspace listed in DBSPACETEMP 'tmp1'. Only those dbspaces which match the page size of the first dbspace will be active as default temp dbspaces. 18:16:49 Warning: The dbspace 'tmp5' has a different page size than the first dbspace listed in DBSPACETEMP 'tmp1'. Only those dbspaces which match the page size of the first dbspace will be active as default temp dbspaces.
Antwort:
Man kann keine DBSpaces mit unterschiedlicher Page-Sizes in der DBSPACETEMP-Variable hinterlegen.
Laut Dokumentation zu IDS V10 ff. dürfen in der DBSPACETEMP-Variable nur DBSpaces mit der gleichen Page-Size hinterlegt werden.
"DBSPACETEMP can contain dbspaces with a non-default page size, but all of the dbspaces in the DBSPACETEMP list must have the same page size."
In der Dokumentation zum onspaces-Kommando unter der -t Option steht folgendes:
"You cannot specify a non-default page size for a temporary dbspace."
Dieser Zusatz ist in den 11.xx-Versionen entfallen. Das Anlegen eines temp. DBSpace mit nicht default Page-Size ist allerdings auch schon unter 10.00 möglich.
Und weiter in der "Administrators Reference":
"You can use the DBSPACETEMP configuration parameter to list dbspaces with one non-default page size. Only the dbspaces with the same page size as the first dbspace listed are used by the database server."
Das heißt: man kann zwar echte DBSpaces mit einer anderer Page-Size anlegen und als DBSPACETEMP nutzen, dann aber keine temp. DBSpaces mehr. Deshalb sollten alle temp. DBSpaces und echten DBSpaces, die unter DBSPACETEMP angegeben werden, in der default-Page-Size sein.
Der Vorteil mehrerer temp. DBSpaces ist die Möglichkeit der Verteilung einer großen temp. Tabelle auf mehrere DBSpaces und damit eine bessere I/O-Leistung bzw. die Verteilung vieler kleiner temp. Tabellen auf mehrere DBSpaces (auch wg. I/O).
Nachteil: ein Zugriff über rowid's in temp. Tabellen ist bei mehreren DBSpaces nicht mehr eindeutig! (wg. der Fragmentierung)