Wenn Sie Systemtabellen auswerten wollen, beachten Sie folgende Hinweise:
·
Beim Auswerten von Systemtabellen werden
nur Informationen über solche Objekte ausgegeben, für die der aktuelle
Benutzer Eigentümer ist oder zumindest ein Privileg erhalten hat (der Benutzer
kennt also das Objekt). Dieses Berechtigungskonzept kann dazu führen, dass die
für den aktuellen Benutzer sichtbare Tabellendefinition von der tatsächlichen
Definition abweicht.
Die Definition einer View-Tabelle ist nur für den Eigentümer der View-Tabelle
sichtbar.
· Die Bedingungen bei der Abfrage der Systemtabelle(n) sollten möglichst genau das gewünschte Objekt beschreiben. Die Angabe des Eigentümers des Objektes beschleunigt die Suche nach den entsprechenden Informationen erheblich.
· Bei der Angabe der Suchanweisungen sollten möglichst Gleichheitsbedingungen angegeben werden. Die Angabe von LIKE-Bedingungen ist ungünstiger.
·
Aus Performance-Gründen sollte bei der
Abfrage von Informationen aus Systemtabellen nicht nur die SQL-Anweisung
SELECT * verwendet werden, sondern die Anzahl der Ausgabespalten auf die
gewünschten Spalten eingeschränkt werden.
Gerade bei Abfrage von Statistikinformationen aus Systemtabellen werden bei
Anforderung bestimmter Ausgabespalten zusätzliche Aktionen zur Ermittlung
dieser Spaltenwerte im Datenbanksystem durchgeführt. Daher sollte Sie diese
Spalteninformation nur dann ermitteln lassen, wenn diese auch wirklich
benötigt werden.
·
Einfache Bezeichner werden immer in
Großbuchstaben in der Datenbankinstanz abgelegt, unabhängig davon wie sie bei
der Datendefinition angegeben werden.
Wenn Sie einfache Bezeichner in einer Suchbedingung verwenden, müssen die für
die Angabe von Literalen üblichen einfachen Hochkomma angegeben werden.
Aus Performance-Gründen sollte die Umwandlung eines einfachen Bezeichners in
Großbuchstaben nicht erst beim Ausführen der SQL-Anweisung durch das
Datenbanksystem erfolgen, sondern Sie sollten einfache Bezeichner sofort in
Großbuchstaben in der Suchbedingung angeben.
CREATE TABLE mytab (…)
SELECT … FROM … WHERE … = 'MYTAB'
·
Spezielle Bezeichner werden bei der
Datendefinition in doppelten Hochkomma angegeben. Sie werden in der
Datenbankinstanz so abgelegt, wie sie angegeben wurden, also nicht in
Großbuchstaben umgewandelt.
Wenn Sie spezielle Bezeichner in einer Suchbedingung verwenden, müssen Sie die
für die Angabe von Literalen üblichen einfachen Hochkomma
angegeben.
CREATE TABLE "this is mytab" (…)
SELECT … FROM … WHERE … = 'this is
mytab'
Siehe auch: