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, daß 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'