Tabellenreduzierung

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 3 Minuten Lesedauer
  • Bei der Tabellenreduzierung wird eine Hierarchie zugehöriger Tabellen als eine Tabelle in einer relationalen Datenbank gespeichert.

    Erweiterungsmodelle

    Tabellen wie „Aufgabe“ und „Basiskonfigurationselement“ [cmdb] haben eine Hierarchie zugehöriger Tabellen, in der eine oder mehrere untergeordnete Tabellen aus einer übergeordneten Tabelle hervorgehen. Das System bietet diese Erweiterungsmodelle zum Speichern einer Tabellenhierarchie in einer relationalen Datenbank.

    Tabelle : 1. Verfügbare Erweiterungsmodelle
    Erweiterungsmodell Tabellen reduzieren?
    Tabelle pro Klasse Nein
    Tabelle pro Hierarchie Ja
    Tabelle pro Partition Ja

    Das Erweiterungsmodell hat keinen Einfluss darauf, wie die Tabellen in der Instanz angezeigt werden oder funktionieren. Alle Tabellenfunktionen, einschließlich Datenbankansichten, bleiben vom Erweiterungsmodell unverändert.

    Tabelle pro Klasse

    Das Erweiterungsmodell „ Tabelle pro Klasse “ speichert jede Tabelle der Hierarchie in einer eigenen physischen Tabelle in der relationalen Datenbank. Jede physische Tabelle verwendet das Tabellenpräfix der Quelltabelle, in der jeweils eine andere Klasse von Datensätzen gespeichert wird. Ein Beispiel für das Erweiterungsmodell „Tabelle pro Klasse“ ist die Tabelle „Asset“ [alm_asset] und ihre untergeordneten Tabellen: Hardware [alm_hardware], Verbrauchsgut [alm_consumable], Facility [alm_facility] und Softwarelizenz [alm_license]. Die übergeordnete Tabelle der Hierarchie, Asset, speichert eine Kopie jedes Datensatzes in den untergeordneten Tabellen.

    Um Datensätze im Erweiterungsmodell „Tabelle pro Klasse“ zu finden, fragt das System Datensätze aus mehreren Tabellen ab und verknüpft die Ergebnisse. Beispiel: Bei der Suche nach Hardware in einer zugehörigen Einrichtung muss das System Ergebnisse aus den Tabellen „Hardware“, „Einrichtung“ und „Asset“ verknüpfen.

    Tabellenverknüpfungen verursachen einen Leistungsengpass in relationalen Datenbanken. Je mehr Klassen eine Abfrage enthält, desto schlechter ist die Abfrageleistung. Daher weist jede Abfrage nach Datensätzen von oben in der Tabellenhierarchie die schlechteste Leistung auf, da alle untergeordneten Tabellen verknüpft werden müssen.

    Das System verwendet beim Erstellen von Tabellen standardmäßig das Erweiterungsmodell Tabelle pro Klasse. Die meisten Systemtabellen verwenden auch das Erweiterungsmodell „Tabelle pro Klasse“, da es keinen Leistungsvorteil gibt, sie zu reduzieren.

    Tabelle pro Hierarchie

    Das Erweiterungsmodell „ Tabelle pro Hierarchie “ speichert eine gesamte Tabellenhierarchie in einer einzelnen flachen physischen Tabelle in der relationalen Datenbank. Die physische Tabelle wird nach der übergeordneten Tabelle der Hierarchie benannt, z. B. „Aufgabe“. Die physische Tabelle enthält alle Datensätze der Tabellenhierarchie und weist jeder untergeordneten Tabelle der Hierarchie einen Klassennamenspaltenwert zu. Das System verwendet den Namen der Quelltabelle als Wert für den Klassennamen. Zum Beispiel können Aufgabendatensätze Klassennamen wie „Change“, „Incident“ oder „Problem“ haben.

    Um Datensätze in einer Tabellenhierarchie zu finden, fragt das System die physische Tabelle ab und verwendet die Klassennamenspalte, um die Ergebnisse einzuschränken. Da für solche Abfragen keine Verknüpfung von Ergebnissen aus mehreren Tabellen erforderlich ist, bietet das System eine bessere Suchleistung.

    Das System verwendet das Erweiterungsmodell „Tabelle pro Hierarchie“ für die Aufgabentabellenhierarchie in MySQL-Datenbanken. Andere Tabellen verwenden das Erweiterungsmodell „Tabelle pro Klasse“, da es keinen Leistungsvorteil gibt, sie zu reduzieren. Wenden Sie sich an den technischen Support, um Tabelle pro Hierarchie in einer Oracle-Datenbank zu verwenden.

    Tabelle pro Partition

    Das Erweiterungsmodell „ Tabelle pro Partition “ speichert eine gesamte Tabellenhierarchie in einer einzelnen flachen logischen Tabelle in der relationalen Datenbank. Jede logische Tabelle kann mehrere physische Speichertabellen haben, die als Partitionen bezeichnet werden. Jede Partition optimiert die für eine physische Tabelle verfügbaren Datenbankressourcen, z. B. Spaltenanzahl, Indexanzahl und Zeilengröße. Das System fügt eine Partition hinzu, wenn die logische Tabelle zusätzliche relationale Datenbankressourcen benötigt.

    Jede logische Tabelle ist nach der übergeordneten Tabelle der Hierarchie benannt, und jede unterstützende physische Partition besteht aus dem logischen Namen und einem Partitionsnamen. Zum Beispiel beginnt die Tabelle „Basiskonfigurationselement“ [cmdb] als logische Tabelle ohne Partitionen. Angenommen, Ihre Hardwarekonfigurationselemente verbrauchen so viele Datenbankressourcen, dass das System eine Partition mit dem Namen cmdb$par1 erstellt, um sie zu speichern. Später könnten Computerkonfigurationselemente genügend Datenbankressourcen verbrauchen, um die Erstellung einer zweiten Partition mit dem Namen cmdb$par2 durch das System zum Speichern dieser Datensätze zu rechtfertigen.

    Innerhalb jeder logischen Tabelle weist das System jeder untergeordneten Tabelle der Hierarchie einen Klassennamenspaltenwert zu. Beispielsweise gibt es in der logischen Tabelle „Base Configuration Item“ Datensätze mit Klassennamen für Anwendung, Computer und IP-Router. Das System weist auch jeder untergeordneten Tabelle der Hierarchie einen zweistelligen Klassenpfadwert zu. Der Klassenpfad basiert auf dem Tabellenspeicherort in der Hierarchie. Beispielsweise kann die übergeordnete Klasse „Hardware“ einen Klassenpfad wie /!!/!D und die untergeordnete Klasse „Computer“ einen Klassenpfad wie /!!/!D/!!haben. .

    Um Datensätze im Erweiterungsmodell „Tabelle pro Partition“ zu finden, fragt das System die logische Tabelle und ihre Partitionen ab und verwendet die Klassenpfadspalte, um die Ergebnisse einzuschränken. Da diese Abfragen keine Verknüpfung von Ergebnissen aus mehreren Tabellen erfordern, bietet das System eine bessere Suchleistung. Darüber hinaus reduziert der Klassenpfad die Gesamtzahl der zu durchsuchenden Datensätze, was die Suchleistung weiter verbessert.

    Das System verwendet das Erweiterungsmodell „Tabelle pro Partition“ für die Tabellenhierarchie Basiskonfigurationselement [cmdb] in MySQL-Datenbanken. Wenden Sie sich an den technischen Support, um Tabelle pro Partition in einer Oracle-Datenbank zu verwenden.