[RECORD NAME IS
{ALL[ EXCEPT satzname-1,...] |
satzname-2,...}
[{WITH | WITHOUT}
{LOCATION CHECK | KEYVALUE CHECK}]
]
satzname
Name einer Satzart des angegebenen Schemas.
satzname muss in dem angebenen Realm bzw. in den angegebenen Realms liegen.
ALL
BCHECK prüft alle Satzarten des genannten Schemas, die in den zu prüfenden Realms enthalten sind
ALL EXCEPT satzname-1,...
Bedeutung wie bei ALL; BCHECK schließt aber die aufgeführten Satzarten von der Prüfung aus
satzname-2,...
Namen der Satzarten - einzeln aufgeführt -, die BCHECK prüfen soll
WITH LOCATION CHECK
BCHECK prüft zusätzlich alle Verwaltungsstrukturen, die mit dem Abspeichern einer Satzart zusammenhängen, d.h. in der DBTT die Verweise auf die Sätze. Es findet keine Schlüsselwertprüfung statt.
Bei Satzarten, die mit LOCATION MODE IS CALC definiert sind, prüft BCHECK Folgendes:
- das Ergebnis des Hashverfahrens (nur für Primärseiten und erste Überlaufseiten),
- die Verkettung der Überlaufseiten,
- die interne Struktur der CALC-Tabellen und
- die Verweise der CALC-Tabelleneinträge auf die Sätze
WITH KEYVALUE CHECK
BCHECK prüft zusätzlich alle Schlüsselfelder eines Satzes, die in irgend einem Zugriffspfad vorkommen. WITH KEYVALUE CHECK schließt die Funktionalität von WITH LOCATION CHECK mit ein.
WITH KEYVALUE CHECK ist ab UDS/SQL V2.6 der Standardwert.
WITHOUT LOCATION CHECK
BCHECK prüft lediglich lokale Informationen der Satzarten, d.h. er prüft, ob die Satzarten in der DBTT plausibel sind und ob die Satzlängen mit den Angaben in der SIA übereinstimmen, erzeugt aber keine Prüfsätze.
WITHOUT KEYVALUE CHECK
Diese Klausel ist nicht erlaubt.
Mit der RECORD-Anweisung nennen Sie BCHECK die zu prüfenden Satzarten. Sie können sie an beliebiger Stelle, beliebig oft, nach den Steueranweisungen angeben. Doppelte Angaben ignoriert BCHECK.
Hinweise zu CALC-Keys:
Existieren in einem Realm zwei oder mehr CALC-Keys (indirekte CALC-Keys oder CALC-Search-Keys) mit gleicher Schlüssellänge, so kann BCHECK diese nicht global prüfen, falls Sie nicht alle CALC-Keys in diesem Realm mit dieser Schlüssellänge angegeben haben.Wählen Sie einen solchen CALC-Key zur Prüfung aus, so lehnt BCHECK dessen globale Prüfung ab, führt aber für den betreffenden Hashbereich eine lokale Prüfung durch. Da er zu dieser lokalen Prüfung alle CALC-Seiten heranzieht, die CALC-Keys von der Länge des zu prüfenden CALC-Keys enthalten, kann es vorkommen, dass BCHECK lokale Konsistenzfehler in CALC-Seiten meldet, die zu keinem von Ihnen angegebenen CALC-Key gehören.
Die Schlüsselwertprüfung indirekter CALC-Tabellen für Konsistenzkriterium 9 kann im Allgemeinen ebenfalls nicht satzartgenau erfolgen. Um zu vermeiden, dass in einer konsistenten Datenbank - insbesondere im Summing-Modus - vermeintliche Inkonsistenzen ausgewiesen werden, wird empfohlen, immer alle Satzarten in die Prüfung einzubeziehen.
In der Sortierungsprüfung können im Allgemeinen Konsistenzfehler bei CALC-Keys nicht lokalisiert werden. BCHECK kann nur den betroffenen Realm, RSQ und Schlüssellänge feststellen.
Das Auftreten von nicht erlaubten Duplikaten eines CALC-Keys in verschiedenen Seiten einer Hash-Überlaufkette kann BCHECK nicht feststellen.
Hinweise zur Schlüsselwertprüfung:
Fehlende SET- bzw. KEY-Klauseln, in denen eine zu prüfende Satzart Member ist, führen zum Unterlassen der Prüfung für den betreffenden Zugriffspfad, insbesondere auch zum Unterlassen einer gewünschten Schlüsselwertprüfung.
Um Schlüsselfelder in einem Satz zu positionieren, benötigt BCHECK ein Subschema, das die betroffene Satzart bzw. die betroffene Membersatzart samt Set vollständig enthält. Sollen Schlüsselwerte für eine Satzart geprüft werden, die in keinem Subschema vorkommen, so wird eine Warnung ausgegeben und die Prüfung in den betroffenen Satzarten wird dann ohne Schlüsselwertprüfung durchgeführt.
Die Metadaten zur Schlüsselwertprüfung werden immer für alle Satzarten erzeugt. Das hat zur Folge, dass die Warnung möglicherweise auch dann ausgegeben wird, wenn eine der Satzarten nicht geprüft werden soll.
Hinweise zu verteilbaren Listen:
Bei der Prüfung eines indirekten CALC-Keys oder eines CALC-Search-Keys, der zu einer verteilbaren Liste gehört, müssen immer alle Realms angegeben werden, auf denen die Sätze der zugehörigen Membersatzart liegen können.