Wie ermittelt man ob noch offene in-Place Alter Pages existieren
Wie ermittelt man ob noch offene in-Place Alter Pages existieren
Führt man 'alter table ...' Statements aus und verändert damit die Struktur von Datenbank-Tabellen, so entstehen sogenannte in-place Alter's.
In alten Versionen wurden beim alter-Statement sofort alle Daten- und/oder Indexpages der Tabelle auf den neuen Stand gebracht. Das führte dazu, das ein alter table eine langwierige Operation war. Es musste geplant werden und man benötigte, auf Datenbanken mit logging, sehr viel Platz in den log. Logs.
Inzwischen kann Informix damit umgehen, das innerhalb einer Tabelle Daten- oder Indexpages verschiedener Versionen der Tabelle existieren. Solche Pages werden beim Schreiben von Rows in der Page entsprechend auf die aktuelle Version gebracht.
Normalerweise gibt es keine Nachteile durch dieses Verhalten. Kommt es aber zur Migration auf eine neue Informix-Version, liest man immer wieder in den Migrationshinweisen, dass man ausstehende in-place-Alter durch dummy-updates beseitigen soll.
Aber auf welche Tabellen muss man jetzt solche Dummy-Updates machen? Einfach alle Tabellen zu updaten würde zwar helfen, führt aber zu einer meist unzumutbar langen Laufzeit und hohen Platzbedarf in den Logfiles.
Wie man ermittelt, welche Tabellen Dummy-Updates benötigen, beschreibt dieser Artikel: