Mobile-Menu-Trenner
Hamburgermenu_icon
Hamburger-X_icon Copy
Hamburger-X_icon Copy
Group

Db2 Tipp – Basics: Default Tablespace

ask-an-expert

Heute teile ich gerne etwas Grundlegendes in Sachen Db2 mit Ihnen, das nicht zwangsweise trivial ist – das ist auch dann der Fall, wenn es um die folgende Frage geht:

In welchem Tabellenbereich wird eine Tabelle abgelegt, die beim CREATE TABLE ohne „…IN tablespace“ Klausel angelegt wird – wie im folgendem Beispiel:

CREATE TABLE test (ID integer not null, TEXT varchar(50))

Natürlich kann man es im Nachhinein über eine Abfrage des Systemkatalogs herausfinden – wie im Folgenden gezeigt – doch ist es wichtig, diese Logik zu kennen, um planen zu können.

So kann man evtl. Tabellenbereiche anlegen, die solche „schlampig“ oder unvollständig angelegten Objekte auffangen, um diese dann gezielt nachzuverfolgen.

Die Db2 Dokumentation ist in diesem Falle die erste Anlaufstelle. Es stellt sich jedoch schnell heraus, dass die Suche nicht einfach ist – selbst bei Google findet man eher die Standard-Tabellenbereiche, die beim CREATE DATABASE erzeugt werden.
Mit etwas mehr Recherche kann man dann schon einiges finden, vor allem in der langen Doku zum CREATE TABLE  – schauen Sie bei der Sektion „IN tablespace-name,…“.

Dort stellt man fest, dass es von der Pagesize und den Rechten abhängt und der Rest – falls es also mehrere Optionen gibt – vom Database Manager bestimmt wird.
Das ist aus meiner Sicht unbefriedigend – deshalb haben wir versucht im Labor nachzufragen und vor allem zu testen.

Das folgende Bild zeigt die Ergebnisse dieser Bemühungen:

Mit etwas Planung lässt sich also steuern, wohin die Tabellen gelegt werden, bei denen kein expliziter Tablespace angegeben wurde.
Die Empfehlung lautet somit nach dem CREATE DATABASE einen Tabellenbereich – je in der Datenbank verwendeter Pagesize – anzulegen, der als Auffangbecken dient und idealerweise sprechend benannt ist, z. B. TS_DEFAULT_4K.

Hinweis: Wird der selbst angelegte Tablespace mit der kleinsten TBSPACEID gedroppt und dann ein neuer Tablespace angelegt, bekommt dieser die kleinste TBSPACEID – es werden die von Db2 erzeugten Tablespace IDs also direkt wiederverwendet.

Können Sie dies durch Ihre Prozesse von vornherein verhindern – umso besser – dann haben Sie ein Problem weniger – oder gibt es doch auch bei Ihnen Ausnahmen? 😉

Wir sind der Partner an Ihrer Seite

Wir setzen die Db2 seit vielen Jahren bei unseren Kunden ein und geben die bewährten Vorgehensweisen, die aus diesen Projekten resultieren, gerne an Sie weiter. Von unserem Expertenteam erhalten Sie Unterstützung, angefangen von der Beratung bis zum Betrieb Ihrer Datenmanagement-Anwendungen. Haben Sie Fragen und Interesse an einem persönlichen Austausch, dann schicken Sie mir dazu bitte eine kurze Mail an kontakt@mip.de. Ich freue mich auf Ihre Anfrage.

Michael

Ihr Michael Tiefenbacher

Principal Consultant

Das könnte Sie auch noch interessieren

Wissen & Praxis

Db2 Tipp – SQL OLAP Funktionen

OLAP-Funktionen sind sehr praktische SQL-Funktionalitäten, die ich oft und gerne in Projekten verwende und deshalb

Eine Starke Marke

mip Flur
Die Marke mip steht für über 35 Jahre Erfahrung als Komplettanbieter für Analyselösungen zur optimalen Nutzung Ihres Datenpotentials.
mip Flur