DE112019001480B4 - Automatisches Optimieren der Ressourcennutzung in einemZieldatenbankverwaltungssystem zum Erhöhen der Arbeitslastleistung - Google Patents

Automatisches Optimieren der Ressourcennutzung in einemZieldatenbankverwaltungssystem zum Erhöhen der Arbeitslastleistung Download PDF

Info

Publication number
DE112019001480B4
DE112019001480B4 DE112019001480.3T DE112019001480T DE112019001480B4 DE 112019001480 B4 DE112019001480 B4 DE 112019001480B4 DE 112019001480 T DE112019001480 T DE 112019001480T DE 112019001480 B4 DE112019001480 B4 DE 112019001480B4
Authority
DE
Germany
Prior art keywords
computer
dbms
workload
tables
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112019001480.3T
Other languages
English (en)
Other versions
DE112019001480T5 (de
Inventor
Sowmya Kameswaran
Peter Bendel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112019001480T5 publication Critical patent/DE112019001480T5/de
Application granted granted Critical
Publication of DE112019001480B4 publication Critical patent/DE112019001480B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3414Workload generation, e.g. scripts, playback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

Abstract

Durch einen Computer implementiertes Verfahren zum Laden eines Datensatzes in ein Ziel-Datenbankverwaltungssystem (DBMS) von einem Quell-DBMS, wobei das durch einen Computer implementierte Verfahren aufweist:Sammeln, durch einen Computer, von Echtzeit-Statistiken von dem Quell-DBMS, die Tabellengrößen- und Tabellenänderungsraten-Informationen beinhalten;Ermitteln, durch den Computer, von Zentraleinheit-Gesamtkosten (CPU-Gesamtkosten) für ein Laden des Datensatzes in das Ziel-DBMS mithilfe von gesammelten Größen- und Änderungsraten-Informationen, die Tabellen auf dem Quell-DBMS entsprechen, die zum Auslagern in das Ziel-DBMS auswählbar sind, und Arbeitslast-Kosteneinsparungen, die durch ein Ausführen einer oder mehrerer Arbeitslasten in dem Ziel-DBMS auf Grundlage einer Gruppe einer oder mehrerer Ladestrategien entstehen, wobei die Gruppe von Ladestrategien aus einer Gruppe ausgewählt wird, die aus einer UNLOAD-gestützte Auffrischungsstrategie und einer inkrementellen Aktualisierungsstrategie besteht;Vergleichen der CPU-Gesamtkosten durch den Computer mit den Arbeitslast-Kosteneinsparungen jeder Ladestrategie aus der Gruppe von Ladestrategien;Auswählen einer optimalen Ladestrategie aus der Gruppe von Ladestrategien durch den Computer auf Grundlage des Vergleichens der CPU-Gesamtkosten mit den Arbeitslast-Kosteneinsparungen jeder Ladestrategie; undautomatisches Laden des Datensatzes in das Ziel-DBMS vom Quell-DBMS durch den Computer gemäß der gewählten optimalen Ladestrategie zum beschleunigten Ausführen der einen oder mehreren Arbeitslasten.

Description

  • Technisches Gebiet
  • Die Offenbarung bezieht sich im Allgemeinen auf Datenbankverwaltungssysteme und im Besonderen auf ein automatisches Optimieren von Computerarbeitsspeicher- und Zentraleinheitsressourcen, die von einem Zieldatenbankverwaltungssystem verwendet werden, um die Arbeitslastleistung bei beschleunigten Analyseabfragen zu erhöhen.
  • HINTERGRUND
  • Eine Datenbank ist eine organisierte Sammlung von Daten. Ein Datenbankverwaltungssystem (DBMS) ist eine Systemsoftware zum Erstellen und Verwalten einer Datenbank. Ein DBMS ermöglicht es Benutzern, Daten in einer Datenbank zu erstellen, zu lesen, zu aktualisieren und zu löschen. Mit anderen Worten, ein DBMS dient als eine Schnittstelle zwischen einer Datenbank und Benutzern oder Anwendungen und stellt sicher, dass Daten konsistent organisiert sind und leicht zugänglich bleiben.
  • Ein DBMS verwaltet die Daten, die Datenbank-Steuerkomponente, die den Zugriff auf die Daten ermöglicht, und das Datenbankschema, das die logische Struktur der Datenbank definiert. Diese Elemente tragen dazu bei, Gleichzeitigkeit, Sicherheit, Datenintegrität und einheitliche Verwaltungsverfahren bereitzustellen. Zu typischen Datenbankverwaltungsaufgaben, die durch das DBMS unterstützt werden, gehören Änderungsverwaltung, Leistungsüberwachung sowie Datensicherung und - wiederherstellung. Viele Datenbankverwaltungssysteme (DBMS) können auch automatische Rückabwicklungen, Neustarts und Wiederherstellungen sowie eine Protokollierung von Aktivitäten durchführen.
  • In einem relationalen DBMS werden Datensätze in Tabellen gespeichert. Datensätze werden häufig als Zeilen bezeichnet, und Datensatzattribute werden Spalten genannt. Eine Datenbank ist im Allgemeinen nicht zwischen verschiedenen DBMS portierbar, doch können verschiedene DBMS mithilfe von Standards, z.B. Structured Query Language (SQL), Open Database Connectivity (ODBC) oder Java Database Connectivity (JDBC), miteinander interagieren, damit eine einzelne Anwendung mit mehr als einem DBMS arbeiten kann.
  • Der technische Fortschritt führt zu wachsenden Datenmengen auf allen Gebieten. Um nützliche Einblicke zu gewinnen, verlangen Benutzer die Fähigkeit, Echtzeit-Analysen großer Datenmengen innerhalb bestimmter Bereiche durchzuführen. Die Echtzeit-Datenanalyse erfordert jedoch teure Abfrageoperationen, die auf Zentraleinheiten (CPUs) sehr zeitaufwändig sind. Darüber hinaus werden in herkömmlichen DBMS CPU-Ressourcen in der Regel für Transaktionsarbeitslasten und nicht für Analysearbeitslasten eingesetzt.
  • In der Technik besteht somit Bedarf, das vorstehend beschriebene Problem zu lösen.
  • Die US 2016 / 0 224 579 A1 offenbart ein Verfahren zur Verteilung von Tabellen auf einen Cluster von Knoten, die von einem Datenbankmanagementsystem (DBMS) verwaltet werden. Mehrere Datenplatzierungsschemata werden auf der Grundlage eines Abfrage-Workload-Sets evaluiert, um ein Datenplatzierungsschema für den Cluster von Knoten auszuwählen. Tabellen, die in Join-Operationen im Workload-Set verwendet werden, werden für die Bewertung der Datenplatzierungsschemata ausgewählt. Die Abfrageausführungskosten für die Arbeitslastmenge werden auf der Grundlage einer Schätzung der Abfrageausführungskosten für jedes Datenplatzierungsschema für die Tabellen erstellt. Das Datenplatzierungsschema, das die geringsten geschätzten Ausführungskosten für die Arbeitslastmenge aufweist, wird als Datenplatzierungsschema für den vom DBMS verwalteten Knotencluster ausgewählt.
  • Die US 2015 / 0 106 578 A1 offenbart Systeme, Verfahren und Vorrichtungen zum Überwachen von Datentransaktionen in einem Datenspeichersystem, wobei das Datenspeichersystem in Netzwerkkommunikation mit einer Vielzahl von Speicherressourcen steht und mindestens ein Datenanalysemodul und ein Protokollierungsmodul umfasst und an dem Datenanalysemodul mindestens eine Datentransaktion für Daten in dem Datenspeichersystem empfängt, wobei jede Datentransaktion mindestens ein datenbezogenes Merkmal aufweist; Speichern des mindestens einen datenbezogenen Merkmals und eines Datentransaktionsidentifikators, der die Datentransaktion mit dem zugehörigen mindestens einen datenbezogenen Merkmal in dem Protokollierungsmodul in Beziehung setzt, in dem Protokollierungsmodul; Analysieren mindestens eines datenbezogenen Merkmals, das sich auf eine erste Datentransaktion bezieht, in dem Datenanalysemodul, um zu bestimmen, ob die erste Datentransaktion mindestens ein datenbezogenes Merkmal mit anderen Datentransaktionen teilt; und, in Fällen, in denen die erste Datentransaktion mindestens ein datenbezogenes Merkmal mit mindestens einer anderen Datentransaktion teilt, logisches Verknüpfen der ersten Datentransaktion mit den anderen Datentransaktionen.
  • Die US 9 910 861 B2 offenbart ein Verfahren, eine Vorrichtung und ein System für die automatisierte Verwaltung des Lebenszyklus von Informationen unter Verwendung von Niedrigzugriffsmustern in einem Datenbankverwaltungssystem. Ein Benutzer oder die Datenbank kann Richtliniendaten speichern, die eine Archivierungsaktion definieren, wenn eine Aktivitätsniveau-Bedingung für ein oder mehrere Datenbankobjekte erfüllt ist. Die Archivierungsaktionen können Komprimierung, Datenverschiebung und andere Aktionen umfassen, um das Datenbankobjekt in einer geeigneten Speicherebene für eine Lebenszyklusphase des Datenbankobjekts zu platzieren. Die Aktivitätsniveau-Bedingung kann festlegen, dass das Datenbankobjekt ein Niedrigzugriffsmuster erfüllt, optional für einen Mindestzeitraum. Verschiedene Kriterien, einschließlich der Zugriffsstatistiken für das Datenbankobjekt und der Kostencharakteristiken der aktuellen und der angestrebten Komprimierungsebenen oder Speicherebenen, können berücksichtigt werden, um zu bestimmen, ob die Aktivitätsniveau-Bedingung erfüllt ist. Die Richtlinien können auf einer einstellbaren periodischen Basis ausgewertet werden und können einen Aufgabenplaner für minimale Leistungsauswirkungen verwenden.
  • Die US 2017 / 0 147 672 A1 offenbart Techniken zur Bestimmung der Datenreplikationskosten für einen Datenserver. In einem Beispiel umfasst ein Verfahren zur Schätzung der Datenreplikationskosten den Empfang einer Identifikation einer Quelltabelle und einer Identifikation einer Zieltabelle für die Datenreplikation. Das Verfahren umfasst ferner den Empfang einer Auswahl eines Datenreplikationsschemas, das für die Replikation der Daten verwendet werden soll. Ein Kalkulationssystem, das das Verfahren implementiert, bestimmt die Datenreplikationskosten auf der Grundlage von Konvertierungskosten für die Konvertierung der Daten von der Quelltabelle in die Zieltabelle und von Transferkosten für den Transfer der Daten von der Quelltabelle in die Zieltabelle. Das Kalkulationssystem teilt die Datenreplikationskosten einem Administrator mit.
  • Die US 2018 / 0 101 567 A1 offenbart einen Mechanismus zur Erzeugung statistischer Informationen zur Abfrageoptimierung in einem Datenverarbeitungssystem. Der Mechanismus umfasst eine erste Datenbankmaschine, die einen aktuellen ersten Datensatz verwaltet, der gerade gespeichert wird, und eine zweite Datenbankmaschine, die einen zweiten Datensatz verwaltet. Der zweite Datensatz wird aus früheren ersten Datensätzen oder aus den früheren ersten Datensätzen und dem aktuellen ersten Datensatz erzeugt, wobei die früheren ersten Datensätze Datensätze sind, die zuvor von der ersten Datenbankmaschine verwaltet wurden. Das erste Datenbankmodul empfängt eine Datenbankabfrage zum Zugriff auf den ersten Datensatz, wobei die Datenbankabfrage ein oder mehrere Attribute des ersten Datensatzes betrifft. Die erste Datenbankmaschine erzeugt einen Abfrageausführungsplan für die Datenbankabfrage auf dem ersten Datensatz unter Verwendung gesammelter statistischer Informationen über mindestens den zweiten Datensatz. Die erste Datenbankmaschine verarbeitet die Datenbankabfrage gemäß dem Abfrageausführungsplan.
  • KU RZDARSTELLU NG
  • Zu den der Erfindung zugrundeliegenden Aufgaben zählt das Bereitstellen eines Verfahrens zum Laden eines Datensatzes von einem Quell-DBMS in ein Ziel-DBMS, das eine höhere Arbeitslastleistung bei beschleunigten Analyseabfragen ermöglicht. Die der Erfindung zugrundeliegenden Aufgaben werden jeweils mit den Merkmalen der unabhängigen Patentansprüche gelöst. Ausführungsformen der Erfindung sind Gegenstand der abhängigen Patentansprüche.
  • Unter einem ersten Aspekt betrachtet, stellt die vorliegende Erfindung ein durch einen Computer implementiertes Verfahren zum Laden eines Datensatzes von einem Quell-Datenbankverwaltungssystem (Quell-DBMS) in ein Ziel-DBMS bereit, um die Arbeitslastleistung zu erhöhen und die Ressourcennutzung zu verringern, wobei das durch einen Computer implementierte Verfahren aufweist: Ermitteln der Zentraleinheit-Gesamtkosten (CPU-Gesamtkosten) durch einen Computer für ein Laden des Datensatzes in das Ziel-DBMS mithilfe einer Größe und einer Änderungsrate von Tabellen, die zum Auslagern in das Ziel-DBMS auswählbar sind, und der Arbeitslast-Kosteneinsparungen, die durch Ausführen einer oder mehrerer Arbeitslasten in dem Ziel-DBMS auf Grundlage einer Gruppe einer oder mehrerer Ladestrategien entstehen; Vergleichen der CPU-Gesamtkosten durch den Computer mit den Arbeitslast-Kosteneinsparungen jeder Ladestrategie aus der Gruppe von Ladestrategien; Auswählen einer optimalen Ladestrategie aus der Gruppe von Ladestrategien durch den Computer auf Grundlage eines Vergleichens der CPU-Gesamtkosten mit den Arbeitslast-Kosteneinsparungen jeder Ladestrategie; und automatisches Laden des Datensatzes vom Quell-DBMS in das Ziel-DBMS durch den Computer gemäß der gewählten optimalen Ladestrategie zum beschleunigten Ausführen der einen oder mehreren Arbeitslasten, wodurch die Arbeitslastleistung erhöht und die CPU-Kosten verringert werden.
  • Unter einem weiteren Aspekt betrachtet, stellt die vorliegende Erfindung ein Computersystem zum Laden eines Datensatzes von einem Quell-Datenbankverwaltungssystem (Quell-DBMS) in ein Ziel-DBMS bereit, um die Arbeitslastleistung zu erhöhen und die Ressourcennutzung zu verringern, wobei das Computersystem aufweist: ein Bussystem; eine Speichereinheit, die mit dem Bussystem verbunden ist, wobei die Speichereinheit Programmanweisungen speichert; und einen mit dem Bussystem verbundenen Prozessor, wobei der Prozessor die Programmanweisungen ausführt, um: Zentraleinheit-Gesamtkosten (CPU-Gesamtkosten) für ein Laden des Datensatzes in das Ziel-DBMS mithilfe einer Größe und einer Änderungsrate von Tabellen, die zum Auslagern in das Ziel-DBMS auswählbar sind, und Arbeitslast-Kosteneinsparungen, die durch Ausführen einer oder mehrerer Arbeitslasten in dem Ziel-DBMS auf Grundlage einer Gruppe einer oder mehrerer Ladestrategien entstehen, zu ermitteln; die CPU-Gesamtkosten mit den Arbeitslast-Kosteneinsparungen jeder Ladestrategie aus der Gruppe von Ladestrategien zu vergleichen; eine optimale Ladestrategie aus der Gruppe von Ladestrategien auf Grundlage eines Vergleichens der CPU-Gesamtkosten mit den Arbeitslast-Kosteneinsparungen jeder Ladestrategie auszuwählen; und den Datensatz vom Quell-DBMS in das Ziel-DBMS gemäß der gewählten optimalen Ladestrategie zum beschleunigten Ausführen der einen oder mehreren Arbeitslasten automatisch zu laden, wodurch die Arbeitslastleistung erhöht und die CPU-Kosten gesenkt werden.
  • Unter einem weiteren Aspekt betrachtet, stellt die vorliegende Erfindung ein Computerprogrammprodukt zum Laden eines Datensatzes von einem Quell-Datenbankverwaltungssystem (Quell-DBMS) in ein Ziel-DBMS bereit, um die Arbeitslastleistung zu erhöhen und die Ressourcennutzung zu verringern, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium aufweist, das durch eine Verarbeitungsschaltung lesbar ist und Anweisungen zum Ausführen durch die Verarbeitungsschaltung speichert, um ein Verfahren zum Durchführen der Schritte der Erfindung durchzuführen.
  • Unter einem weiteren Aspekt betrachtet, stellt die vorliegende Erfindung ein Computerprogramm bereit, das auf einem durch einen Computer lesbaren Medium gespeichert ist und in den internen Speicher eines digitalen Computers geladen werden kann, wobei das Computerprogramm Software-Codeteile aufweist, wenn das Programm auf einem Computer ausgeführt wird, um die Schritte der Erfindung durchzuführen.
  • Gemäß einer veranschaulichenden Ausführungsform wird ein durch einen Computer implementiertes Verfahren zum Laden eines Datensatzes von einem Quell-Datenbankverwaltungssystem (Quell-DBMS) in ein Ziel-DBMS bereitgestellt, um die Arbeitslastleistung zu erhöhen und die Ressourcennutzung zu verringern. Ein Computer ermittelt Zentraleinheit-Gesamtkosten (CPU-Gesamtkosten) für ein Laden des Datensatzes in das Ziel-DBMS mithilfe einer Größe und einer Änderungsrate von Tabellen, die zum Auslagern in das Ziel-DBMS auswählbar sind, und Arbeitslast-Kosteneinsparungen, die durch Ausführen einer oder mehrerer Arbeitslasten in dem Ziel-DBMS auf Grundlage einer Gruppe einer oder mehrerer Ladestrategien entstehen. Der Computer vergleicht die CPU-Gesamtkosten mit den Arbeitslast-Kosteneinsparungen jeder Ladestrategie aus der Gruppe von Ladestrategien. Der Computer wählt eine optimale Ladestrategie aus der Gruppe von Ladestrategien auf Grundlage eines Vergleichens der CPU-Gesamtkosten mit den Arbeitslast-Kosteneinsparungen jeder Ladestrategie aus. Der Computer lädt automatisch den Datensatz vom Quell-DBMS in das Ziel-DBMS gemäß der gewählten optimalen Ladestrategie zum beschleunigten Ausführen der einen oder mehreren Arbeitslasten, wodurch die Arbeitslastleistung erhöht und die CPU-Kosten gesenkt werden. Gemäß weiteren veranschaulichenden Ausführungsformen werden ein Computersystem und ein Computerprogrammprodukt zum Laden eines Datensatzes von einem Quell-DBMS in ein Ziel-DBMS bereitgestellt, um die Arbeitslastleistung zu erhöhen und die Ressourcennutzung zu verringern.
  • Gemäß weiteren veranschaulichenden Ausführungsformen sammelt der Computer Informationen zu einer Gruppe von Arbeitslasten, die in dem Ziel-DBMS ausgeführt werden, und zu Kosten für ein Ausführen jeder betreffenden Arbeitslast in dem Ziel-DBMS. Der Computer erfasst eine Größe einer Gruppe von Tabellen im Ziel-DBMS und einen Referenzzählwert in Verbindung mit jeder Tabelle in der Gruppe auf Grundlage der Nutzung durch die Gruppe von Arbeitslasten. Der Computer wertet eine Häufigkeit des Tabellenzugriffs durch die Gruppe von Arbeitslasten für jede Tabelle in der Gruppe von Tabellen im Ziel-DBMS aus. Der Computer ordnet die Tabellenzugriffshäufigkeit jeder durch die Gruppe von Arbeitslasten referenzierten Tabelle den durch Entfernen von Tabellen mit geringer oder keiner Zugriffshäufigkeit aus dem Ziel-DBMS entstehenden Arbeitsspeicher- und CPU-Kosteneinsparungen zu, um Tabellenentfernungskandidaten zu ermitteln. Der Computer entfernt automatisch die ermittelten Tabellenentfernungskandidaten aus dem Ziel-DBMS auf Grundlage des Zuordnens, um die Arbeitsspeichernutzung zu verringern und die Arbeitslastleistung in dem Ziel-DBMS zu erhöhen.
  • Somit berechnen veranschaulichende Ausführungsformen ein Kosten-Nutzen-Verhältnis für jede Tabelle, indem sie CPU-Kosteneinsparungen für ein Auslagern von Arbeitslasten, die jede der Tabellen referenzieren, mit den CPU-Kosten vergleichen, die beim Laden von Daten in jede der Tabellen in dem Ziel-DBMS anfallen. Darüber hinaus entfernen veranschaulichende Ausführungsformen Tabellen, die nicht oder nur in geringem Umfang in dem Ziel-DBMS verwendet werden. Folglich optimieren veranschaulichende Ausführungsformen die Arbeitsspeicher- und CPU-Nutzung, um die Arbeitslastleistung zu erhöhen.
  • Figurenliste
  • Im Folgenden werden Ausführungsformen der vorliegenden Erfindung lediglich als Beispiel mit Bezug auf die beigefügten Zeichnungen beschrieben, in denen:
    • 1 eine bildliche Darstellung eines Netzwerks von Datenverarbeitungssystemen ist, in denen veranschaulichende Ausführungsformen implementiert werden können;
    • 2 eine Darstellung eines Datenverarbeitungssystems ist, in dem veranschaulichende Ausführungsformen implementiert werden können;
    • die 3A und 3B ein Ablaufplan sind, die einen Prozess zum anfänglichen Laden von Tabellendaten gemäß einer veranschaulichenden Ausführungsform veranschaulichen;
    • die 4A und 4B ein Ablaufplan sind, die einen Prozess zum Auffrischen von Daten partitionierter Tabellen gemäß einer veranschaulichenden Ausführungsform veranschaulichen;
    • die 5A und 5B ein Ablaufplan sind, die einen Prozess zum Auswerten von Tabellen, die für ein schrittweises Aktualisieren von Tabellendaten aktiviert sind, gemäß einer veranschaulichenden Ausführungsform veranschaulichen;
    • 6 ein Ablaufplan ist, der einen Prozess zum Entfernen nicht oder nur geringfügig referenzierter Tabellen gemäß einer veranschaulichenden Ausführungsform veranschaulicht;
    • 7 ein Ablaufplan ist, der einen Prozess zum Auswählen einer optimalen Ladestrategie gemäß einer veranschaulichenden Ausführungsform veranschaulicht; und
    • 8 ein Ablaufplan ist, der einen Prozess zum Zuordnen einer Tabellenzugriffshäufigkeit zu einer Arbeitsspeicher- und CPU-Kosteneinsparung gemäß einer veranschaulichenden Ausführungsform veranschaulicht.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jedem möglichen technischen Detaillierungsgrad der Integration handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. einen Lichtwellenleiter durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs/Verarbeitungs-Einheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Router, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs/Verarbeitungs-Einheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs/Verarbeitungs-Einheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltungen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o. ä. sowie prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, einen Herstellungsartikel aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Unter Bezugnahme nunmehr auf die Figuren, und insbesondere unter Bezugnahme auf 1 und 2, werden Darstellungen von Datenverarbeitungsumgebungen bereitgestellt, in denen veranschaulichende Ausführungsformen implementiert werden können. Es sei darauf hingewiesen, dass die 1 und 2 lediglich Beispiele sind und keine Beschränkung in Bezug auf die Umgebungen festlegen oder nahelegen sollen, in denen verschiedene Ausführungsformen implementiert werden können. An der dargestellten Umgebung können zahlreiche Änderungen vorgenommen werden.
  • 1 ist eine bildliche Darstellung eines Netzwerks von Datenverarbeitungssystemen, in denen veranschaulichende Ausführungsformen implementiert werden können. Bei dem Netzwerk-Datenverarbeitungssystem 100 handelt es sich um ein Netzwerk von Computern, Datenverarbeitungssystemen und anderen Einheiten, in dem die veranschaulichenden Ausführungsformen implementiert werden können. Das Netzwerk-Datenverarbeitungssystem 100 enthält das Netzwerk 102, das das Medium zum Bereitstellen von Datenübertragungsverbindungen zwischen den Computern, Datenverarbeitungssystemen und anderen Einheiten ist, die innerhalb des Netzwerk-Datenverarbeitungssystems 100 miteinander verbunden sind. Das Netzwerk 102 kann Verbindungen umfassen, z.B. drahtgebundene Datenübertragungsverbindungen, drahtlose Datenübertragungsverbindungen und Lichtwellenleiter.
  • Im abgebildeten Beispiel sind der Server 104, der Server 106 und der Server 108 mit dem Netzwerk 102 zusammen mit dem Speicher 110 verbunden. Beim Server 104, dem Server 106 und dem Server 108 kann es sich beispielsweise um Server-Computer mit Hochgeschwindigkeitsverbindungen zum Netzwerk 102 handeln. Darüber hinaus ist der Server 104 ein Quell-DBMS-Server, der Server 106 ein Ziel-DBMS-Server und der Server 108 ein Auslagerungsverwaltungsserver. Es ist zu beachten, dass der Quell-DBMS-Server 104, der Ziel-DBMS-Server 106 und der Auslagerungsverwaltungsserver 108 jeweils eine Gruppe von einem oder mehreren Computern darstellen können. Weiterhin kann es sich bei dem DBMS-Server 104, dem Ziel-DBMS-Server 106 und dem Auslagerungsverwaltungsserver 108 um Computer in einem Datenzentrum handeln. Der DBMS-Server 104, der Ziel-DBMS-Server 106 und der Auslagerungsverwaltungsserver 108 können alternativ Datenverarbeitungsknoten in einer Cloud-Umgebung sein.
  • Der Quell-DBMS-Server 104 stellt eine relationale Datenbank dar, die Daten in Tabellen speichert und eine Quelle für Anforderungen nach diesen Daten ist. Mit anderen Worten, der Quell-DBMS-Server 104 bedient Abfragen, die diesen Daten entsprechen, von Client-Einheiten. Bei den Daten kann es sich um jeden beliebigen Datentyp handeln. Der Ziel-DBMS-Server 106 stellt einen Beschleuniger zum Beschleunigen von Abfragen von Daten dar, die auf dem Quell-DBMS-Server 104 enthalten sind, und weist eine relationale Datenbank von Tabellen auf. Der Auslagerungsverwaltungsserver 108 steuert den Prozess zum Auslagern von Abfragearbeitslasten vom Quell-DBMS-Server 104 auf den Ziel-DBMS-Server 106.
  • Der Auslagerungsverwaltungsserver 108 ermittelt ein Gleichgewicht zwischen Ressourcenkosten und Ressourcenkosteneinsparungen für jede Tabelle, die durch eine Abfragearbeitslast referenziert wird, indem er die CPU-Kosteneinsparungen für das Auslagern vom Quell-DBMS-Server 104, die Abfragearbeitslast, die jede der Tabellen referenziert, und die CPU-Kosten, die durch das Laden von Daten in jede der referenzierten Tabellen in dem Ziel-DBMS anfallen, vergleicht. Darüber hinaus entfernt der Auslagerungsverwaltungsserver 108 Tabellen, die nicht oder nur geringfügig referenziert werden (z.B. Anzahl von Referenzen, die einer bestimmten Tabelle entsprechen, liegt unter einer definierten Schwellenwertanzahl von Referenzen), aus dem Ziel-DBMS 106, um Arbeitsspeicher im Ziel-DBMS 106 freizugeben. Auf diese Weise optimiert der Auslagerungsverwaltungsserver 108 die Arbeitsspeicher- und CPU-Nutzung durch das Ziel-DBMS 106, um die Arbeitslastleistung der beschleunigten Analyseabfrage zu erhöhen.
  • Der Client 112, der Client 114 und der Client 116 sind ebenfalls mit dem Netzwerk 102 verbunden. Die Clients 112, 114 und 116 sind Clients des Quell-DBMS-Servers 104. Die Benutzer der Clients 112, 114 und 116 können die Clients 112, 114 und 116 verwenden, um den Quell-DBMS-Server 104 nach Daten abzufragen. Bei der Abfrage kann es sich beispielsweise um eine Analyseabfrage handeln, die eine erhöhte CPU-Nutzung im Quell-DBMS-Server 104 erfordert. In diesem Beispiel werden die Clients 112, 114 und 116 als Desktop Computer oder Personal Computer mit drahtgebundenen Datenübertragungsverbindungen zum Netzwerk 102 dargestellt. Es wird jedoch darauf hingewiesen, dass die Clients 112, 114 und 116 andere Arten von Datenverarbeitungssystemen darstellen können, z.B. Netzwerkcomputer, Laptop-Computer, Handheld-Computer, Smartphones, intelligente Uhren, intelligente Fernseher, Spieleinheiten, Kioske und dergleichen, mit drahtgebundenen oder drahtlosen Datenübertragungsverbindungen zum Netzwerk 102.
  • Der Speicher 110 stellt eine Netzwerkspeichereinheit dar, die in der Lage ist, jede Art von Daten in einem strukturierten oder unstrukturierten Format zu speichern. Darüber hinaus kann der Speicher 110 eine Mehrzahl von Netzwerkspeichereinheiten darstellen. Der Speicher 110 kann z.B. Kennungen und Netzwerkadressen für eine Mehrzahl von Quell-DBMS-Servern, Kennungen und Netzwerkadressen für eine Mehrzahl von Ziel-DBMS-Servern, Kennungen und Netzwerkadressen für eine Mehrzahl von Client-Einheiten, Echtzeit-Datenbankstatistiken und Ähnliches speichern. Weiterhin kann der Speicher 110 auch andere Arten von Daten speichern, z.B. Berechtigungsprüfungs- oder Berechtigungsnachweisdaten, die z.B. Benutzernamen, Kennwörter und biometrische Daten von Benutzern der Client-Einheiten und Systemadministratoren umfassen können.
  • Darüber hinaus ist zu beachten, dass das Netzwerk-Datenverarbeitungssystem 100 beliebig viele zusätzliche Server, Client-Einheiten, Speichereinheiten und andere nicht abgebildete Einheiten umfassen kann. Programmcode, der sich auf dem Netzwerk-Datenverarbeitungssystem 100 befindet, kann auf einem durch einen Computer lesbaren Speichermedium gespeichert sein und zu dessen Verwendung auf einen Computer oder eine andere Datenverarbeitungseinheit heruntergeladen werden. Beispielsweise kann Programmcode auf einem durch einen Computer lesbaren Speichermedium auf dem Quell-DBMS-Server 104 gespeichert sein und über das Netzwerk 102 auf den Client 112 zur Verwendung auf dem Client 112 heruntergeladen werden.
  • Im dargestellten Beispiel kann das Netzwerk-Datenverarbeitungssystem 100 als eine Anzahl verschiedener Arten von Datenübertragungsnetzwerken, z.B. Internet, Intranet, lokales Netzwerk (LAN), Weitverkehrsnetzwerk (WAN) oder eine beliebige Kombination davon, implementiert sein. 1 soll nur als Beispiel dienen und nicht als eine Beschränkung der Architektur für die verschiedenen veranschaulichenden Ausführungsformen.
  • Mit Bezug nunmehr auf 2 ist eine Darstellung eines Datenverarbeitungssystems gemäß einer veranschaulichenden Ausführungsform abgebildet. Das Datenverarbeitungssystem 200 ist ein Beispiel für einen Computer, z.B. den Auslagerungsverwaltungsserver 108 in 1, auf dem sich durch einen Computer lesbarer Programmcode oder Anweisungen befinden können, die Prozesse veranschaulichender Ausführungsformen implementieren. In diesem veranschaulichenden Beispiel umfasst das Datenverarbeitungssystem 200 die Datenübertragungsstruktur 202, die Datenübertragungen zwischen der Prozessoreinheit 204, dem Arbeitsspeicher 206, dem dauerhaften Speicher 208, der Datenübertragungseinheit 210, der Eingabe/Ausgabe(E/A)-Einheit 212 und der Anzeige 214 bereitstellt.
  • Die Prozessoreinheit 204 dient zum Ausführen von Anweisungen für Softwareanwendungen und -programme, die in den Arbeitsspeicher 206 geladen werden können. Bei der Prozessoreinheit 204 kann es sich je nach besonderer Implementierung um eine Gruppe einer oder mehrerer Hardware-CPU-Einheiten oder um einen Mehrprozessorkern handeln.
  • Der Arbeitsspeicher 206 und der dauerhafte Speicher 208 sind Beispiele für Speichereinheiten 216. Eine durch einen Computer lesbare Speichereinheit ist eine beliebige Hardware, die in der Lage ist, Informationen zu speichern, z.B., ohne darauf beschränkt zu sein, Daten, durch einen Computer lesbarer Programmcode in funktionaler Form und/oder andere geeignete Informationen entweder auf flüchtiger und/oder dauerhafter Grundlage. Weiterhin schließt eine durch einen Computer lesbare Speichereinheit ein Weitergabemedium aus. Bei dem Speicher 206 kann es sich in diesen Beispielen z.B. um einen Direktzugriffsspeicher oder eine andere geeignete flüchtige oder nichtflüchtige Speichereinheit handeln. Der dauerhafte Speicher 208 kann je nach besonderer Implementierung verschiedene Formen aufweisen. Beispielsweise kann der dauerhafte Speicher 208 eine oder mehrere Einheiten enthalten. Der dauerhafte Speicher 208 kann z.B. eine Festplatte, ein Flash-Speicher, eine wiederbeschreibbare optische Platte, ein wiederbeschreibbares Magnetband oder eine beliebige Kombination daraus sein. Die vom dauerhaften Speicher 208 verwendeten Medien können wechselbar sein. Für den dauerhaften Speicher 208 kann beispielsweise eine wechselbare Festplatte verwendet werden.
  • In diesem Beispiel speichert der dauerhafte Speicher 208 die Auslagerungsverwaltung 218. Auch wenn die Auslagerungsverwaltung 218 als im dauerhaften Speicher 208 befindlich dargestellt wird, ist jedoch zu beachten, dass die Auslagerungsverwaltung 218 in einer alternativen veranschaulichenden Ausführungsform eine separate Komponente des Datenverarbeitungssystems 200 sein kann. Zum Beispiel kann die Auslagerungsverwaltung 218 eine mit der Datenübertragungsstruktur 202 verbundene Hardwarekomponente oder eine Kombination aus Hardware- und Softwarekomponenten sein. In einer anderen alternativen veranschaulichenden Ausführungsform kann sich ein erster Teil der Auslagerungsverwaltung 218 auf dem Datenverarbeitungssystem 200 und ein zweiter Teil der Auslagerungsverwaltung 218 auf einem zweiten Datenverarbeitungssystem befinden, z.B. dem Ziel-DBMS-Server 106 in 1. In einer weiteren alternativen veranschaulichenden Ausführungsform kann sich die Auslagerungsverwaltung 218 statt auf dem Datenverarbeitungssystem 200 oder zusätzlich dazu auf dem Ziel-DBMS-Server befinden.
  • Die Auslagerungsverwaltung 218 steuert den Prozess des Auslagerns von Arbeitslasten langlaufender Analyseabfragen von einem Quell-DBMS, z.B. dem Quell-DBMS-Server 104 in 1, in ein Ziel-DBMS, z.B. den Ziel-DBMS-Server 106 in 1. Die Auslagerungsverwaltung 218 ermittelt CPU-Arbeitslast-Kosteneinsparungen, indem sie die Arbeitslast in dem Ziel-DBMS und nicht in dem Quell-DBMS ausführt, und die CPU-Kosten für ein Laden der Daten in durch die Arbeitslast referenzierte Tabellen in das Ziel-DBMS. Die Auslagerungsverwaltung 218 ermittelt außerdem, welche bereits geladenen Tabellen in dem Ziel-DBMS entfernt werden können, um Arbeitsspeicherressourcen des Ziel-DBMS zu sparen und die Arbeitslastleistung in dem Ziel-DBMS zu erhöhen.
  • In diesem Beispiel speichert der dauerhafte Speicher 208 außerdem das Quell-DBMS 220, die CPU-Gesamtkosten 222, die Arbeitslast-Kosteneinsparungen 224, die Echtzeit-Statistikdaten 226, das Ziel-DBMS 228 und die Ladestrategieempfehlung 230. Das Quell-DBMS 220 stellt eine Kennung und Netzwerkadresse des Quell-DBMS dar. Die Auslagerungsverwaltung 218 verwendet die Kennung und die Netzwerkadresse, um eine Verbindung zum Quell-DBMS herzustellen und Informationen über das Quell-DBMS zu erfassen. Die Informationen können z.B. die Arbeitslast 232 umfassen. Die Arbeitslast 232 stellt eine Gruppe einer oder mehrerer Arbeitslasten dar, die in dem Quell-DBMS ausgeführt werden. Bei der Arbeitslast 232 kann es sich beispielsweise um eine Analyseabfrage handeln, die eine erhöhte CPU-Nutzung in dem Quell-DBMS erfordert. Die Tabellen 234 stellen eine Gruppe von durch das Quell-DBMS referenzierte Tabellen dar, um die Arbeitslast 232 durchzuführen. Die Größe 236 stellt eine Größe der jeweiligen Tabelle in der Gruppe von für die Arbeitslast 232 referenzierten Tabellen dar. Die Änderungsrate 238 steht für eine Änderungshäufigkeit der jeweiligen Tabelle in der Gruppe der für die Arbeitslast 232 referenzierten Tabellen.
  • Die Auslagerungsverwaltung 218 verwendet die Größe 236 und die Änderungsrate 238, um die CPU-Gesamtkosten 222 für die Arbeitslast 232 zu berechnen. Die CPU-Gesamtkosten 222 stellen aggregierte CPU-Nutzungskosten für ein Laden der Tabellen 234 in ein Ziel-DBMS dar, um die Arbeitslast 232 in dem Ziel-DBMS durchzuführen. Die Arbeitslast-Kosteneinsparungen 224 stellen eine Verringerung der CPU-Nutzung dar, indem die Arbeitslast 232 vom Quell-DBMS in das Ziel-DBMS ausgelagert wird.
  • Die Echtzeit-Statistikdaten 226 stellen aktuelle Echtzeit-Informationen wie Größe, Änderungsrate, Fehler u.Ä. der Tabellen 234 dar. Das Ziel-DBMS 228 stellt eine Kennung und Netzwerkadresse des Ziel-DBMS dar. Die Auslagerungsverwaltung 218 verwendet die Kennung und die Netzwerkadresse, um eine Verbindung zum Ziel-DBMS herzustellen und Informationen über das Ziel-DBMS zu erfassen.
  • Der Tabellenzugriffsschwellenwert 240 stellt eine vordefinierte Mindestanzahl von Referenzen oder Zugriffen auf Tabellen dar, die in das Ziel-DBMS geladen wurden. Die Auslagerungsverwaltung 218 ermittelt Tabellen mit einer entsprechenden Anzahl von Zugriffen, die kleiner ist als oder gleich groß ist wie der Tabellenzugriffsschwellenwert 240, als Tabellenentfernungskandidaten 242. Die Tabellenentfernungskandidaten 242 stellen eine Gruppe von einer oder mehreren Tabellen dar, die die Auslagerungsverwaltung 218 aus dem Ziel-DBMS entfernen kann, um den Arbeitsspeicher zu vergrößern und damit die Arbeitslastleistung in dem Ziel-DBMS zu erhöhen.
  • Die Ladestrategieempfehlung 230 stellt einen Tabellenladeplan dar, den die Auslagerungsverwaltung 218 zum Laden von Daten in Tabellen des Ziel-DBMS verwenden kann. Die Ladestrategieempfehlung 230 kann z.B. eine UNLOAD-gestützte Auffrischungsstrategie und/oder eine inkrementelle Aktualisierungsstrategie sein. Die UNLOAD-gestützte Auffrischungsstrategie aktualisiert Tabellenpartitionen und vollständige Tabellen, die von der Arbeitslast in dem Ziel-DBMS zu einem bestimmten Zeitpunkt referenziert werden. Die inkrementelle Aktualisierungsstrategie aktualisiert ständig Daten in Tabellen, die von der Arbeitslast in dem Ziel-DBMS referenziert werden.
  • Die Datenübertragungseinheit 210 stellt in diesem Beispiel die Datenübertragung zu anderen Computern, Datenverarbeitungssystemen und Einheiten über ein Netzwerk, z.B. das Netzwerk 102 in 1, bereit. Die Datenübertragungseinheit 210 kann Datenübertragungen über physische und drahtlose Datenübertragungsverbindungen bereitstellen. Die physische Datenübertragungsverbindung kann z.B. eine Leitung, ein Kabel, einen Universal Serial Bus oder eine andere physische Technologie verwenden, um eine physische Datenübertragungsverbindung für das Datenverarbeitungssystem 200 herzustellen. Die drahtlose Datenübertragungsverbindung kann z.B. Kurzwelle, Hochfrequenz, Ultrahochfrequenz, Mikrowelle, eine kabellose Netzwerkverbindung (Wireless Fidelity - Wi-Fi), Bluetooth®-Technologie, ein Global System for Mobile Communications (GSM), Code Division Multiple Access (CDMA), zweite Generation (2G), dritte Generation (3G), vierte Generation (4G), 4G Long Term Evolution (LTE), LTE Advanced oder jede andere drahtlose Datenübertragungstechnologie oder jeden anderen drahtlosen Datenübertragungsstandard nutzen, um eine drahtlose Datenübertragungsverbindung für das Datenverarbeitungssystem 200 herzustellen.
  • Die Eingabe/Ausgabe-Einheit 212 ermöglicht die Eingabe und Ausgabe von Daten in/von andere/n Einheiten, die mit dem Datenverarbeitungssystem 200 verbunden werden können. Beispielsweise kann die Eingabe/Ausgabe-Einheit 212 eine Verbindung für Benutzereingaben über ein Tastenfeld, eine Tastatur, eine Maus und/oder eine andere geeignete Eingabeeinheit bereitstellen. Die Anzeige 214 stellt einen Mechanismus zum Anzeigen von Informationen für einen Benutzer bereit und kann Funktionen eines berührungsempfindlichen Bildschirms umfassen, damit der Benutzer z.B. über Benutzerschnittstellen oder Eingabedaten am Bildschirm Auswahlen treffen kann.
  • Anweisungen für das Betriebssystem, Anwendungen und/oder Programme können sich in den Speichereinheiten 216 befinden, die über die Datenübertragungsstruktur 202 mit der Prozessoreinheit 204 Daten austauschen. In diesem veranschaulichenden Beispiel liegen die Anweisungen in einer funktionalen Form auf dem dauerhaften Speicher 208 vor. Diese Anweisungen können zum Ausführen durch die Prozessoreinheit 204 in den Arbeitsspeicher 206 geladen werden. Die Prozesse der verschiedenen Ausführungsformen können von der Prozessoreinheit 204 mithilfe von durch einen Computer implementierten Anweisungen durchgeführt werden, die sich in einem Speicher, z.B. dem Arbeitsspeicher 206, befinden können. Diese Programmanweisungen werden als Programmcode, durch einen Computer verwendbarer Programmcode oder durch einen Computer lesbarer Programmcode bezeichnet, der von einem Prozessor in der Prozessoreinheit 204 gelesen und ausgeführt werden kann. Die Programmanweisungen können in den verschiedenen Ausführungsformen auf verschiedenen physischen, durch einen Computer lesbaren Speichereinheiten, z.B. dem Arbeitsspeicher 206 oder dem dauerhaften Speicher 208, enthalten sein.
  • Der Programmcode 244 befindet sich in funktionaler Form auf einem durch einen Computer lesbaren Medium 246, das selektiv wechselbar ist und auf das Datenverarbeitungssystem 200 geladen oder übertragen werden kann, um von der Prozessoreinheit 204 ausgeführt zu werden. Der Programmcode 244 und das durch einen Computer lesbare Medium 246 bilden das Computerprogrammprodukt 248. In einem Beispiel kann es sich bei dem durch einen Computer lesbaren Medium 246 um das durch einen Computer lesbare Speichermedium 250 oder das durch einen Computer lesbare Signalmedium 252 handeln. Das durch einen Computer lesbare Speichermedium 250 kann z.B. eine optische oder magnetische Platte umfassen, die in ein Laufwerk oder eine andere Einheit, die Teil des dauerhaften Speichers 208 ist, zum Übertragen auf eine Speichereinheit, z.B. eine Festplatte, die Teil des dauerhaften Speichers 208 ist, eingelegt oder eingesetzt wird. Das durch einen Computer lesbare Speichermedium 250 kann auch die Form eines dauerhaften Speichers haben, z.B. einer mit dem Datenverarbeitungssystem 200 verbundenen Festplatte, einem damit verbundenen Thumb-Drive oder Flash-Speicher. In einigen Fällen ist das durch einen Computer lesbare Speichermedium 250 möglicherweise nicht aus dem Datenverarbeitungssystem 200 entfernbar.
  • Alternativ kann der Programmcode 244 mithilfe des durch einen Computer lesbaren Signalmediums 252 auf das Datenverarbeitungssystem 200 übertragen werden. Das durch einen Computer lesbare Signalmedium 252 kann z.B. ein weitergegebenes Datensignal sein, das den Programmcode 244 enthält. Zum Beispiel kann das durch einen Computer lesbare Signalmedium 252 ein elektromagnetisches Signal, ein optisches Signal und/oder ein beliebiger anderer geeigneter Signaltyp sein. Diese Signale können über Datenübertragungsverbindungen übertragen werden, z.B. über drahtlose Datenübertragungsverbindungen, ein Lichtwellenleiterkabel, ein Koaxialkabel, einen Draht und/oder eine beliebige andere geeignete Art von Datenübertragungsverbindung. Mit anderen Worten, die Datenübertragungsverbindung und/oder die Verbindung kann in den veranschaulichenden Beispielen physisch oder drahtlos sein. Bei den durch einen Computer lesbaren Medien kann es sich auch um nichtphysische Medien handeln, z.B. Datenübertragungsverbindungen oder drahtlose Übertragungen, die den Programmcode enthalten.
  • In einigen veranschaulichenden Ausführungsformen kann der Programmcode 244 über ein Netzwerk von einer anderen Einheit oder einem anderen Datenverarbeitungssystem über das durch einen Computer lesbare Signalmedium 252 zum Verwenden innerhalb des Datenverarbeitungssystems 200 in den dauerhaften Speicher 208 heruntergeladen werden. Zum Beispiel kann Programmcode, der auf einem durch einen Computer lesbaren Speichermedium in einem Datenverarbeitungssystem gespeichert ist, über ein Netzwerk vom Datenverarbeitungssystem auf das Datenverarbeitungssystem 200 heruntergeladen werden. Das Datenverarbeitungssystem, das den Programmcode 244 bereitstellt, kann ein Server-Computer, ein Client-Computer oder eine andere Einheit sein, die in der Lage ist, den Programmcode 244 zu speichern und zu übertragen.
  • Die verschiedenen Komponenten, die für das Datenverarbeitungssystem 200 veranschaulicht werden, sollen keine Architekturbeschränkungen der Art und Weise bereitstellen, wie verschiedene Ausführungsformen implementiert werden können. Die verschiedenen veranschaulichenden Ausführungsformen können in einem Datenverarbeitungssystem implementiert werden, das Komponenten zusätzlich zu den oder anstelle der für das Datenverarbeitungssystem 200 dargestellten Komponenten enthält. Weitere in 2 dargestellte Komponenten können von den veranschaulichenden Beispielen abweichen. Die verschiedenen Ausführungsformen können mit jeder Hardwareeinheit oder jedem System implementiert werden, die/das in der Lage ist, Programmcode auszuführen. Das Datenverarbeitungssystem 200 kann beispielsweise organische Komponenten enthalten, die mit anorganischen Komponenten integriert sind, und/oder es kann vollständig aus organischen Komponenten mit Ausnahme eines Menschen bestehen. Zum Beispiel kann eine Speichereinheit aus einem organischen Halbleiter bestehen.
  • In einem weiteren Beispiel handelt es sich bei einer durch einen Computer lesbaren Speichereinheit im Datenverarbeitungssystem 200 um eine beliebige Hardwarevorrichtung, die Daten speichern kann. Der Arbeitsspeicher 206, der dauerhafte Speicher 208 und das durch einen Computer lesbare Speichermedium 250 sind Beispiele für physische Speichereinheiten in physischer Form.
  • In einem anderen Beispiel kann ein Bussystem zum Implementieren der Datenübertragungsstruktur 202 verwendet werden und aus einem oder mehreren Bussen bestehen, z.B. einem Systembus oder einem Eingabe/Ausgabe-Bus. Selbstverständlich kann das Bussystem mit jeder geeigneten Architektur implementiert werden, die eine Datenübertragung zwischen verschiedenen an das Bussystem angeschlossenen Komponenten oder Einheiten bereitstellt. Eine Datenübertragungseinheit kann darüber hinaus eine oder mehrere Einheiten wie einen Modem oder einen Netzwerkadapter aufweisen, die verwendet werden, um Daten zu übertragen und zu empfangen. Ferner kann ein Arbeitsspeicher beispielsweise der Arbeitsspeicher 206 oder ein Zwischenspeicher sein, wie er in einer Schnittstelle und einem Arbeitsspeicher-Controller-Hub vorkommt, die in einer Datenübertragungsstruktur 202 vorhanden sein können.
  • Ein Beschleuniger wird verwendet, um langlaufende Analyseabfragen, die beschleunigt werden sollen, auszulagern. Damit eine Abfrage beschleunigt werden kann, müssen Daten für die von der Abfrage referenzierten Tabellen in den Beschleuniger geladen werden. Wenn mehrere solcher Abfragen in den Beschleuniger ausgelagert werden, steigt die Nutzung des Arbeitsspeichers, während die Abfrageleistung abnimmt.
  • Ressourcenbeschränkungen, z.B. bei CPU, Arbeitsspeicher und dauerhaftem Speicher, erfordern eine hochoptimierte Ressourcennutzung durch den Beschleuniger, um die Abfrageleistung zu verbessern. In vielen Fällen nimmt ein unbegrenztes Auslagern von Tabellendaten in die vom Beschleuniger verwendete Systemhardware mehr Systemressourcen als nötig in Anspruch. Folglich verbessert ein intelligentes Laden und Entladen von Tabellendaten die Arbeitslastleistung oder Abfrageleistung.
  • Gegenwärtig stellt ein Arbeitslastoptimierer Vorschläge dazu bereit, welche Tabellen und Daten eine höhere Leistung erbringen, wenn sie auf einen Beschleuniger ausgelagert werden. Der Arbeitslastoptimierer stellt Empfehlungen jedoch nur auf Grundlage von Abfragestatistiken bereit. Mit anderen Worten, der Arbeitslastoptimierer ist davon abhängig, wie die jeweilige Abfragearbeitslast abgeleitet wird. Wenn die Abfragen, die Teil der Arbeitslast sind, aus dem Anweisungszwischenspeicher kommen, sind die tatsächlichen Kosten für ein Ausführen der Abfrage in einem DBMS bekannt.
  • Wenn jedoch der Arbeitslastoptimierer Einblicke in die Abfrageoptimierung bietet, indem er Tabellen vorschlägt, die in den Beschleuniger ausgelagert werden sollen, werden die tatsächlichen CPU-Nutzungskosten für ein Laden der Daten in den Beschleuniger nicht berücksichtigt. Wenn im Laufe der Zeit Daten für mehrere Tabellen in den Beschleuniger geladen werden, werden auch die vom Beschleuniger genutzten Arbeitsspeicherressourcen in Anspruch genommen und die Leistung nimmt ab.
  • Veranschaulichende Ausführungsformen laden Daten in Tabellen eines Ziel-DBMS (d.h. eines Beschleunigers), indem sie die CPU-Nutzungskosten für ein Laden von Daten in jede Tabelle berücksichtigen, die von einer Arbeitslast referenziert wird, die von einem Quell-DBMS ausgelagert werden soll. Somit berechnen veranschaulichende Ausführungsformen ein „Kosten-Nutzen-Verhältnis“ für jede Tabelle, indem sie CPU-Kosteneinsparungen zum Auslagern von Arbeitslasten/Abfragen, die jede der Tabellen referenzieren, mit den CPU-Kosten vergleichen, die beim Laden von Daten in jede der Tabellen in dem Ziel-DBMS anfallen. Darüber hinaus stellen veranschaulichende Ausführungsformen Empfehlungen bereit, Daten (d.h. Tabellen) zu entfernen, die vom Ziel-DBMS nicht oder nur in geringem Umfang verwendet werden. Folglich stellen veranschaulichende Ausführungsformen eine Optimierung von Systemressourcen bereit, indem sie die vom Ziel-DBMS genutzten Arbeitsspeicher- und CPU-Ressourcen optimieren, um die Arbeitsleistung/Abfrageleistung einer beschleunigten Analyse zu erhöhen.
  • Veranschaulichende Ausführungsformen stellen ein durch einen Computer implementiertes Verfahren zum Optimieren einer Datenladestrategie von einem Quell-DBMS in ein Ziel-DBMS bereit, das eine Teilmenge der Quell-DBMS-Datei enthält. Das Ziel-DBMS verwendet die Teilmenge der Daten, um eine oder mehrere Arbeitslasten (z.B. Analyseabfragen) auszuführen. Veranschaulichende Ausführungsformen sammeln Informationen zu Arbeitslasten, die ein Quell-DBMS treffen, zu Kosten für ein Ausführen der Arbeitslasten in dem Quell-DBMS, zu den durch die Arbeitslasten referenzierten Tabellen und der Auswählbarkeit der durch die Arbeitslasten referenzierten Tabellen, um in das Ziel-DBMS ausgelagert zu werden. Veranschaulichende Ausführungsformen erfassen eine Größe der Tabellen, die zum Auslagern in das Ziel-DBMS ausgewählt werden können. Darüber hinaus bewerten veranschaulichende Ausführungsformen eine Änderungsrate der Tabellen, die zum Auslagern in das Ziel-DBMS ausgewählt werden können. Veranschaulichende Ausführungsformen ermitteln CPU-Gesamtkosten für ein Laden der Teilmenge von Daten in das Ziel-DBMS mithilfe der Größe und der Änderungsrate von Tabellen, die zum Auslagern in das Ziel-DBMS ausgewählt werden können, und Arbeitslast-Kosteneinsparungen, die durch ein Ausführen einer oder mehrerer Arbeitslasten in dem Ziel-DBMS entstehen, auf Grundlage einer Gruppe einer oder mehrerer Ladestrategien. Die ermittelten Arbeitslast-Kosteneinsparungen für eine bestimmte Tabelle umfassen vorausgesagte zukünftige Arbeitslasten dieser bestimmten Tabelle. Veranschaulichende Ausführungsformen vergleichen die CPU-Gesamtkosten mit den Arbeitslast-Kosteneinsparungen jeder Ladestrategie aus der Gruppe von Ladestrategien. Veranschaulichende Ausführungsformen wählen eine optimale Ladestrategie aus der Gruppe von Ladestrategien auf Grundlage eines Vergleichens der Gesamtkosten mit den Arbeitslast-Kosteneinsparungen jeder Ladestrategie aus. Veranschaulichende Ausführungsformen erzwingen automatisch ein Laden der Teilmenge von Daten in das Ziel-DBMS gemäß der ausgewählten optimalen Ladestrategie zum beschleunigten Ausführen der einen oder mehreren Arbeitslasten.
  • Darüber hinaus stellen veranschaulichende Ausführungsformen ein durch einen Computer implementiertes Verfahren zum Optimieren einer Datenentfernungsstrategie für das Ziel-DBMS bereit, um so eine beschleunigte Arbeitslastleistung zu erreichen. Veranschaulichende Ausführungsformen sammeln Informationen zu einer Gruppe von Arbeitslasten, die in dem Ziel-DBMS ausgeführt werden, und zu Kosten für ein Ausführen jeder betreffenden Arbeitslast in dem Ziel-DBMS. Veranschaulichende Ausführungsformen erfassen eine Größe jeder Tabelle in einer Gruppe von Tabellen im Ziel-DBMS und einen Referenzzählwert in Verbindung mit jeder Tabelle der Gruppe auf Grundlage der Nutzung durch die Gruppe von Arbeitslasten. Veranschaulichende Ausführungsformen bewerten eine Häufigkeit des Tabellenzugriffs durch die Gruppe von Arbeitslasten für jede Tabelle in der Gruppe von Tabellen im Ziel-DBMS. Veranschaulichende Ausführungsformen ordnen die Häufigkeit eines Tabellenzugriffs in Verbindung mit jeder durch die Gruppe von Arbeitslasten referenzierten Tabelle einer durch Entfernen von Tabellen mit geringer oder keiner Zugriffshäufigkeit aus dem Ziel-DBMS entstehenden Arbeitsspeicher- und CPU-Kosteneinsparungen zu, um Tabellenentfernungskandidaten zu ermitteln. Veranschaulichende Ausführungsformen entfernen automatisch die ermittelten Tabellenentfernungskandidaten aus dem Ziel-DBMS auf Grundlage des Zuordnens.
  • Beschleuniger (d.h. Ziel-DBMS) eignen sich besonders für ein schnelles Ausführen von Datenbank-Arbeitslasten eines bestimmten Typs (z.B. Analyseabfragen). Veranschaulichende Ausführungsformen kopieren Daten aus einer Quelldatenbank vollständig oder teilweise in eine Zieldatenbank, um die Arbeitslastleistung (z.B. Abfrageleistung) zu erhöhen. Veranschaulichende Ausführungsformen ermitteln dynamisch, ob eine von einer Quelldatenbank empfangene Abfrage in der Quelldatenbank ausgeführt oder in die Zieldatenbank ausgelagert wird. Ob veranschaulichende Ausführungsformen eine Abfrage in eine Zieldatenbank auslagern, hängt vom Typ der Arbeitslast (z.B. Analyseabfrage-Arbeitslast) ab. Veranschaulichende Ausführungsformen senden eine Arbeitslast an die Zieldatenbank, wenn veranschaulichende Ausführungsformen feststellen oder vorhersagen, dass die Arbeitslast in der Zieldatenbank schneller ausgeführt wird als in den ursprünglichen Datentabellen in der Quelldatenbank. Auf diese Weise nutzen veranschaulichende Ausführungsformen die Zieldatenbank, um ein Ausführen von Arbeitslasten/Abfragen zu beschleunigen.
  • Bisherige Verfahren zum Laden und Entladen von Daten in einer Zieldatenbank waren immer manuell und dem Ermessen eines Datenbankadministrators überlassen. Zwar sind einige bewährte Verfahren bekannt geworden, doch konnten bisherige Verfahren den Datenbankadministrator bei seiner Entscheidung zur Datenlade- und -entladestrategie nicht unterstützen.
  • Die Organisation von Daten im Quell-DBMS kann von Tabelle zu Tabelle variieren. Einige Tabellen sind nichtpartitionierte Tabellen, und einige Tabellen sind nach Bereich oder Wachstum partitioniert. Auch die Änderungsrate für die Daten in diesen Tabellen variiert je nach Tabellenzweck stark. Daher besteht ein Bedarf an einem Prozess, der die optimale Ladestrategie empfiehlt und auswählt.
  • Veranschaulichende Ausführungsformen nehmen Informationen über Arbeitslast-Kosteneinsparungen auf, die entstehen, wenn die Arbeitslast in einem Ziel-DBMS und nicht in dem Quell-DBMS ausgeführt wird, sowie CPU-Kosten für ein erstes Laden der Daten in die in dem Ziel-DBMS referenzierten Tabellen. Dann ermitteln veranschaulichende Ausführungsformen eine Änderungsrate für Daten in diesen Tabellen und berechnen die CPU-Kosten für die verschiedenen Ladestrategien, die für eine gegebene Tabelle verwendet werden können. Mit diesen aufgenommenen und berechneten Informationen zeigen veranschaulichende Ausführungsformen einem Benutzer (z.B. Datenbankadministrator) die tatsächlichen Kosten an, die Einsparungen der Arbeitslastleistung in dem Ziel-DBMS und Kosten für das Laden von Daten in Tabellen des Ziel-DBMS umfassen, sowie die empfohlene/ausgewählte Ladestrategie, die eine Begründung für das Minimieren eventuell zugehöriger Kosten für das Laden von Daten enthält. Veranschaulichende Ausführungsformen führen auch automatisch die Ladeoperation in dem Ziel-DBMS mit der empfohlenen/ausgewählten Ladestrategie aus.
  • Veranschaulichende Ausführungsformen sammeln Daten zu Einsparungen bei den Arbeitslastkosten, indem sie die Arbeitslast in dem Ziel-DBMS ausführen, wenn ein Parameter z.B. auf Ja gesetzt ist. Bei einer bestimmten Arbeitslast ermitteln veranschaulichende Ausführungsformen die Arbeitslastkosten für ein direktes Ausführen der Arbeitslast in dem Quell-DBMS und empfehlen, die Arbeitslast in dem Ziel-DBMS auszuführen, wenn veranschaulichende Ausführungsformen feststellen, dass die Arbeitslastkosten geringer ausfallen, wenn die Arbeitslast in dem Ziel-DBMS ausgeführt wird. Daher stützen veranschaulichende Ausführungsformen die Empfehlung auf Arbeitslast-Kosteneinsparungen. Veranschaulichende Ausführungsformen holen sich aus den Katalogtabellen des Quell-DBMS Angaben zur Größe jeder der Tabellen, die von der Arbeitslast referenziert werden, sowie zur Auswählbarkeit zum Laden in das Ziel-DBMS.
  • Es gibt 2 Arten von Datenlade/auffrischungs-Strategien, die veranschaulichende Ausführungsformen durchführen können, um Daten in dem Ziel-DBMS zu synchronisieren, nämlich eine UNLOAD-gestützte Auffrischungsstrategie und eine inkrementelle Aktualisierungsstrategie. Die UNLOAD-gestützte Auffrischungsstrategie aktualisiert Tabellenpartitionen und vollständige Tabellen zu einem bestimmten Zeitpunkt. Die UNLOAD-gestützte Auffrischungsfunktion erstellt eine Momentaufnahme der Daten in dem Quell-DBMS und überträgt die Daten in das Ziel-DBMS. Die inkrementelle Aktualisierungsstrategie aktualisiert ständig die Daten im Ziel-DBMS, indem sie die im Quell-DBMS-Protokoll aufgezeichneten Änderungen anwendet. Die CPU-Gesamtkosten für ein Laden von Daten aus dem Quell-DBMS in Tabellen des Ziel-DBMS variieren je nach ausgewählter Ladestrategie.
  • Die CPU-Kosten für die Datensynchronisation bei inkrementellen Aktualisierungen oder UNLOAD-gestützten Auffrischungen hängen von der Gesamtgröße der Daten ab, die an das Ziel-DBMS übertragen werden sollen. Bei inkrementellen Aktualisierungen ist die Gesamtgröße der zu übertragenden Daten das Nettovolumen der Änderungen in Bytes, die auf die Tabellen im Quell-DBMS angewendet wurden. Bei der UNLOAD-gestützten Auffrischung hängt die Gesamtgröße der zu übertragenden Daten von der Anzahl und der Größe der Partitionen ab, die sich geändert haben, da nur ganze Partitionen aufgefrischt werden können. Da die Funktion der inkrementellen Aktualisierung das Protokoll eines gesamten Quell-DBMS-Teilsystems liest, muss eine Schätzung der CPU-Kosten auf der Gesamtaktivität beruhen, die im Protokoll dieses Teilsystems aufgezeichnet wurde. Es muss zwischen Änderungen innerhalb und außerhalb des Anwendungsbereichs unterschieden werden. Änderungen innerhalb des Anwendungsbereichs bezeichnen Protokollaktivitäten, die für inkrementell aktualisierte Tabellen im Ziel-DBMS relevant sind, während mit Änderungen außerhalb des Anwendungsbereichs alle anderen Aktivitäten gemeint sind. Die CPU-Kosten für ein Laden von Daten mit der UNLOAD-gestützten Auffrischung ist eine Funktion der Anzahl der geänderten Zeilen und einer durchschnittlichen Zeilenlänge der betreffenden Tabelle. Wenn das Quell-DBMS durchsucht werden muss, sind die CPU-Kosten für ein Datenauffrischen bei der inkrementellen Aktualisierung eine Funktion der durchschnittlichen Zeilenlänge der betreffenden Tabelle, der Anzahl von Einfügungen, Aktualisierungen und Löschungen und der Zeit zum Filtern von Änderungen außerhalb des Anwendungsbereichs.
  • Um jede betreffende referenzierte Tabelle zu übertragen, werden gegenwärtig Berechnungen und Schritte von einem Benutzer manuell durchgeführt, was sowohl zeitaufwändig als auch fehleranfällig ist und diesen gegenwärtigen Prozess suboptimal macht. Dies ist Teil des Problems, das veranschaulichende Ausführungsformen berücksichtigen und lösen, indem sie eine Logik zum automatischen Berechnen mehrerer Faktoren einbeziehen und die Ergebnisse integrieren, um konkrete Kostendaten zu erzeugen und Empfehlungen zu geben. Darüber hinaus können veranschaulichende Ausführungsformen auf Grundlage der erzeugten Empfehlungen automatisch Maßnahmen ergreifen.
  • Mit Bezug nunmehr auf die 3A und 3B wird ein Ablaufplan gezeigt, der einen Prozess zum erstmaligen Laden von Tabellendaten gemäß einer veranschaulichenden Ausführungsform veranschaulicht. In diesem Prozess sind die durch ein Ausführen der Arbeitslast/Abfrage in einem Ziel-DBMS erreichbaren Arbeitslast/Abfrage-Kosteneinsparungen verfügbar, doch die zum Ausführen der Arbeitslast/Abfrage in dem Ziel-DBMS benötigten Tabellendaten sind noch nicht verfügbar. Der in den 3A und 3B dargestellte Prozess kann auf einem Computer implementiert werden, z.B. auf dem Auslagerungsverwaltungsserver 108 in 1 oder dem Datenverarbeitungssystem 200 in 2.
  • Der Prozess beginnt, wenn der Computer Informationen von einem Quell-DBMS zu einer Arbeitslast, die auf dem Quell-DBMS ausgeführt wird, und zu Kosten für ein Ausführen der Arbeitslast in dem Quell-DBMS sammelt (Schritt 302). Dies erfolgt durch Erzeugen des Ausführungsplans der Arbeitslast in Verbindung mit dem Quell-DBMS. Beim Quell-DBMS kann es sich z.B. um den Quell-DBMS-Server 104 in 1 handeln. Anschließend ermittelt der Computer anhand der gesammelten Informationen eine Gruppe von Tabellen, die von der Arbeitslast referenziert wurden (Schritt 304).
  • Danach wählt der Computer aus der Gruppe von Tabellen eine Tabelle aus (Schritt 306). Der Computer ermittelt, ob sich die ausgewählte Tabelle in einem Ziel-DBMS befindet (Schritt 308). Beim Ziel-DBMS kann es sich z.B. um den Ziel-DBMS-Server 106 in 1 handeln. Wenn der Computer feststellt, dass sich die ausgewählte Tabelle im Ziel-DBMS befindet, Ausgabe Ja in Schritt 308, fährt der Prozess mit Schritt 410 in 4 fort. Wenn der Computer feststellt, dass sich die ausgewählte Tabelle nicht im Ziel-DBMS befindet, Ausgabe Nein in Schritt 308, legt der Computer fest, welche Datenmenge zunächst in die ausgewählte Tabelle geladen werden muss, indem er Katalogtabellen des Quell-DBMS referenziert (Schritt 310).
  • Darüber hinaus berechnet der Computer einen CPU-Kostenwert zum Laden der Datenmenge in die ausgewählte Tabelle (Schritt 312). Der Computer inkrementiert außerdem einen CPU-Kostenzähler um den berechneten CPU-Kostenwert (Schritt 314). Danach ermittelt der Computer, ob in der Gruppe von Tabellen eine weitere Tabelle vorhanden ist (Schritt 316). Wenn der Computer feststellt, dass eine weitere Tabelle in der Gruppe von Tabellen vorhanden ist, Ausgabe Ja in Schritt 316, kehrt der Prozess zu Schritt 306 zurück, wo der Computer eine weitere Tabelle aus der Gruppe von Tabellen auswählt. Wenn der Computer feststellt, dass in der Gruppe von Tabellen keine weitere Tabelle vorhanden ist, Ausgabe Nein in Schritt 316, ermittelt der Computer CPU-Gesamtkosten für ein Laden von Daten in das Ziel-DBMS auf Grundlage des CPU-Kostenzählers (Schritt 318).
  • Der Computer vergleicht die CPU-Gesamtkosten für ein Laden der Daten in das Ziel-DBMS mit einer Arbeitslast-Kosteneinsparung zum Ausführen der Arbeitslast in dem Ziel-DBMS (Schritt 320). Darüber hinaus berücksichtigt der Computer zukünftige Arbeitslast-Kosteneinsparungen durch Laden von Tabellendaten in das Ziel-DBMS. Der Computer vergleicht die CPU-Gesamtkosten mit den Arbeitslast-Kosteneinsparungen und ermittelt so, ob die CPU-Gesamtkosten höher sind als die Arbeitslast-Kosteneinsparungen (Schritt 322). Wenn der Computer feststellt, dass die CPU-Gesamtkosten höher sind als die Arbeitslast-Kosteneinsparungen, Ausgabe Ja in Schritt 322, ist der Prozess danach beendet. Wenn der Computer feststellt, dass die CPU-Gesamtkosten geringer sind als die Arbeitslast-Kosteneinsparungen, Ausgabe Nein in Schritt 322, erzeugt der Computer eine Ladestrategieempfehlung zum Laden der Daten in Tabellen des Ziel-DBMS (Schritt 324). Der Prozess zum Erzeugen einer Ladestrategieempfehlung wird in der nachfolgenden Beschreibung von 7 näher erläutert.
  • Außerdem ermittelt der Computer, ob eventuell bereits geladene Tabellen in dem Ziel-DBMS entfernt werden können (Schritt 326). Wenn der Computer feststellt, dass bereits geladene Tabellen in dem Ziel-DBMS entfernt werden können, Ausgabe Ja in Schritt 326, fährt der Prozess mit Schritt 602 in 6 fort. Wenn der Computer feststellt, dass bereits geladene Tabellen in dem Ziel-DBMS nicht entfernt werden können, Ausgabe Nein in Schritt 326, sammelt der Computer Echtzeit-Statistikdaten der Tabellen in der Ladestrategieempfehlung, um Aktualisierungsmuster der Tabellen zu ermitteln (Schritt 328).
  • Anschließend ermittelt der Computer, ob Tabellen in der Ladestrategieempfehlung anhand der gesammelten Echtzeit-Statistikdaten für ein inkrementelles Aktualisieren auswählbar sind (Schritt 330). Wenn der Computer aufgrund der gesammelten Echtzeit-Statistikdaten feststellt, dass Tabellen in der Ladestrategieempfehlung nicht für ein inkrementelles Aktualisieren auswählbar sind, Ausgabe Nein in Schritt 330, führt der Computer ein UNLOAD-gestütztes Auffrischen der Tabellen in der Ladestrategieempfehlung durch, die nicht für ein inkrementelles Aktualisieren in dem Ziel-DBMS auswählbar sind (Schritt 332). Wenn der Computer aufgrund der gesammelten Echtzeit-Statistikdaten feststellt, dass Tabellen in der Ladestrategieempfehlung für ein inkrementelles Aktualisieren auswählbar sind, Ausgabe Ja in Schritt 330, führt der Computer ein inkrementelles Aktualisieren der Tabellen in der Ladestrategieempfehlung durch, die für ein inkrementelles Aktualisieren in dem Ziel-DBMS auswählbar sind (Schritt 334). Darüber hinaus sendet der Computer die Ladestrategieempfehlung mit Begründung an einen Benutzer zum Überprüfen (Schritt 336). Danach endet der Prozess.
  • Mit Bezug nunmehr auf die 4A und 4B wird ein Ablaufplan gezeigt, der einen Prozess zum Auffrischen von Daten partitionierter Tabellen gemäß einer veranschaulichenden Ausführungsform veranschaulicht. In diesem Prozess sind die durch ein Ausführen der Arbeitslast in einem Ziel-DBMS erreichbaren Arbeitslast-Kosteneinsparungen verfügbar, und die für ein Ausführen der Arbeitslast in dem Ziel-DBMS erforderlichen Tabellendaten müssen aufgefrischt werden. Der in den 4A und 4B dargestellte Prozess kann auf einem Computer implementiert werden, z.B. auf dem Auslagerungsverwaltungsserver 108 in 1 oder dem Datenverarbeitungssystem 200 in 2.
  • Der Prozess beginnt, wenn der Computer Informationen von einem Quell-DBMS zu einer Arbeitslast, die auf dem Quell-DBMS ausgeführt wird, und zu Kosten für ein Ausführen der Arbeitslast in dem Quell-DBMS sammelt (Schritt 402). Der Computer ermittelt anhand der gesammelten Informationen eine Gruppe von Tabellen, die von der Arbeitslast referenziert wurden (Schritt 404). Der Computer wählt aus der Gruppe von Tabellen eine Tabelle aus (Schritt 406).
  • Der Computer ermittelt, ob sich die ausgewählte Tabelle in einem Ziel-DBMS befindet (Schritt 408). Wenn der Computer feststellt, dass sich die ausgewählte Tabelle nicht im Ziel-DBMS befindet, Ausgabe Nein in Schritt 408, kehrt der Prozess zu Schritt 310 von 3A zurück. Wenn der Computer feststellt, dass sich die ausgewählte Tabelle im Ziel-DBMS befindet, Ausgabe Ja in Schritt 408, ermittelt der Computer, ob ein inkrementelles Aktualisieren für die ausgewählte Tabelle aktiviert ist (Schritt 410). Wenn der Computer feststellt, dass ein inkrementelles Aktualisieren für die ausgewählte Tabelle aktiviert ist, Ausgabe Ja in Schritt 410, fährt der Prozess mit Schritt 512 in 5A fort. Wenn der Computer feststellt, dass kein inkrementelles Aktualisieren für die ausgewählte Tabelle aktiviert ist, Ausgabe Nein in Schritt 410, ermittelt der Computer, ob die ausgewählte Tabelle partitioniert ist (Schritt 412).
  • Wenn der Computer feststellt, dass die ausgewählte Tabelle partitioniert ist, Ausgabe Ja in Schritt 412, berechnet der Computer einen CPU-Kostenwert für ein Neuladen der Partition der ausgewählten Tabelle (Schritt 414). Der Computer kann z.B. ein gespeichertes Verfahren SYSPROC.ACCEL_LOAD_TABLES verwenden, um zu ermitteln, welche Partitionen seit dem letzten Laden/Auffrischen geändert wurden, als Tabellendaten zuvor in das Ziel-DBMS geladen wurden. Danach wird der Prozess mit Schritt 418 fortgesetzt. Wenn der Computer feststellt, dass die ausgewählte Tabelle nicht partitioniert ist, Ausgabe Nein in Schritt 412, berechnet der Computer einen CPU-Kostenwert für ein vollständiges Neuladen der ausgewählten Tabelle (Schritt 416).
  • Danach inkrementiert der Computer einen CPU-Kostenzähler um den berechneten CPU-Kostenwert (Schritt 418). Außerdem ermittelt der Computer, ob in der Gruppe von Tabellen eine weitere Tabelle vorhanden ist (Schritt 420). Wenn der Computer feststellt, dass eine weitere Tabelle in der Gruppe von Tabellen vorhanden ist, Ausgabe Ja in Schritt 420, kehrt der Prozess zu Schritt 406 zurück, wo der Computer eine weitere Tabelle aus der Gruppe von Tabellen auswählt. Wenn der Computer feststellt, dass in der Gruppe von Tabellen keine weitere Tabelle vorhanden ist, Ausgabe Nein in Schritt 420, ermittelt der Computer CPU-Gesamtkosten für ein Neuladen von Daten in Tabellen des Ziel-DBMS auf Grundlage des CPU-Kostenzählers (Schritt 422).
  • Der Computer vergleicht die CPU-Gesamtkosten für ein Neuladen der Daten in Tabellen des Ziel-DBMS mit einer Arbeitslast-Kosteneinsparung zum Ausführen der Arbeitslast in dem Ziel-DBMS (Schritt 424). Der Computer vergleicht die CPU-Gesamtkosten mit den Arbeitslast-Kosteneinsparungen und ermittelt so, ob die CPU-Gesamtkosten höher sind als die Arbeitslast-Kosteneinsparungen (Schritt 426). Wenn der Computer feststellt, dass die CPU-Gesamtkosten höher sind als die Arbeitslast-Kosteneinsparungen, Ausgabe Ja in Schritt 426, ist der Prozess danach beendet. Wenn der Computer feststellt, dass die CPU-Gesamtkosten geringer sind als die Arbeitslast-Kosteneinsparungen, Ausgabe Nein in Schritt 426, erzeugt der Computer eine Ladestrategieempfehlung zum Neuladen der Daten in die Tabellen des Ziel-DBMS (Schritt 428).
  • Außerdem führt der Computer automatisch die Ladestrategieempfehlung aus (Schritt 430). Weiterhin ermittelt der Computer, ob eventuell bereits geladene Tabellen in dem Ziel-DBMS entfernt werden können (Schritt 432). Wenn der Computer feststellt, dass bereits geladene Tabellen in dem Ziel-DBMS entfernt werden können, Ausgabe Ja in Schritt 432, fährt der Prozess mit Schritt 602 in 6 fort. Wenn der Computer feststellt, dass keine bereits geladene Tabellen im Ziel-DBMS entfernt werden können, Ausgabe Nein in Schritt 432, endet der Prozess danach.
  • Mit Bezug nunmehr auf die 5A und 5B wird ein Ablaufplan gezeigt, der einen Prozess zum Auswerten von Tabellen, die für ein inkrementelles Aktualisieren von Tabellendaten aktiviert sind, gemäß einer veranschaulichenden Ausführungsform veranschaulicht. In diesem Prozess sind die durch ein Ausführen der Arbeitslast in einem Ziel-DBMS erreichbaren Arbeitslast-Kosteneinsparungen verfügbar, und die für das Ausführen der Arbeitslast in dem Ziel-DBMS erforderlichen Tabellendaten sind ebenfalls verfügbar und aktuell, da das inkrementelle Aktualisieren von Tabellen aktiviert ist. Der in den 5A und 5B dargestellte Prozess kann auf einem Computer implementiert werden, z.B. auf dem Auslagerungsverwaltungsserver 108 in 1 oder dem Datenverarbeitungssystem 200 in 2.
  • Der Prozess beginnt, wenn der Computer Informationen von einem Quell-DBMS zu einer Arbeitslast, die auf dem Quell-DBMS ausgeführt wird, und zu Kosten für ein Ausführen der Arbeitslast in dem Quell-DBMS sammelt (Schritt 502). Der Computer ermittelt anhand der gesammelten Informationen eine Gruppe von Tabellen, die von der Arbeitslast referenziert wurden (Schritt 504). Der Computer wählt aus der Gruppe von Tabellen eine Tabelle aus (Schritt 506).
  • Der Computer ermittelt, ob sich die ausgewählte Tabelle in einem Ziel-DBMS befindet (Schritt 508). Wenn der Computer feststellt, dass sich die ausgewählte Tabelle nicht im Ziel-DBMS befindet, Ausgabe Nein in Schritt 508, kehrt der Prozess zu Schritt 310 von 3A zurück. Wenn der Computer feststellt, dass sich die ausgewählte Tabelle im Ziel-DBMS befindet, Ausgabe Ja in Schritt 508, ermittelt der Computer, ob ein inkrementelles Aktualisieren für die ausgewählte Tabelle aktiviert ist (Schritt 510).
  • Wenn der Computer feststellt, dass ein inkrementelles Aktualisieren für die ausgewählte Tabelle nicht aktiviert ist, Ausgabe Nein in Schritt 510, kehrt der Prozess zu Schritt 412 von 4A zurück. Wenn der Computer feststellt, dass ein inkrementelles Aktualisieren in der ausgewählten Tabelle aktiviert ist, Ausgabe Ja in Schritt 510, sammelt der Computer Echtzeit-Statistikdaten zur ausgewählten Tabelle (Schritt 512). Danach ermittelt der Computer auf Grundlage der gesammelten Echtzeit-Statistikdaten, ob die ausgewählte Tabelle noch für ein inkrementelles Aktualisieren auswählbar ist (Schritt 514).
  • Wenn der Computer auf Grundlage der gesammelten Echtzeit-Statistikdaten feststellt, dass die ausgewählte Tabelle nicht mehr für ein inkrementelles Aktualisieren auswählbar ist, Ausgabe Nein in Schritt 514, stoppt der Computer das inkrementelle Aktualisieren der ausgewählten Tabelle (Schritt 516). Danach wird der Prozess mit Schritt 520 fortgesetzt. Wenn der Computer auf Grundlage der gesammelten Echtzeit-Statistikdaten feststellt, dass die ausgewählte Tabelle noch für ein inkrementelles Aktualisieren auswählbar ist, Ausgabe Ja in Schritt 514, setzt der Computer das inkrementelle Aktualisieren der ausgewählten Tabelle fort (Schritt 518).
  • Der Computer berechnet einen aktuellen CPU-Kostenwert für das bisherige inkrementelle Aktualisieren der ausgewählten Tabelle (Schritt 520). Zusätzlich inkrementiert der Computer einen CPU-Kostenzähler um den berechneten aktuellen CPU-Kostenwert (Schritt 522). Danach ermittelt der Computer, ob eine weitere Tabelle in der Gruppe von Tabellen vorhanden ist (Schritt 524).
  • Wenn der Computer feststellt, dass eine weitere Tabelle in der Gruppe von Tabellen vorhanden ist, Ausgabe Ja in Schritt 524, kehrt der Prozess zu Schritt 506 zurück, wo der Computer eine weitere Tabelle aus der Gruppe von Tabellen auswählt. Wenn der Computer feststellt, dass in der Gruppe von Tabellen keine weitere Tabelle vorhanden ist, Ausgabe Nein in Schritt 524, ermittelt der Computer CPU-Gesamtkosten für ein inkrementelles Aktualisieren von Tabellen im Ziel-DBMS auf Grundlage des CPU-Kostenzählers (Schritt 526).
  • Der Computer vergleicht die CPU-Gesamtkosten für ein inkrementelles Aktualisieren von Tabellen in dem Ziel-DBMS mit einer Arbeitslast-Kosteneinsparung für ein Ausführen der Arbeitslast in dem Ziel-DBMS (Schritt 528). Der Computer vergleicht die CPU-Gesamtkosten mit den Arbeitslast-Kosteneinsparungen und ermittelt so, ob die CPU-Gesamtkosten höher sind als die Arbeitslast-Kosteneinsparungen (Schritt 530). Wenn der Computer feststellt, dass die CPU-Gesamtkosten höher sind als die Arbeitslast-Kosteneinsparungen, Ausgabe Ja in Schritt 530, erzeugt der Computer eine Empfehlung, das inkrementelle Aktualisieren von Tabellen in dem Ziel-DBMS zu beenden (Schritt 532). Danach wird der Prozess mit Schritt 536 fortgesetzt. Wenn der Computer feststellt, dass die CPU-Gesamtkosten geringer sind als die Arbeitslast-Kosteneinsparungen, Ausgabe Nein in Schritt 530, erzeugt der Computer eine Empfehlung, das inkrementelle Aktualisieren von Tabellen in dem Ziel-DBMS fortzusetzen (Schritt 534). Zudem führt der Computer automatisch die Empfehlung aus (Schritt 536). Danach endet der Prozess.
  • Mit Bezug nunmehr auf 6 wird ein Ablaufplan gezeigt, der einen Prozess zum Entfernen nicht oder geringfügig referenzierter Tabellen gemäß einer veranschaulichenden Ausführungsform veranschaulicht. In diesem Prozess sind Informationen zu Tabellendaten verfügbar, die in ein Ziel-DBMS geladen werden müssen, um eine Arbeitslastbeschleunigung zu ermöglichen, und das Ziel-DBMS muss auf Kandidatentabellen geprüft werden, die aus dem Ziel-DBMS entfernt werden können, um die Systemlast aufrechtzuerhalten. Der in 6 dargestellte Prozess kann auf einem Computer implementiert werden, z.B. auf dem Auslagerungsverwaltungsserver 108 in 1 oder dem Datenverarbeitungssystem 200 in 2.
  • Der Prozess beginnt, wenn der Computer in das Ziel-DBMS geladene Tabellen im Hinblick auf eine Anzahl von Arbeitslasttreffern jeder betreffenden Tabelle auswertet (Schritt 602). Beim Auswerten der Tabellen ermittelt der Computer, ob Tabellen vorhanden sind, die eine entsprechende Anzahl von Arbeitslasttreffern aufweisen, die unter einem Schwellenwert von Arbeitslasttreffern liegt (Schritt 604). Wenn der Computer feststellt, dass keine der Tabellen eine entsprechende Anzahl von Arbeitslasttreffern aufweist, die unter dem Schwellenwert von Arbeitslasttreffern liegt, Ausgabe Nein in Schritt 604, endet der Prozess danach. Wenn der Computer feststellt, dass eine oder mehrere der Tabellen eine entsprechende Anzahl von Arbeitslasttreffern aufweisen, die unter dem Schwellenwert von Arbeitslasttreffern liegt, Ausgabe Ja in Schritt 604, erzeugt der Computer eine Liste von Tabellen mit entsprechender Anzahl von Arbeitslasttreffern, die unter dem Schwellenwert für Arbeitslasttreffer liegt (Schritt 606).
  • Der Computer wählt aus der Gruppe von Tabellen eine Tabelle aus (Schritt 608). Der Computer ermittelt, ob die ausgewählte Tabelle aus dem Ziel-DBMS entfernt werden kann (Schritt 610). Wenn der Computer feststellt, dass die ausgewählte Tabelle nicht aus dem Ziel-DBMS entfernt werden kann, Ausgabe Nein in Schritt 610, behält der Computer die ausgewählte Tabelle im Ziel-DBMS (Schritt 612). Danach wird der Prozess mit Schritt 618 fortgesetzt. Wenn der Computer feststellt, dass die ausgewählte Tabelle aus dem Ziel-DBMS entfernt werden kann, Ausgabe Ja in Schritt 610, fügt der Computer die ausgewählte Tabelle einer Tabellenentfernungsliste hinzu (Schritt 614). Außerdem berechnet der Computer eine Arbeitsspeicher- und CPU-Kosteneinsparung, indem er die ausgewählte Tabelle aus dem Ziel-DBMS entfernt (Schritt 616).
  • Der Computer ermittelt, ob in der Liste von Tabellen eine weitere Tabelle vorhanden ist (Schritt 618). Wenn der Computer feststellt, dass in der Gruppe von Tabellen eine weitere Tabelle vorhanden ist, Ausgabe Ja in Schritt 618, kehrt der Prozess zu Schritt 608 zurück, wo der Computer aus der Liste von Tabellen eine weitere Tabelle auswählt. Wenn der Computer feststellt, dass in der Liste von Tabellen keine weitere Tabelle vorhanden ist, Ausgabe Nein in Schritt 618, berechnet der Computer Arbeitsspeicher- und CPU-Gesamtkosteneinsparungen durch Entfernen von Tabellen in der Tabellenentfernungsliste aus dem Ziel-DBMS (Schritt 620).
  • Außerdem erzeugt der Computer eine Tabellenentfernungsempfehlung für das Ziel-DBMS mit den Arbeitsspeicher- und CPU-Gesamtkosteneinsparungen (Schritt 622). Darüber hinaus führt der Computer automatisch die Tabellenentfernungsempfehlung aus (Schritt 624). Danach endet der Prozess.
  • Mit Bezug nunmehr auf 7 wird ein Ablaufplan gezeigt, der einen Prozess zum Auswählen einer optimalen Ladestrategie gemäß einer veranschaulichenden Ausführungsform veranschaulicht. Der in 7 dargestellte Prozess kann auf einem Computer implementiert werden, z.B. auf dem Auslagerungsverwaltungsserver 108 in 1 oder dem Datenverarbeitungssystem 200 in 2.
  • Der Prozess beginnt, wenn der Computer Informationen zu Arbeitslasten, die ein Quell-DBMS treffen, zu den Kosten für ein Ausführen der Arbeitslasten in dem Quell-DBMS, zu den durch die Arbeitslasten referenzierten Tabellen, und der Auswählbarkeit der durch die Arbeitslasten referenzierten und in ein Ziel-DBMS auszulagernden Tabellen sammelt (Schritt 702). Der Computer erfasst auch eine Größe der Tabellen, die auswählbar sind, um in das Ziel-DBMS ausgelagert zu werden (Schritt 704). Darüber hinaus wertet der Computer eine Änderungsrate der Tabellen aus, die für ein Auslagern in das Ziel-DBMS auswählbar sind (Schritt 706).
  • Anhand der Größe und der Änderungsrate der Tabellen, die für ein Auslagern in das Ziel-DBMS auswählbar sind, ermittelt der Computer CPU-Gesamtkosten für ein Laden der Teilgruppe von Daten in das Ziel-DBMS und Arbeitslast-Kosteneinsparungen für ein Ausführen einer oder mehrerer der Arbeitslasten in dem Ziel-DBMS auf Grundlage einer Gruppe einer oder mehrerer Ladestrategien (Schritt 708). Der Computer vergleicht die CPU-Gesamtkosten mit den Arbeitslast-Kosteneinsparungen jeder Ladestrategie aus der Gruppe von Ladestrategien (Schritt 710).
  • Der Computer wählt eine optimale Ladestrategie aus der Gruppe von Ladestrategien auf Grundlage eines Vergleichens der CPU-Gesamtkosten mit den Arbeitslast-Kosteneinsparungen jeder Ladestrategie aus (Schritt 712). Dann erzwingt der Computer automatisch ein Laden der Teilgruppe von Daten in das Ziel-DBMS gemäß der gewählten optimalen Ladestrategie zum beschleunigten Ausführen der einen oder mehreren Arbeitslasten (Schritt 714). Danach endet der Prozess.
  • Mit Bezug nunmehr auf 8 wird ein Ablaufplan gezeigt, der einen Prozess zum Zuordnen einer Tabellenzugriffshäufigkeit zu Arbeitsspeicher- und CPU-Kosteneinsparungen gemäß einer veranschaulichenden Ausführungsform veranschaulicht. Der in 8 dargestellte Prozess kann auf einem Computer implementiert werden, z.B. auf dem Auslagerungsverwaltungsserver 108 in 1 oder dem Datenverarbeitungssystem 200 in 2.
  • Der Prozess beginnt, wenn der Computer Informationen zu einer Gruppe von Arbeitslasten sammelt, die in einem Ziel-DBMS ausgeführt werden, sowie zu Kosten für ein Ausführen jeder betreffenden Arbeitslast in dem Ziel-DBMS (Schritt 802). Darüber hinaus erfasst der Computer eine Größe einer Gruppe von Tabellen im Ziel-DBMS und einen Referenzzählwert in Verbindung mit jeder Tabelle in der Gruppe auf Grundlage der Nutzung durch die Gruppe von Arbeitslasten (Schritt 804). Der Computer wertet ferner eine Häufigkeit des Tabellenzugriffs durch die Gruppe von Arbeitslasten für jede Tabelle in der Gruppe von Tabellen im Ziel-DBMS aus (Schritt 806).
  • Anschließend ordnet der Computer die Tabellenzugriffshäufigkeit jeder durch die Gruppe von Arbeitslasten referenzierten Tabelle den durch Entfernen von Tabellen mit geringer oder keiner Zugriffshäufigkeit aus dem Ziel-DBMS entstehenden Arbeitsspeicher- und CPU-Kosteneinsparungen zu, um Tabellenentfernungskandidaten zu ermitteln (Schritt 808). Dann entfernt der Computer automatisch die ermittelten Tabellenentfernungskandidaten aus dem Ziel-DBMS auf Grundlage des Zuordnens, um die Arbeitsspeichernutzung zu verringern und die Arbeitslastleistung in dem Ziel-DBMS zu erhöhen (Schritt 810). Danach endet der Prozess.
  • Somit stellen veranschaulichende Ausführungsformen der vorliegenden Erfindung ein durch einen Computer implementiertes Verfahren, ein Computersystem und ein Computerprogrammprodukt zum automatischen Optimieren von Computerarbeitsspeicher- und Zentraleinheits-Ressourcen bereit, die von einem Ziel-Datenbankverwaltungssystem verwendet werden, um die Arbeitslastleistung zu erhöhen. Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zwecke der Veranschaulichung vorgestellt, sollen jedoch nicht erschöpfend oder auf die Ausführungsformen beschränkt sein. Für Fachleute ist offensichtlich, dass viele Änderungen und Abwandlungen möglich sind, ohne vom Anwendungsbereich der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber Technologien auf dem Markt bestmöglich zu erläutern oder es Fachleuten zu ermöglichen, die hierin beschriebenen Ausführungsformen zu verstehen.

Claims (28)

  1. Durch einen Computer implementiertes Verfahren zum Laden eines Datensatzes in ein Ziel-Datenbankverwaltungssystem (DBMS) von einem Quell-DBMS, wobei das durch einen Computer implementierte Verfahren aufweist: Sammeln, durch einen Computer, von Echtzeit-Statistiken von dem Quell-DBMS, die Tabellengrößen- und Tabellenänderungsraten-Informationen beinhalten; Ermitteln, durch den Computer, von Zentraleinheit-Gesamtkosten (CPU-Gesamtkosten) für ein Laden des Datensatzes in das Ziel-DBMS mithilfe von gesammelten Größen- und Änderungsraten-Informationen, die Tabellen auf dem Quell-DBMS entsprechen, die zum Auslagern in das Ziel-DBMS auswählbar sind, und Arbeitslast-Kosteneinsparungen, die durch ein Ausführen einer oder mehrerer Arbeitslasten in dem Ziel-DBMS auf Grundlage einer Gruppe einer oder mehrerer Ladestrategien entstehen, wobei die Gruppe von Ladestrategien aus einer Gruppe ausgewählt wird, die aus einer UNLOAD-gestützte Auffrischungsstrategie und einer inkrementellen Aktualisierungsstrategie besteht; Vergleichen der CPU-Gesamtkosten durch den Computer mit den Arbeitslast-Kosteneinsparungen jeder Ladestrategie aus der Gruppe von Ladestrategien; Auswählen einer optimalen Ladestrategie aus der Gruppe von Ladestrategien durch den Computer auf Grundlage des Vergleichens der CPU-Gesamtkosten mit den Arbeitslast-Kosteneinsparungen jeder Ladestrategie; und automatisches Laden des Datensatzes in das Ziel-DBMS vom Quell-DBMS durch den Computer gemäß der gewählten optimalen Ladestrategie zum beschleunigten Ausführen der einen oder mehreren Arbeitslasten.
  2. Durch einen Computer implementiertes Verfahren nach Anspruch 1, das weiterhin aufweist: Sammeln von Informationen durch den Computer zu Arbeitslasten, die das Quell-DBMS treffen, zu Kosten für ein Ausführen der Arbeitslasten in dem Quell-DBMS, zu von den Arbeitslasten referenzierten Tabellen, und der Auswählbarkeit der durch die Arbeitslasten referenzierten und in ein Ziel-DBMS auszulagernden Tabellen; Erfassen von Größen-Informationen, die jeder der Tabellen entsprechen, die auswählbar sind, um von dem Quell-DBMS in das Ziel-DBMS ausgelagert zu werden, durch den Computer; und Bewerten von Änderungsraten-Informationen, die jeder der Tabellen entsprechen, die auswählbar sind, um von dem Quell-DBMS in das Ziel-DBMS ausgelagert zu werden, durch den Computer.
  3. Durch einen Computer implementiertes Verfahren nach jedem der vorherigen Ansprüche, das weiterhin aufweist: Sammeln von Informationen durch den Computer zu einer Gruppe von Arbeitslasten, die in dem Ziel-DBMS ausgeführt werden, und zu Kosten für ein Ausführen jeder betreffenden Arbeitslast in dem Ziel-DBMS; Erfassen durch den Computer einer Größe einer Gruppe von Tabellen im Ziel-DBMS und eines Referenzzählwerts in Verbindung mit jeder Tabelle der Gruppe auf Grundlage der Nutzung durch die Gruppe von Arbeitslasten; Auswerten durch den Computer einer Häufigkeit des Tabellenzugriffs durch die Gruppe von Arbeitslasten für jede Tabelle in der Gruppe von Tabellen im Ziel-DBMS; Zuordnen durch den Computer der Häufigkeit eines Tabellenzugriffs jeder durch die Gruppe von Arbeitslasten referenzierten Tabelle zu den durch Entfernen von Tabellen mit geringer oder keiner Zugriffshäufigkeit aus dem Ziel-DBMS entstehenden Arbeitsspeicher- und CPU-Kosteneinsparungen, um Tabellenentfernungskandidaten zu ermitteln; und automatisches Entfernen der ermittelten Tabellenentfernungskandidaten aus dem Ziel-DBMS durch den Computer auf Grundlage des Zuordnens, um die Arbeitsspeichernutzung zu verringern und die Arbeitslastleistung in dem Ziel-DBMS zu erhöhen.
  4. Durch einen Computer implementiertes Verfahren nach Anspruch 1, das weiterhin aufweist: Sammeln von Informationen durch den Computer von einem Quell-DBMS zu einer auf dem Quell-DBMS ausgeführten Arbeitslast, und zu Kosten für ein Ausführen der Arbeitslast in dem Quell-DBMS; Ermitteln einer mithilfe der gesammelten Informationen von der Arbeitslast referenzierten Gruppe von Tabellen durch den Computer; Auswählen einer Tabelle aus der Gruppe von Tabellen durch den Computer; und Ermitteln durch den Computer, ob sich die ausgewählte Tabelle im Ziel-DBMS befindet.
  5. Durch einen Computer implementiertes Verfahren nach Anspruch 4, das weiterhin aufweist: In Reaktion darauf, dass der Computer feststellt, dass sich die ausgewählte Tabelle nicht im Ziel-DBMS befindet, Ermitteln durch den Computer einer in die ausgewählte Tabelle zu ladenden Datenmenge durch Referenzieren von Katalogtabellen des Quell-DBMS; Berechnen durch den Computer eines CPU-Kostenwerts für ein Laden der Datenmenge in die ausgewählte Tabelle; und Inkrementieren eines CPU-Kostenzählers um den berechneten CPU-Kostenwert durch den Computer.
  6. Durch einen Computer implementiertes Verfahren nach Anspruch 5, das weiterhin aufweist: Ermitteln durch den Computer von CPU-Gesamtkosten für ein Laden von Daten in die Gruppe von Tabellen in dem Ziel-DBMS auf Grundlage des CPU-Kostenzählers; Vergleichen der CPU-Gesamtkosten durch den Computer für ein Laden der Daten in die Gruppe von Tabellen in dem Ziel-DBMS mit einer Arbeitslast-Kosteneinsparung für ein Ausführen der Arbeitslast in dem Ziel-DBMS; in Reaktion darauf, dass der Computer die CPU-Gesamtkosten mit den Arbeitslast-Kosteneinsparungen vergleicht, Ermitteln durch den Computer, ob die CPU-Gesamtkosten höher sind als die Arbeitslast-Kosteneinsparungen; und in Reaktion darauf, dass der Computer feststellt, dass die CPU-Gesamtkosten geringer sind als die Arbeitslast-Kosteneinsparungen, Erzeugen einer Ladestrategieempfehlung durch den Computer zum Laden der Daten in die Gruppe der Tabellen im Ziel-DBMS.
  7. Durch einen Computer implementiertes Verfahren nach Anspruch 4, das weiterhin aufweist: in Reaktion darauf, dass der Computer feststellt, dass sich die ausgewählte Tabelle im Ziel-DBMS befindet, Ermitteln durch den Computer, ob ein inkrementelles Aktualisieren in der ausgewählten Tabelle aktiviert ist; in Reaktion darauf, dass der Computer feststellt, dass kein inkrementelles Aktualisieren in der ausgewählten Tabelle aktiviert ist, Ermitteln durch den Computer, ob die ausgewählte Tabelle partitioniert ist; in Reaktion darauf, dass der Computer feststellt, dass die ausgewählte Tabelle partitioniert ist, Berechnen durch den Computer eines CPU-Kostenwerts für ein Neuladen der Partition der ausgewählten Tabelle; und Inkrementieren eines CPU-Kostenzählers durch den Computer um den berechneten CPU-Kostenwert für ein Neuladen der Partition der ausgewählten Tabelle.
  8. Durch einen Computer implementiertes Verfahren nach Anspruch 7, das weiterhin aufweist: in Reaktion darauf, dass der Computer feststellt, dass die ausgewählte Tabelle nicht partitioniert ist, Berechnen eines CPU-Kostenwerts durch den Computer für ein Neuladen der gesamten ausgewählten Tabelle; und Inkrementieren des CPU-Kostenzählers durch den Computer um den berechneten CPU-Kostenwert für ein Neuladen der gesamten ausgewählten Tabelle.
  9. Durch einen Computer implementiertes Verfahren nach Anspruch 7 oder 8, das weiterhin aufweist: in Reaktion darauf, dass der Computer feststellt, dass ein inkrementelles Aktualisieren in der ausgewählten Tabelle aktiviert ist, Sammeln von Echtzeit-Statistikdaten zur ausgewählten Tabelle durch den Computer; Ermitteln durch den Computer auf Grundlage der gesammelten Echtzeit-Statistikdaten zur ausgewählten Tabelle, ob die ausgewählte Tabelle noch immer auswählbar ist für ein inkrementelles Aktualisieren; in Reaktion darauf, dass der Computer feststellt, dass die ausgewählte Tabelle nicht mehr für ein inkrementelles Aktualisieren auf Grundlage der gesammelten Echtzeit-Statistikdaten auswählbar ist, Stoppen des inkrementellen Aktualisierens der ausgewählten Tabelle durch den Computer; Berechnen eines aktuellen CPU-Kostenwerts durch den Computer für ein bisheriges inkrementelles Aktualisieren der ausgewählten Tabelle; und Inkrementieren des CPU-Kostenzählers durch den Computer um den berechneten aktuellen CPU-Kostenwert für das bisherige inkrementelle Aktualisieren der ausgewählten Tabelle.
  10. Durch einen Computer implementiertes Verfahren nach Anspruch 9, das weiterhin aufweist: in Reaktion darauf, dass der Computer feststellt, dass die ausgewählte Tabelle noch für ein inkrementelles Aktualisieren auf Grundlage der gesammelten Echtzeit-Statistikdaten auswählbar ist, Fortsetzen des inkrementellen Aktualisierens der ausgewählten Tabelle durch den Computer; Berechnen des aktuellen CPU-Kostenwerts durch den Computer für das bisherige inkrementelle Aktualisieren der ausgewählten Tabelle; und Inkrementieren des CPU-Kostenzählers durch den Computer um den berechneten aktuellen CPU-Kostenwert für das bisherige inkrementelle Aktualisieren der ausgewählten Tabelle.
  11. Durch einen Computer implementiertes Verfahren nach Anspruch 1, das weiterhin aufweist: Auswerten von Tabellen durch den Computer, die für eine Anzahl von Arbeitslasttreffern jeder betreffenden Tabelle in das Ziel-DBMS geladen wurden; in Reaktion darauf, dass der Computer die Tabellen auswertet, Ermitteln durch den Computer, ob eine der Tabellen eine entsprechende Anzahl von Arbeitslasttreffern aufweist, die unter einem Schwellenwert für Arbeitslasttreffer liegt; und in Reaktion darauf, dass der Computer feststellt, dass eine oder mehrere der Tabellen eine entsprechende Anzahl von Arbeitslasttreffern aufweist, die unter dem Schwellenwert von Arbeitslasttreffern liegt, Erzeugen durch den Computer einer Liste von Tabellen mit entsprechender Anzahl von Arbeitslasttreffern, die unter dem Schwellenwert von Arbeitslasttreffern liegt.
  12. Durch einen Computer implementiertes Verfahren nach Anspruch 11, das weiterhin aufweist: Berechnen durch den Computer von Arbeitsspeicher- und CPU-Gesamtkosteneinsparungen durch Entfernen der Tabellen in der Tabellenentfernungsliste aus dem Ziel-DBMS; Erzeugen durch den Computer einer Tabellenentfernungsempfehlung für das Ziel-DBMS mit den Arbeitsspeicher- und CPU-Gesamtkosteneinsparungen; und automatisches Ausführen der Tabellenentfernungsempfehlung durch den Computer.
  13. Durch einen Computer implementiertes Verfahren nach einem der vorhergehenden Ansprüche, wobei ermittelte Arbeitslast-Kosteneinsparungen für eine bestimmte Tabelle vorhergesagte zukünftige Abfragen der bestimmten Tabelle umfassen.
  14. Computersystem zum Laden eines Datensatzes in ein Ziel-Datenbankverwaltungssystem (DBMS) von einem Quell-DBMS, wobei das Computersystem aufweist: ein Bussystem; eine Speichereinheit, die mit dem Bussystem verbunden ist, wobei die Speichereinheit Programmanweisungen speichert; und einen mit dem Bussystem verbundenen Prozessor, wobei der Prozessor die Programmanweisungen ausführt, um: Echtzeit-Statistiken von dem Quell-DBMS, die Tabellengrößen- und Tabellenänderungsraten-Informationen beinhalten, zu sammeln; CPU-Gesamtkosten für ein Laden des Datensatzes in das Ziel-DBMS mithilfe von Größen- und Änderungsraten-Informationen, die Tabellen auf dem Quell-DBMS entsprechen, die für ein Auslagern in das Ziel-DBMS auswählbar sind, und Arbeitslast-Kosteneinsparungen durch ein Ausführen einer oder mehrerer Arbeitslasten auf dem Ziel-DBMS auf Grundlage einer Gruppe einer oder mehrerer Ladestrategien zu ermitteln, wobei die Gruppe von Ladestrategien aus einer Gruppe ausgewählt wird, die aus einer UNLOAD-gestützte Auffrischungsstrategie und einer inkrementellen Aktualisierungsstrategie besteht; die CPU-Gesamtkosten mit den Arbeitslast-Kosteneinsparungen jeder Ladestrategie aus der Gruppe von Ladestrategien zu vergleichen; eine optimale Ladestrategie aus der Gruppe von Ladestrategien auf Grundlage des Vergleichens der CPU-Gesamtkosten mit den Arbeitslast-Kosteneinsparungen jeder Ladestrategie auszuwählen; und den Datensatz in das Ziel-DBMS vom Quell-DBMS gemäß der gewählten optimalen Ladestrategie für ein beschleunigtes Ausführen der einen oder mehreren Arbeitslasten automatisch zu laden.
  15. Computersystem nach Anspruch 14, wobei der Prozessor die Programmanweisungen weiter ausführt, um: Informationen zu Arbeitslasten, die das Quell-DBMS treffen, zu Kosten für ein Ausführen der Arbeitslasten auf dem Quell-DBMS, zu von den Arbeitslasten referenzierten Tabellen und der Auswählbarkeit der durch die Arbeitslasten referenzierten und in ein Ziel-DBMS auszulagernden Tabellen zu sammeln; Größen-Informationen, die jeder der Tabellen entsprechen, zu erfassen, die auswählbar sind, um in das Ziel-DBMS ausgelagert zu werden; und Änderungsraten-Informationen, die jeder der Tabellen entsprechen, zu bewerten, die auswählbar sind, um in das Ziel-DBMS ausgelagert zu werden.
  16. Computersystem nach Anspruch 14 oder 15, wobei der Prozessor die Programmanweisungen weiter ausführt, um: Informationen zu einer Gruppe von Arbeitslasten, die auf dem Ziel-DBMS ausgeführt werden, und zu Kosten für ein Ausführen jeder betreffenden Arbeitslast in dem Ziel-DBMS zu sammeln; eine Größe einer Gruppe von Tabellen im Ziel-DBMS und einen Referenzzählwert in Verbindung mit jeder Tabelle der Gruppe auf Grundlage der Nutzung durch die Gruppe von Arbeitslasten zu erfassen; eine Häufigkeit des Tabellenzugriffs durch die Gruppe von Arbeitslasten für jede Tabelle in der Gruppe von Tabellen im Ziel-DBMS auszuwerten; die Tabellenzugriffshäufigkeit jeder durch die Gruppe von Arbeitslasten referenzierten Tabelle zu den durch Entfernen von Tabellen mit geringer oder keiner Zugriffshäufigkeit aus dem Ziel-DBMS entstehenden Arbeitsspeicher- und CPU-Kosteneinsparungen zuzuordnen, um Tabellenentfernungskandidaten zu ermitteln; und die ermittelten Tabellenentfernungskandidaten aus dem Ziel-DBMS auf Grundlage des Zuordnens automatisch zu entfernen, um die Arbeitsspeichernutzung zu verringern und die Arbeitslastleistung in dem Ziel-DBMS zu erhöhen.
  17. Computersystem nach Anspruch 14, wobei der Prozessor die Programmanweisungen weiter ausführt, um: Informationen von einem Quell-DBMS zu einer Arbeitslast, die in dem Quell-DBMS ausgeführt wird, und zu Kosten für ein Ausführen der Arbeitslast in dem Quell-DBMS zu sammeln; eine mithilfe der gesammelten Informationen von der Arbeitslast referenzierte Gruppe von Tabellen zu ermitteln; eine Tabelle aus der Gruppe von Tabellen auszuwählen; und zu ermitteln, ob sich die ausgewählte Tabelle im Ziel-DBMS befindet.
  18. Computersystem nach Anspruch 17, wobei der Prozessor die Programmanweisungen weiter ausführt, um: In Reaktion darauf, dass der Computer feststellt, dass sich die ausgewählte Tabelle nicht im Ziel-DBMS befindet, eine in die ausgewählte Tabelle zu ladende Datenmenge durch Referenzieren von Katalogtabellen des Quell-DBMS zu ermitteln; einen CPU-Kostenwert für ein Laden der Datenmenge in die ausgewählte Tabelle zu berechnen; und einen CPU-Kostenzähler um den berechneten CPU-Kostenwert durch den Computer zu inkrementieren.
  19. Computersystem nach Anspruch 18, wobei der Prozessor die Programmanweisungen weiter ausführt, um: CPU-Gesamtkosten für ein Laden von Daten in die Gruppe von Tabellen in dem Ziel-DBMS auf Grundlage des CPU-Kostenzählers zu ermitteln; die CPU-Gesamtkosten für ein Laden der Daten in die Gruppe von Tabellen in dem Ziel-DBMS mit einer Arbeitslast-Kosteneinsparung für ein Ausführen der Arbeitslast in dem Ziel-DBMS zu vergleichen; in Reaktion darauf, dass der Computer die CPU-Gesamtkosten mit den Arbeitslast-Kosteneinsparungen vergleicht, zu ermitteln, ob die CPU-Gesamtkosten höher sind als die Arbeitslast-Kosteneinsparungen; und in Reaktion darauf, dass der Computer feststellt, dass die CPU-Gesamtkosten geringer sind als die Arbeitslast-Kosteneinsparungen, eine Ladestrategieempfehlung zum Laden der Daten in die Gruppe von Tabellen im Ziel-DBMS zu erzeugen.
  20. Computersystem nach Anspruch 17, wobei der Prozessor die Programmanweisungen weiter ausführt, um: In Reaktion darauf, dass der Computer feststellt, dass sich die ausgewählte Tabelle im Ziel-DBMS befindet, zu ermitteln, ob ein inkrementelles Aktualisieren in der ausgewählten Tabelle aktiviert ist; in Reaktion darauf, dass der Computer feststellt, dass kein inkrementelles Aktualisieren in der ausgewählten Tabelle aktiviert ist, zu ermitteln, ob die ausgewählte Tabelle partitioniert ist; in Reaktion darauf, dass der Computer feststellt, dass die ausgewählte Tabelle partitioniert ist, einen CPU-Kostenwert für ein Neuladen der Partition der ausgewählten Tabelle zu berechnen; und einen CPU-Kostenzähler um den berechneten CPU-Kostenwert für ein Neuladen der Partition der ausgewählten Tabelle zu inkrementieren.
  21. Computersystem nach Anspruch 20, wobei der Prozessor die Programmanweisungen weiter ausführt, um: In Reaktion darauf, dass der Computer feststellt, dass die ausgewählte Tabelle nicht partitioniert ist, einen CPU-Kostenwert für ein Neuladen der gesamten ausgewählten Tabelle zu berechnen; und den CPU-Kostenzähler um den berechneten CPU-Kostenwert für ein Neuladen der gesamten ausgewählten Tabelle zu inkrementieren.
  22. Computersystem nach Anspruch 20 oder 21, wobei der Prozessor die Programmanweisungen weiter ausführt, um: in Reaktion darauf, dass der Computer feststellt, dass ein inkrementelles Aktualisieren in der ausgewählten Tabelle aktiviert ist, Echtzeit-Statistikdaten zur ausgewählten Tabelle zu sammeln; zu ermitteln, ob die ausgewählte Tabelle auf Grundlage der gesammelten Echtzeit-Statistikdaten zur ausgewählten Tabelle noch immer auswählbar ist für ein inkrementelles Aktualisieren; in Reaktion darauf, dass der Computer feststellt, dass die ausgewählte Tabelle nicht mehr für ein inkrementelles Aktualisieren auf Grundlage der gesammelten Echtzeit-Statistikdaten auswählbar ist, das inkrementelle Aktualisieren der ausgewählten Tabelle zu stoppen; einen aktuellen CPU-Kostenwert für das bisherige inkrementelle Aktualisieren der ausgewählten Tabelle zu berechnen; und den CPU-Kostenzähler um den berechneten aktuellen CPU-Kostenwert für das bisherige inkrementelle Aktualisieren der ausgewählten Tabelle zu inkrementieren.
  23. Computersystem nach Anspruch 22, wobei der Prozessor die Programmanweisungen weiter ausführt, um: In Reaktion darauf, dass der Computer feststellt, dass die ausgewählte Tabelle noch für ein inkrementelles Aktualisieren auf Grundlage der gesammelten Echtzeit-Statistikdaten auswählbar ist, das inkrementelle Aktualisieren der ausgewählten Tabelle fortzusetzen; den aktuellen CPU-Kostenwert für das bisherige inkrementelle Aktualisieren der ausgewählten Tabelle zu berechnen; und den CPU-Kostenzähler um den berechneten aktuellen CPU-Kostenwert für das bisherige inkrementelle Aktualisieren der ausgewählten Tabelle zu inkrementieren.
  24. Computersystem nach Anspruch 14, wobei der Prozessor die Programmanweisungen weiter ausführt, um: Tabellen auszuwerten, die für eine Anzahl von Arbeitslasttreffern jeder betreffenden Tabelle in das Ziel-DBMS geladen wurden; in Reaktion darauf, dass der Computer die Tabellen auswertet, zu ermitteln, ob eine der Tabellen eine entsprechende Anzahl von Arbeitslasttreffern aufweist, die unter einem Schwellenwert für Arbeitslasttreffer liegt; und In Reaktion darauf, dass der Computer feststellt, dass eine oder mehrere der Tabellen eine entsprechende Anzahl von Arbeitslasttreffern aufweist, die unter dem Schwellenwert von Arbeitslasttreffern liegt, eine Liste von Tabellen mit entsprechender Anzahl von Arbeitslasttreffern zu erzeugen, die unter dem Schwellenwert für Arbeitslasttreffer liegt.
  25. Computersystem nach Anspruch 24, wobei der Prozessor die Programmanweisungen weiter ausführt, um: Arbeitsspeicher- und CPU-Gesamtkosteneinsparungen durch Entfernen der Tabellen in der Tabellenentfernungsliste aus dem Ziel-DBMS zu berechnen; eine Tabellenentfernungsempfehlung für das Ziel-DBMS mit den Arbeitsspeicher- und CPU-Gesamtkosteneinsparungen zu erzeugen; und die Tabellenentfernungsempfehlung automatisch auszuführen.
  26. Computersystem nach einem der Ansprüche 14 bis 24, wobei ermittelte Arbeitslastkosteneinsparungen für eine bestimmte Tabelle vorhergesagte zukünftige Abfragen der bestimmten Tabelle umfassen.
  27. Computerprogrammprodukt zum Laden eines Datensatzes in ein Ziel-Datenbankverwaltungssystem (DBMS) von einem Quell-DBMS, wobei das Computerprogrammprodukt aufweist: ein durch einen Computer lesbares Speichermedium, das durch eine Verarbeitungsschaltung lesbar ist und Anweisungen zum Ausführen durch die Verarbeitungsschaltung speichert, um ein Verfahren nach einem der Ansprüche 1 bis 13 durchzuführen.
  28. Computerprogramm, das auf einem durch einen Computer lesbaren Medium gespeichert ist und in den internen Speicher eines digitalen Computers ladbar ist, wobei das Computerprogramm Software-Codeteile aufweist, wenn das Programm auf einem Computer ausgeführt wird, um das Verfahren nach einem der Ansprüche 1 bis 13 durchzuführen.
DE112019001480.3T 2018-05-09 2019-05-07 Automatisches Optimieren der Ressourcennutzung in einemZieldatenbankverwaltungssystem zum Erhöhen der Arbeitslastleistung Active DE112019001480B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/974,828 2018-05-09
US15/974,828 US10691658B2 (en) 2018-05-09 2018-05-09 Automatically optimizing resource usage on a target database management system to increase workload performance
PCT/IB2019/053720 WO2019215601A1 (en) 2018-05-09 2019-05-07 Automatically optimizing resource usage on a target database management system to increase workload performance

Publications (2)

Publication Number Publication Date
DE112019001480T5 DE112019001480T5 (de) 2021-01-07
DE112019001480B4 true DE112019001480B4 (de) 2022-08-04

Family

ID=68463578

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019001480.3T Active DE112019001480B4 (de) 2018-05-09 2019-05-07 Automatisches Optimieren der Ressourcennutzung in einemZieldatenbankverwaltungssystem zum Erhöhen der Arbeitslastleistung

Country Status (6)

Country Link
US (1) US10691658B2 (de)
JP (1) JP7291719B2 (de)
CN (1) CN112106038A (de)
DE (1) DE112019001480B4 (de)
GB (1) GB2586109B (de)
WO (1) WO2019215601A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10915517B2 (en) * 2018-11-26 2021-02-09 Bank Of America Corporation Database tool
US11271994B2 (en) * 2018-12-28 2022-03-08 Intel Corporation Technologies for providing selective offload of execution to the edge
US11100087B2 (en) * 2019-04-26 2021-08-24 Microsoft Technology Licensing, Llc Data tokenization system maintaining data integrity
US11093477B1 (en) * 2020-03-17 2021-08-17 International Business Machines Corporation Multiple source database system consolidation
US11423025B2 (en) 2020-07-27 2022-08-23 International Business Machines Corporation Direct data loading of middleware-generated records
US11379456B2 (en) * 2020-10-01 2022-07-05 Oracle International Corporation Efficient adjustment of spin-locking parameter values
US11868261B2 (en) 2021-07-20 2024-01-09 Oracle International Corporation Prediction of buffer pool size for transaction processing workloads
US11494397B1 (en) * 2021-09-16 2022-11-08 Accenture Global Solutions Limited Data digital decoupling of legacy systems
US11874751B2 (en) * 2021-12-09 2024-01-16 International Business Machines Corporation Operating a data center

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150106578A1 (en) 2013-10-15 2015-04-16 Coho Data Inc. Systems, methods and devices for implementing data management in a distributed data storage system
US20160224579A1 (en) 2015-01-30 2016-08-04 Oracle International Corporation Workload aware data placement for join-based query processing in a cluster
US20170147672A1 (en) 2015-11-25 2017-05-25 International Business Machines Corporation Determining Data Replication Cost for Cloud Based Application
US9910861B2 (en) 2012-09-28 2018-03-06 Oracle International Corporation Automated information lifecycle management using low access patterns
US20180101567A1 (en) 2016-09-13 2018-04-12 International Business Machines Corporation Query Optimization in Hybrid DBMS

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3449326B2 (ja) * 1999-12-08 2003-09-22 日本電気株式会社 データ検索システム及びパケット処理装置並びに制御方法
US6950848B1 (en) 2000-05-05 2005-09-27 Yousefi Zadeh Homayoun Database load balancing for multi-tier computer systems
US7233998B2 (en) 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US7010521B2 (en) 2002-05-13 2006-03-07 Netezza Corporation Optimized database appliance
KR20040009126A (ko) 2002-07-22 2004-01-31 엘지전자 주식회사 데이터 베이스 시스템의 저부하 통계처리 장치 및 방법
US7246254B2 (en) * 2003-07-16 2007-07-17 International Business Machines Corporation System and method for automatically and dynamically optimizing application data resources to meet business objectives
US7395537B1 (en) 2003-12-08 2008-07-01 Teradata, Us Inc. Administering the workload of a database system using feedback
US8126870B2 (en) 2005-03-28 2012-02-28 Sybase, Inc. System and methodology for parallel query optimization using semantic-based partitioning
US7734615B2 (en) 2005-05-26 2010-06-08 International Business Machines Corporation Performance data for query optimization of database partitions
US8386463B2 (en) 2005-07-14 2013-02-26 International Business Machines Corporation Method and apparatus for dynamically associating different query execution strategies with selective portions of a database table
US8752055B2 (en) 2007-05-10 2014-06-10 International Business Machines Corporation Method of managing resources within a set of processes
US7885969B2 (en) 2007-09-17 2011-02-08 International Business Machines Corporation System and method for executing compute-intensive database user-defined programs on an attached high-performance parallel computer
US9165032B2 (en) 2007-11-21 2015-10-20 Hewlett-Packard Development Company, L.P. Allocation of resources for concurrent query execution via adaptive segmentation
EP2073118A1 (de) 2007-12-17 2009-06-24 Nokia Siemens Networks Oy Ladungsverteilung in einem verteilten Datenbanksystem
US8145652B2 (en) 2008-10-09 2012-03-27 International Business Machines Corporation Automated propagation of non-conflicting queries in distributed databases
US8782443B2 (en) * 2010-05-25 2014-07-15 Microsoft Corporation Resource-based adaptive server loading
US10803066B2 (en) 2010-06-29 2020-10-13 Teradata Us, Inc. Methods and systems for hardware acceleration of database operations and queries for a versioned database based on multiple hardware accelerators
US8356027B2 (en) 2010-10-07 2013-01-15 Sap Ag Hybrid query execution plan generation and cost model evaluation
RU2014106859A (ru) 2011-07-25 2015-08-27 Серверджи, Инк. Способ и система для построения маломощной компьютерной системы
US9110948B2 (en) * 2012-11-09 2015-08-18 International Business Machines Corporation Relative performance prediction of a replacement database management system (DBMS)
GB2510429A (en) 2013-02-05 2014-08-06 Ibm Assessing response routes in a network
US9495418B2 (en) 2013-08-07 2016-11-15 International Business Machines Corporation Scalable acceleration of database query operations
US9830354B2 (en) 2013-08-07 2017-11-28 International Business Machines Corporation Accelerating multiple query processing operations
US10585887B2 (en) * 2015-03-30 2020-03-10 Oracle International Corporation Multi-system query execution plan
JP6644637B2 (ja) * 2016-05-25 2020-02-12 株式会社日立製作所 高速化装置、計算機システム及びデータ処理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9910861B2 (en) 2012-09-28 2018-03-06 Oracle International Corporation Automated information lifecycle management using low access patterns
US20150106578A1 (en) 2013-10-15 2015-04-16 Coho Data Inc. Systems, methods and devices for implementing data management in a distributed data storage system
US20160224579A1 (en) 2015-01-30 2016-08-04 Oracle International Corporation Workload aware data placement for join-based query processing in a cluster
US20170147672A1 (en) 2015-11-25 2017-05-25 International Business Machines Corporation Determining Data Replication Cost for Cloud Based Application
US20180101567A1 (en) 2016-09-13 2018-04-12 International Business Machines Corporation Query Optimization in Hybrid DBMS

Also Published As

Publication number Publication date
US10691658B2 (en) 2020-06-23
JP2021521507A (ja) 2021-08-26
GB2586109A (en) 2021-02-03
CN112106038A (zh) 2020-12-18
DE112019001480T5 (de) 2021-01-07
GB202018112D0 (en) 2020-12-30
WO2019215601A1 (en) 2019-11-14
US20190347342A1 (en) 2019-11-14
JP7291719B2 (ja) 2023-06-15
GB2586109B (en) 2021-07-14

Similar Documents

Publication Publication Date Title
DE112019001480B4 (de) Automatisches Optimieren der Ressourcennutzung in einemZieldatenbankverwaltungssystem zum Erhöhen der Arbeitslastleistung
DE60224432T2 (de) Dynamische und automatische speicherverwaltung
DE112020000749T5 (de) Indexerstellung für sich entwickelnde umfangreiche Datensätze in Hybriden Transaktions- und Analysenverarbeitungssystemen mit mehreren Mastern
DE102012216022B4 (de) Verwaltung einer Zeitpunktkopie-Beziehung für platzsparende Datenträger
DE112011100618B4 (de) Verwalten von Schreiboperationen auf einen Speicherbereich von Spuren, der zwischen Speichereinheiten verlagert wird
DE112018004222T5 (de) Datenbankaufteilung
DE112019002948T5 (de) Feststellen einer optimalen speicherumgebung für datensätze und für das migrieren von datensätzen
DE202012013432U1 (de) Speichern von Daten auf Speicherknoten
DE112013000650B4 (de) Datenzwischenspeicherungsbereich
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE112015000218T5 (de) Verfahren, System und Computerprogramm zum Abtasten einer Mehrzahl von Speicherbereichen in einem Arbeitsspeicher nach einer spezifizierten Anzahl von Ergebnissen
DE202011110124U1 (de) Hybridabfrageausführungsplan
DE112012005037T5 (de) Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds
DE202014010909U1 (de) Verteilung von Daten in verteilten Speichersystemen
DE112012004042T5 (de) Adaptives Ermitteln der Antwortzeitverteilung von Transaktionsprozessen
DE112020003596B4 (de) Datenbank-Tuning unter Verwendung eines föderierten maschinellen Lernsystems eines Centerless-Netzwerks
DE112018000456T5 (de) Verwalten von umfangreichen Zuordnungsgruppen unter Verwendung von optimierten Bitmap-Darstellungen
DE102021125630A1 (de) Datensynchronisation in einem datenanalysesystem
DE112012004796T5 (de) Periodische Auslagerung von Innen- und Aussendurchmessern von Platten zum Verbessern von Lesereaktionszeiten
DE112021000338T5 (de) Auslagern der statistikerfassung
DE102012212183A1 (de) Verfahren und Speichercontroller zur Bestimmung einer Zugriffscharakteristik einer Datenentität
DE102012221928B4 (de) Dynamische Verwaltung von Speicherlebensdauer in Hybridspeicherkonfigurationen
DE112016000776T5 (de) Effiziente Durchführung von Einfüge- und Punktabfrage-Operationen in einem Spaltenspeicher
DE102012221261A1 (de) Verfahren zum Zwischenspeichern und System zum Ausführen des Verfahrens zum Zwischenspeichern zum Betreiben eines mindestens einen Host-Computer aufweisenden Computerserversystems
DE112021003031T5 (de) Archivieren von nur-beschleuniger-datenbanktabellen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final