Table Viewer

Browse, filter and edit table data directly

Open a table, filter it, sort it, edit cells in place and see IRIS-specific details other tools never show you.

  • Spalten, Constraints, Indizes, Storage und IRIS-Extent
  • In-Place-Editing in jedem Grid
  • Constraints verifiziert, bevor sie aktiviert werden
  • Storage-Namen als Anker zum Global Browser

Der Table Viewer ist das, was man sieht, wenn man im Server Navigator auf eine Tabelle klickt. Er zeigt alles, was die Datenbank über diese Tabelle kennt — Spalten, Constraints, Indizes, Größen, Storage, Foreign Keys — und er tut es auf einer einzigen Seite, nicht aufgeteilt über ein Dutzend Dialoge. Auf vielen Datenbanken erlaubt er das Bearbeiten direkt im Grid, ohne einen separaten „Zeile bearbeiten"-Dialog zu öffnen, was das Tool für schnelle Daten-Patches verwendbar macht, nicht nur zum Ansehen.

Table Viewer mit dem Data-Tab ausgewählt, zeigt Zeilen einer Tabelle in einem sortierbaren, filterbaren Grid, mit einer Zeile im Bearbeitungsmodus, die Bearbeitungen inline in den Zellen sichtbar
Data, Structure, Constraints, Indexes, Storage — alles auf einer Seite.

Data: Browsen und Bearbeiten im Grid

Das Data-Tab zeigt die Zeilen der Tabelle in einem sortierbaren, filterbaren Grid, mit Paginierung, wenn die Tabelle groß ist. Jede Spalte kann gefiltert werden, indem man in das Filter-Textfeld darunter tippt, und das Grid aktualisiert sich, während man tippt. Sortieren passiert mit einem Klick auf den Spalten-Header.

Auf Datenbanken, die Updates unterstützen (IRIS, Caché, SQL Server, PostgreSQL, MySQL und die meisten anderen), kann jede Zeile direkt im Grid bearbeitet werden. Doppelklicken Sie auf eine Zelle, ändern Sie den Wert, drücken Sie Enter. Die Bearbeitung wird zur Datenbank gesendet, und das Grid aktualisiert sich, um den neuen Wert zu zeigen. Es gibt keinen „Bearbeitungsmodus", der aktiviert werden muss — Zeilen sind immer bearbeitbar, wenn die Datenbank es zulässt.

Das macht das Tool für schnelle Daten-Patches verwendbar: einen Tippfehler in einem Kundennamen beheben, einen Status-Flag von „pending" auf „completed" ändern, eine Test-Zeile mit einem bekannten Wert einfügen, um zu sehen, ob eine Abfrage sie findet. Das sind Operationen, die zu klein sind, um SQL zu schreiben, aber zu häufig, um jedes Mal einen separaten Dialog zu öffnen.

Structure: Spalten, Datentypen, Nullability, Defaults

Das Structure-Tab listet jede Spalte mit ihrem Datentyp, ob sie NULL akzeptiert, ihrem Default-Wert (wenn vorhanden), ob sie berechnet ist, und ob sie Teil des Primärschlüssels ist. Das ist die DDL der Tabelle, lesbar als Tabelle selbst, sodass man sie filtern, sortieren und nach Excel exportieren kann, genau wie Daten.

Spaltenreihenfolge wird beibehalten, wie die Datenbank sie definiert, was manchmal wichtig ist: Einige Systeme speichern Zeilen in der Reihenfolge der Spalten, und das Verständnis der Reihenfolge kann erklären, warum eine Tabelle größer ist als erwartet. Das ist hauptsächlich ein Problem für Column-Store-Datenbanken und für Datenbanken, die Spaltenkompression verwenden, aber es ist wert zu wissen, wenn man Tabellengröße untersucht.

Table Viewer mit dem Structure-Tab ausgewählt, zeigt eine Liste von Spalten mit ihren Datentypen, Nullability, Default-Werten und Primary-Key-Status
Spalten als lesbare Liste, nicht als DDL-Statement.

Constraints: Foreign Keys, Checks, Uniqueness

Das Constraints-Tab listet alle Constraints, die auf der Tabelle definiert sind — Foreign Keys, Check Constraints, Unique Constraints und Not-Null-Constraints. Jede Zeile benennt den Constraint-Typ, die Spalten, die er betrifft, und ob der Constraint aktiviert oder deaktiviert ist.

Für Foreign Keys zeigt das Tab die referenzierte Tabelle und die referenzierten Spalten, sodass man sofort sehen kann, wohin der Schlüssel zeigt, ohne die DDL zu lesen. Das ist nützlich, wenn man Joins zwischen Tabellen schreibt: Man sieht die Foreign Keys, und die Joins schreiben sich fast selbst.

Das Bemerkenswerteste an der Constraints-Ansicht ist, dass sie Constraints verifiziert, bevor sie aktiviert werden. Wenn man versucht, einen Foreign Key Constraint auf einer Tabelle zu aktivieren, die Zeilen hat, die die Regel verletzen, wird IRIS den Constraint ablehnen, und die Fehlermeldung wird die verletzenden Zeilen nicht benennen. SQL DATA LENS läuft zuerst eine Verifikations-Abfrage, zeigt die Zeilen, die fehlschlagen würden, und lässt Sie entscheiden, ob Sie die Zeilen bereinigen, den Constraint ändern oder den Versuch abbrechen.

Indexes: Was verwendet wird und was nicht

Das Indexes-Tab listet jeden Index auf der Tabelle, mit seinem Typ (Clustered, Non-Clustered, Unique, Bitmap), den Spalten, die er abdeckt, seiner Größe und wann er zuletzt verwendet wurde. Das letzte ist am nützlichsten: Ein Index, der seit sechs Monaten nicht verwendet wurde, ist Aufwand ohne Gewinn, und das sollte entweder erklärt werden können oder der Index sollte gelöscht werden.

Die Größenspaltung vergleicht die Index-Größe mit der Tabellengröße, sodass große Indizes oben sortiert werden. Ein Index, der größer ist als die Tabelle selbst, ist nicht unbedingt ein Fehler — Bitmap-Indizes sind oft größer als die Daten, die sie indizieren — aber es ist beachtenswert. Die meisten Tabellen sollten Indizes haben, die kleiner sind als die Daten.

Storage: Wie die Tabelle auf der Festplatte liegt

Das Storage-Tab, spezifisch für IRIS und Caché, zeigt die Globals, in denen eine Tabelle und ihre Indizes tatsächlich gespeichert sind, zusammen mit deren Größen. Das ist der Anker zwischen der SQL-Tabelle und der Global-Speicherstruktur darunter: Man sieht eine Tabelle, die 14 GB groß ist, geht zum Storage-Tab, sieht den Global-Namen, und klickt, um diesen Global im Global Browser zu öffnen.

Die View zerlegt auch, wie viel von der Tabellengröße von den Daten kommt und wie viel von den Indizes kommt. Eine Tabelle, deren Indizes größer sind als die Daten, ist meist eine Geschichte über redundante Indizes, und das ist eine Frage für die Performance-Tools.

Table Viewer mit dem Storage-Tab ausgewählt, zeigt eine Liste von Globals, die eine Tabelle speichern, jede Zeile mit dem Global-Namen, Typ (Data oder Index), und Größe
Von der Tabelle zum Global. Der Global-Name ist ein anklickbarer Anker.

IRIS Extent: Die Extent-Größe und Objekt-ID

Für IRIS und Caché ist es auch ein Extent-Tab, das die Extent-ID der Tabelle, ihre aktuelle Größe (wie viele Objekte), ihre zugewiesene Größe und das Datum der letzten Änderung zeigt. Das ist hauptsächlich nützlich, um zu verifizieren, dass die Extent-Größe mit der erwarteten Zeilenanzahl übereinstimmt — ein Unterschied bedeutet oft, dass Objekte über die Objektschicht geschrieben wurden, aber nicht über SQL freigelegt wurden, oder umgekehrt.

Foreign Keys als anklickbare Anker

Wann immer ein Foreign Key aufgelistet wird, ist die referenzierte Tabelle ein anklickbarer Anker. Klicken Sie, und das Tool öffnet diese Tabelle im Table Viewer. Das ist die gleiche Idee wie die Beziehungslinien im Navigator: Foreign Keys sind Anker, nicht nur Metadaten, also sollten sie sich wie Anker verhalten.

Der Table Viewer ist in jeder Edition verfügbar, einschließlich der Free Edition. Laden Sie SQL DATA LENS herunter und doppelklicken Sie auf eine Zeile, um sie zu bearbeiten, ohne einen Dialog zu öffnen.

See your IRIS data the way it actually is

Download, unzip, connect. Your first namespace is on screen in about three minutes.

Windows 10, 11 and Windows Server (64-bit) · ~140 MB · version 3.24 · full 30-day Pro trial included