DE112021000338T5 - Auslagern der statistikerfassung - Google Patents

Auslagern der statistikerfassung Download PDF

Info

Publication number
DE112021000338T5
DE112021000338T5 DE112021000338.0T DE112021000338T DE112021000338T5 DE 112021000338 T5 DE112021000338 T5 DE 112021000338T5 DE 112021000338 T DE112021000338 T DE 112021000338T DE 112021000338 T5 DE112021000338 T5 DE 112021000338T5
Authority
DE
Germany
Prior art keywords
statistics
database system
source
cost
generating
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.)
Granted
Application number
DE112021000338.0T
Other languages
English (en)
Other versions
DE112021000338B4 (de
Inventor
Dennis Butterstein
Oliver Benke
Tobias BERGMANN
Felix Beier
Terence Purcell
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 DE112021000338T5 publication Critical patent/DE112021000338T5/de
Application granted granted Critical
Publication of DE112021000338B4 publication Critical patent/DE112021000338B4/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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • G06F16/24545Selectivity estimation or determination
    • 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
    • G06F16/235Update request formulation
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Operations Research (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Treatment Of Liquids With Adsorbents In General (AREA)
  • Sink And Installation For Waste Water (AREA)
  • Nitrogen And Oxygen Or Sulfur-Condensed Heterocyclic Ring Systems (AREA)
  • Other Investigation Or Analysis Of Materials By Electrical Means (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Solid-Sorbent Or Filter-Aiding Compositions (AREA)

Abstract

Verfahren und Systeme zum Erzeugen von Datenbankstatistiken. Die Tabellenstatistiken in einem Metadatenkatalog eines Quelldatenbanksystems werden beobachtet, die Kosten zum Erzeugen von Statistiken durch Verwenden eines Zieldatenbanksystems werden geschätzt, und die Kosten zum Erzeugen von Quellstatistiken durch Verwenden eines Quelldatenbanksystems werden geschätzt. Die Kosten zum Erzeugen von Statistiken werden verglichen, und die Abfragen zum Erzeugen von Statistiken durch das Zieldatenbanksystem werden als Reaktion auf die Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems verglichen, die ein vordefiniertes Verhältnis zu den Kosten zum Erzeugen von Quellstatistiken durch das Quelldatenbanksystem aufweisen. Die Abfragen zum Erzeugen von Statistiken werden durch das Zieldatenbanksystem als Reaktion auf das Auslösen durch das Quelldatenbanksystem durchgeführt. Die erzeugten Statistiken werden von dem Zieldatenbanksystem an das Quelldatenbanksystem gesendet, die Tabellenstatistiken in einem Metadatenkatalog werden auf der Grundlage der erzeugten Statistiken aktualisiert, und die aktualisierten Statistiken werden zum Optimieren eines Abfrageplans verwendet.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung bezieht sich auf die Elektrotechnik, Elektronik und Computertechnik und insbesondere auf relationale Datenbanken und Ähnliches.
  • In Datenbanksystemen werden Datenbankabfragen üblicherweise in einem Abfrageplan geplant. In der Regel wird der Abfrageplan als eine Baumstruktur von relationalen Operatoren dargestellt. Um Kosten zu senken, die Leistung zu verbessern usw., wird häufig ein Optimierer verwendet, der einen optimierten Plan zum Durchführen der Abfragen erzeugt. Statistiken über die Verteilung von Daten in den Tabellen der Datenbank können zum Beispiel verwendet werden, um ein Optimieren des Abfrageplans zu ermöglichen. Der Plan kann auf der Grundlage der Kosten optimiert werden, um den kostengünstigsten Abfrageplan zum Durchführen der empfangenen Abfragen zu ermitteln.
  • Die Statistiken können auf der Verteilung von Daten in den Tabellen und Indizes der Datenbank, den Gemeinsamkeiten von Daten und Ähnlichem beruhen. Die Statistiken können auf der Grundlage einer einzelnen Spalte oder einer Mehrzahl von Spalten erzeugt werden. Die Statistiken können ein Histogramm umfassen, das die Verteilung von Werten für eine Spalte und in einigen Fällen eine Korrelation von Werten zwischen Spalten darstellt. Die meisten relationalen Datenbanken stützen sich heute im Wesentlichen auf diese statistischen Informationen, um den schnellsten Ausführungsplan zum Verarbeiten von Abfragen zu berechnen. Herkömmliche Datenbankprodukte implementieren einige Funktionen zum Verfolgen und Analysieren von Abfragen, die sich auf diese Daten stützen. Die Qualität des Plans, den der Optimierer auswählt, hängt somit von der Richtigkeit der erfassten statistischen Daten ab. Die anfänglich erfassten statistischen Daten unterliegen im Laufe der Zeit Abweichungen, da Abfragen den Zustand der Datenbank ändern. Dies hat zur Folge, dass sich die Qualität der ausgewählten Pläne verschlechtert.
  • Um eine hohe Qualität der ausgewählten Pläne sicherzustellen, müssen die statistischen Daten regelmäßig aktualisiert werden. Diese Aktualisierungen sind mit Kosten verbunden: Das Datenbanksystem kann daher beispielsweise Tabellen auswählen, für die es Statistiken erfasst, die Daten der ausgewählten Tabellen stichprobenartig überprüfen und die erfassten Informationen auf der Grundlage der Tabellengröße hochrechnen. Anhand dieser Daten kann der Optimierer dann eine Anzahl von Zeilen in einem Abfrageergebnis schätzen oder vorhersagen. Dies wiederum ermöglicht es dem Optimierer, einen effizienten Abfrageplan zu erzeugen. Der Optimierer kann zum Beispiel einen leistungsfähigeren Indexsuchoperator für den Abfrageplan auswählen.
  • KURZDARSTELLUNG
  • Die Grundgedanken der Erfindung stellen Techniken zum Auslagern der Statistikerfassung bereit. Bei einem Aspekt umfasst ein beispielhaftes Verfahren die Operationen Beobachten von Tabellenstatistiken in einem Metadatenkatalog eines Quelldatenbanksystems; Schätzen der Kosten zum Erzeugen von Statistiken durch Verwenden eines Zieldatenbanksystems und Schätzen der Kosten zum Erzeugen von Quellstatistiken durch Verwenden eines Quelldatenbanksystems; Vergleichen der Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems mit den Kosten zum Erzeugen von Quellstatistiken durch Verwenden des Quelldatenbanksystems; Auslösen durch das Quelldatenbanksystem von Abfragen zum Erzeugen von Statistiken durch das Zieldatenbanksystem als Reaktion auf die Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems, die ein vordefiniertes Verhältnis zu den Kosten zum Erzeugen von Quellstatistiken durch Verwenden des Quelldatenbanksystems aufweisen; Durchführen durch das Zieldatenbanksystem der Abfragen zum Erzeugen von Statistiken als Reaktion auf das Auslösen durch das Quelldatenbanksystem; Senden der erzeugten Statistiken vom Zieldatenbanksystem an das Quelldatenbanksystem als Reaktion auf das Auslösen durch das Quelldatenbanksystem und das Durchführen der Abfragen zum Erzeugen von Statistiken; Aktualisieren der Tabellenstatistiken im Metadatenkatalog auf der Grundlage der erzeugten Statistiken; und Verwenden der aktualisierten Tabellenstatistiken zum Optimieren eines Abfrageplans.
  • Bei einem Aspekt weist ein nichtflüchtiges durch einen Computer lesbares Medium durch einen Computer ausführbare Anweisungen auf, die, wenn sie von einem Computer ausgeführt werden, den Computer veranlassen, das Verfahren zum Beobachten von Tabellenstatistiken in einem Metadatenkatalog eines Quelldatenbanksystems; Schätzen der Kosten zum Erzeugen von Statistiken durch Verwenden eines Zieldatenbanksystems und Schätzen der Kosten zum Erzeugen von Quellstatistiken durch Verwenden eines Quelldatenbanksystems; Vergleichen der Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems mit den Kosten zum Erzeugen der Quellstatistiken durch Verwenden des Quelldatenbanksystems; Auslösen durch das Quelldatenbanksystem von Abfragen zum Erzeugen von Statistiken durch das Zieldatenbanksystem als Reaktion auf die Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems, die ein vordefiniertes Verhältnis zu den Kosten zum Erzeugen von Quellstatistiken durch Verwenden des Quelldatenbanksystems aufweisen; Durchführen durch das Zieldatenbanksystem der Abfragen zum Erzeugen von Statistiken als Reaktion auf das Auslösen durch das Quelldatenbanksystem; Senden der erzeugten Statistiken vom Zieldatenbanksystem an das Quelldatenbanksystem als Reaktion auf das Auslösen durch das Quelldatenbanksystem und das Durchführen der Abfragen zum Erzeugen von Statistiken; Aktualisieren der Tabellenstatistiken im Metadatenkatalog auf der Grundlage der erzeugten Statistiken; und Verwenden der aktualisierten Tabellenstatistiken zum Optimieren eines Abfrageplans durchzuführen.
  • Bei einem Aspekt weist ein System ein Quelldatenbanksystem auf, wobei das Quelldatenbanksystem mindestens einen ersten Prozessor aufweist, der mit einem ersten Speicher verbunden ist; sowie ein Zieldatenbanksystem, wobei das Zieldatenbanksystem mindestens einen zweiten Prozessor aufweist, der mit einem zweiten Speicher verbunden ist, und das System funktionsmäßig in der Lage ist, Operationen durchzuführen, die Beobachten von Tabellenstatistiken in einem Metadatenkatalog eines Quelldatenbanksystems; Schätzen der Kosten zum Erzeugen von Statistiken durch Verwenden eines Zieldatenbanksystems und Schätzen der Kosten zum Erzeugen von Quellstatistiken durch Verwenden eines Quelldatenbanksystems; Vergleichen der Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems mit den Kosten zum Erzeugen der Quellstatistiken durch Verwenden des Quelldatenbanksystems; Auslösen durch das Quelldatenbanksystem von Abfragen zum Erzeugen von Statistiken durch das Zieldatenbanksystem als Reaktion auf die Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems, die ein vordefiniertes Verhältnis zu den Kosten zum Erzeugen von Quellstatistiken durch Verwenden des Quelldatenbanksystems aufweisen; Durchführen durch das Zieldatenbanksystem der Abfragen zum Erzeugen von Statistiken als Reaktion auf das Auslösen durch das Quelldatenbanksystem; Senden der erzeugten Statistiken vom Zieldatenbanksystem an das Quelldatenbanksystem als Reaktion auf das Auslösen durch das Quelldatenbanksystem und das Durchführen der Abfragen zum Erzeugen von Statistiken; Aktualisieren der Tabellenstatistiken im Metadatenkatalog auf der Grundlage der erzeugten Statistiken; und Verwenden der aktualisierten Tabellenstatistiken zum Optimieren eines Abfrageplans aufweisen.
  • Wie hier verwendet, umfasst ein Vorgang „ermöglichen“, dass der Vorgang durchgeführt wird, dass der Vorgang vereinfacht wird, dass dazu beigetragen wird, den Vorgang auszuführen, oder dass bewirkt wird, dass der Vorgang durchgeführt wird. So können Anweisungen, die auf einem Prozessor ausgeführt werden, beispielsweise und nicht einschränkend einen Vorgang ermöglichen, der von Anweisungen durchgeführt wird, die auf einem entfernt angeordneten Prozessor ausgeführt werden, indem entsprechende Daten oder Befehle gesendet werden, um zu bewirken oder dazu beizutragen, dass der Vorgang durchgeführt wird. Um Zweifel zu vermeiden: Wenn ein Handelnder einen Vorgang anders als durch ein Durchführen des Vorgangs ermöglicht, wird der Vorgang dennoch durch eine Entität oder eine Kombination von Entitäten durchgeführt.
  • Eine oder mehrere Ausführungsformen der Erfindung oder Elemente davon können in Form eines Computerprogrammprodukts implementiert werden, das ein durch einen Computer lesbares Speichermedium mit durch einen Computer verwendbarem Computercode enthält, um die beschriebenen Verfahrensschritte durchzuführen. Eine oder mehrere Ausführungsformen der Erfindung oder Elemente davon können des Weiteren in Form eines Systems (oder einer Vorrichtung) mit einem Speicher und mindestens einem Prozessor implementiert werden, der mit dem Speicher verbunden und funktionsmäßig in der Lage ist, beispielhafte Verfahrensschritte durchzuführen. Bei einem noch weiteren Aspekt können eine oder mehrere Ausführungsformen der Erfindung oder Elemente davon in Form von Mitteln implementiert werden, um einen oder mehrere der hier beschriebenen Verfahrensschritte auszuführen; wobei die Mittel (i) ein oder mehrere Hardware-Module, (ii) ein oder mehrere Software-Module, die in einem durch einen Computer lesbaren Speichermedium (oder mehreren dieser Medien) gespeichert sind und auf einem Hardware-Prozessor implementiert werden, oder (iii) eine Kombination von (i) und (ii) enthalten können; wobei ein beliebiges Mittel (i) bis (iii) die besonderen, hier dargelegten Techniken umsetzt.
  • Techniken der vorliegenden Erfindung können erhebliche positive technische Auswirkungen haben. So stellen beispielsweise eine oder mehrere Ausführungsformen eines oder mehrere der folgenden Merkmale bereit:
    • Beschleuniger-Datenbanksystem, das für ein Verarbeiten von statistischen Abfragen in großen Datensätzen optimiert ist;
    • effiziente beschleunigergestützte Datenbank zum Erzeugen von Statistiken für ein Quelldatenbanksystem durch das Beschleuniger-(Ziel-)Datenbanksystem;
    • geringere Inanspruchnahme der Zentraleinheit (CPU) für das Quelldatenbanksystem;
    • Möglichkeit, abfragespezifische Laufzeit-Statistiken zu erzeugen, bevor die eigentliche Abfrage ausgeführt wird (Statistikverbindungen können individuell angepasst werden, da die von einer bestimmten Abfrage verwendeten Tabellen bekannt sind); und
    • keine zusätzlichen oder speziellen Systeme sind erforderlich, um Statistiken zu erfassen.
  • Diese und andere Merkmale und Vorteile der vorliegenden Erfindung ergeben sich anhand der folgenden ausführlichen Beschreibung veranschaulichender Ausführungsformen, die in Verbindung mit den beigefügten Zeichnungen zu lesen ist.
  • Figurenliste
    • 1 stellt eine Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung dar;
    • 2 stellt Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Erfindung dar;
    • 3 ist ein Blockschaubild eines beispielhaften Datenbanksystems gemäß einer beispielhaften Ausführungsform;
    • 4 ist ein Ablaufplan eines beispielhaften Verfahrens zum Erzeugen und Verwenden von Datenbankstatistiken gemäß einer beispielhaften Ausführungsform; und
    • 5 stellt ein Computersystem dar, das zum Implementieren eines oder mehrerer Aspekte und/oder Elemente der Erfindung nützlich sein kann, und auch einen Cloud-Computing-Knoten gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die vorliegende Offenbarung enthält zwar eine ausführliche Beschreibung von Cloud-Computing, es versteht sich jedoch, dass die Umsetzung der hier dargelegten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit beliebigen Arten von jetzt bekannter oder später entwickelter Datenverarbeitungsumgebung umgesetzt werden.
  • Cloud-Computing ist ein Modell zum Liefern eines Dienstes, der einen problemlosen, bedarfsorientierten Netzwerkzugriff auf einen gemeinsamen Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Speicher, Anwendungen, virtuelle Maschinen und Dienste) ermöglicht, die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle enthalten.
  • Bei den Eigenschaften handelt es sich um die Folgenden:
  • On-Demand Self-Service (bedarfsorientierte Selbstbedienung): Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher bereitstellen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
  • Broad Network Access (breiter Netzzugriff): Über ein Netzwerk sind Funktionen verfügbar, auf die durch Standardmechanismen zugegriffen wird, die die Verwendung durch heterogene schlanke oder leistungsintensive Client-Plattformen unterstützen (z.B. Mobiltelefone, Laptops und PDAs).
  • Ressource Pooling (Ressourcen-Bündelung): Die Datenverarbeitungsressourcen des Anbieters werden gebündelt, um mehreren Nutzern unter Verwendung eines Mehrmietermodells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
  • Rapid Elasticity (schnelle Anpassungsfähigkeit): Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
  • Measured Service (messbarer Dienst): Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Die Inanspruchnahme von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz bereitgestellt wird.
  • Es gibt folgende Dienstmodelle:
  • Software as a Service (Saas) (Software als Dienst): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine schlanke Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende eMail) von verschiedenen Client-Einheiten aus zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Einstellungen der Anwendungskonfiguration.
  • Platform as a Service (Paas) (Plattform als Dienst): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Werkzeugen erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen der Hosting-Umgebung der Anwendung.
  • Infrastructure as a Service (laas) (Infrastruktur als Dienst): Die dem Nutzer bereitgestellte Funktion besteht darin, Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Es gibt folgende Einsatzmodelle:
  • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
  • Community Cloud (Benutzergemeinschafts-Cloud): Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Anliegen hat (z.B. Aufgabe, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder fremden Räumen befinden.
  • Public Cloud (öffentliche Cloud): Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Branchengruppe zur Verfügung gestellt und gehört einer Organisation, die Cloud-Dienste verkauft.
  • Hybrid Cloud (hybride Cloud): Die Cloud-Infrastruktur besteht aus zwei oder mehr Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Entitäten bleiben, aber durch eine standardisierte oder herstellereigene Technologie miteinander verbunden sind, die eine Übertragbarkeit von Daten und Anwendungen ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert und schwerpunktmäßig auf Statusunabhängigkeit, geringe Kopplung, Modularität und semantische Interoperabilität ausgerichtet. Der Kern der Cloud-Computing ist eine Infrastruktur, die ein Netzwerk aus miteinander verbundenen Knoten enthält.
  • Mit Bezug nunmehr auf 1 ist eine veranschaulichende Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt, enthält die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie der persönliche digitale Assistent (PDA) oder das Mobiltelefon 54A, der Desktop-Computer 54B, der Laptop-Computer 54C und/oder das Kraftfahrzeug-Computersystem 54N Daten austauschen können. Die Knoten 10 können miteinander Daten austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken wie private, benutzergemeinschaftliche, öffentliche oder hybride Clouds wie oben beschrieben oder in einer Kombination davon in Gruppen angeordnet sein (nicht dargestellt). Dies ermöglicht es der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es ist ersichtlich, dass die Arten von Datenverarbeitungseinheiten 54A bis N, die in 1 dargestellt sind, nur veranschaulichend sein sollen und die Datenverarbeitungsknoten 10 und die Cloud-Datenverarbeitungsumgebung 50 mit jeder Art von computergestützter Einheit über jede Art von Netzwerk und/oder netzwerkadressierbarer Verbindung Daten austauschen kann (z.B. über einen Web-Browser).
  • Mit Bezug nunmehr auf 2 wird ein Satz funktionaler Abstraktionsschichten gezeigt, die von der Datenverarbeitungsumgebung 50 (1) bereitgestellt werden. Es versteht sich im Voraus, dass die in 2 dargestellten Komponenten, Schichten und Funktionen nur veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Die Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: die Großrechner 61; die Server 62 auf Grundlage der RISC-Architektur (RISC = Reduced Instruction Set Computer, Computer mit reduziertem Befehlssatz), die Server 63; die Blade-Server 64; die Speichereinheiten 65; sowie die Netzwerke und Netzwerkkomponenten 66. In einigen Ausführungsformen enthalten die Software-Komponenten die Netzwerkanwendungs-Serversoftware 67 und die Datenbank-Software 68.
  • Die Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Entitäten bereitgestellt werden können: virtuelle Server 71; virtuelle Speicher 72; virtuelle Netzwerke 73; darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
  • In einem Beispiel kann die Verwaltungsschicht 80 die nachfolgend beschriebenen Funktionen bereitstellen. Die Ressourcenbereitstellung 81 ermöglicht eine dynamische Bereitstellung von Datenverarbeitungsressourcen und anderen Ressourcen, die verwendet werden, um Aufgaben in der Cloud-Computing-Umgebung durchzuführen. Messen und Preisfindung 82 stellen Kostenverfolgung beim Verwenden von Ressourcen in der Cloud-Computing-Umgebung sowie Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungssoftware umfassen. Die Sicherheitsfunktion stellt eine Identitätsprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Nutzern und Systemadministratoren den Zugang zur Cloud-Computing-Umgebung bereit. Die Verwaltung der Dienstgüte 84 stellt Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, sodass die erforderliche Dienstgüte erreicht wird. Die Planung und Erfüllung der Dienstgütevereinbarung (Service Level Agreement, SLA) 85 stellt eine Vorabeinteilung und eine Beschaffung von Cloud-Computing-Ressourcen bereit, deren künftiger Bedarf auf der Grundlage einer Dienstgütevereinbarung vorausgesehen wird.
  • Die Arbeitslastschicht 90 stellt Beispiele für Funktionalitäten bereit, für die die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 93; Datenanalyseverarbeitung 94; Transaktionsverarbeitung 95; und ein Datenbankmanager 96. Es sei darauf hingewiesen, dass Ausführungsformen der Erfindung in einer Cloud-Umgebung (wie in dem Datenbanksoftware-Element 68 in Schicht 60 und/oder dem Datenbankmanager 96 in Schicht 90), in einer Nicht-Cloud-Umgebung oder auf hybride Weise mit Teilen in der Cloud und Teilen in einer Nicht-Cloud-Umgebung (z.B. lokal) implementiert werden können.
  • Vorrichtungen, Systeme und Verfahren zum Auslagern der Erzeugung und Erfassung von Statistiken werden im Allgemeinen offengelegt und sind zum Beispiel zum Erzeugen und Verwenden von Datenbankstatistiken nützlich. Die erzeugten statistischen Daten werden zum Beispiel in ein Beschleuniger-Datenbanksystem ausgelagert, das für statistikartige Abfragen optimiert ist, indem ein spaltenförmiges Layout der Datenbanktabellen verwendet wird, Daten im Speicher zwischengespeichert werden, Datenkomprimierungstechniken verwendet werden, eine parallele Verarbeitung durchgeführt wird, spezielle Indizierungstechniken verwendet werden und Ähnliches. In einer beispielhaften Ausführungsform pflegt und aktualisiert ein Beschleuniger-Datenbanksystem (hier auch als Zieldatenbanksystem bezeichnet) einen Statistikspeicher für ein Produktionsdatenbanksystem (hier auch als Quelldatenbanksystem bezeichnet) inkrementell, indem es Momentaufnahmen der laufenden Transaktionen von einem oder mehreren Datenbanksystemen (wie Db2®-Datenbanksysteme) (eingetragene Marke der International Business Machines Corporation, Armonk, NY, USA) erfasst.
  • Ein zuverlässiger Hinweis darauf, ob die statistischen Daten einer bestimmten Tabelle veraltet sind, ist die Anzahl der Einfüge-, Aktualisierungs-, und Löschanweisungen, die in einer Tabelle ausgeführt werden. Dies kann durch Zählen der entsprechenden Abfragen pro Tabelle ermittelt werden. In einer beispielhaften Ausführungsform wird eine Stichprobe verwendet, um die Kardinalitätsberechnung auszuführen. (Im Zusammenhang mit Datenbanken bezieht sich der Begriff Kardinalität auf die Eindeutigkeit der in einer Spalte enthaltenen Datenwerte. Eine hohe Kardinalität bedeutet, dass die Spalte einen hohen Prozentsatz an absolut eindeutigen Werten enthält. Eine niedrige Kardinalität bedeutet, dass die Spalte viele „Wiederholungen“ in ihrem Datenbereich enthält.) In einer beispielhaften Ausführungsform wird ein größerer Teilplan im Zieldatenbanksystem ausgeführt, und während der Ausführung im Zieldatenbanksystem erfasste Laufzeitkardinalitäten werden verwendet (Tools wie zum Beispiel der Learning Optimizer (LEO) erfassen solche Statistiken; siehe Stillger, Michael et al. „LEO- DB2's LEarning Optimizer“. VLDB (2001). Wenn die Ausführung eines Teilplans zu lange dauert, kann ein Schwellenwertverfahren angewendet werden, um eine lokale Schätzung zu wählen, anstatt auf die genaue Kardinalität zu warten.
  • Die Statistiken können inkrementell erzeugt werden, sodass die Statistiken die aktuellsten Daten wiedergeben, oder sie können erzeugt werden, wenn die Statistiken aktualisiert werden müssen. In einer beispielhaften Ausführungsform wird die Anzahl der bei den Tabellen vorgenommenen Änderungen verfolgt, und sobald ein größerer Anteil der Tabelle (z.B. 15 %, wobei dies ein nichteinschränkendes Beispiel ist und der Prozentsatz konfigurierbar sein kann) geändert wurde, wird eine Aufgabe zum Erfassen von Statistiken ausgelöst. In einer beispielhaften Ausführungsform wird eine Hintergrundaufgabe geplant, um in regelmäßigen Abständen zu prüfen, ob sich eine Tabelle geändert hat, um die Anzahl der Änderungen an einer Tabelle zu prüfen und Ähnliches.
  • In einer oder mehreren Ausführungsformen werden Änderungsinformationen für die statistischen Daten aus den Transaktionen extrahiert und zum Aktualisieren eines lokalen Statistikspeichers verwendet. Das Produktionsdatenbanksystem kann auf den Statistikspeicher zugreifen und somit die Auswahl des Abfrageplans unterstützen.
  • In einer beispielhaften Ausführungsform führt das Beschleuniger-Datenbanksystem ein Erzeugen von Statistiken für das Produktionsdatenbanksystem durch. Wenn die Kosten zum Erzeugen von Statistiken durch das Quelldatenbanksystem zum Beispiel höher sind als beim Beschleuniger-Datenbanksystem, kann das Erzeugen der Statistiken an das Beschleuniger-Datenbanksystem ausgelagert werden. Die vom Beschleuniger-Datenbanksystem erzeugten Statistiken werden vom Quelldatenbanksystem, dem Beschleuniger-Datenbanksystem oder von beiden verwendet.
  • 3 ist ein Blockschaubild eines beispielhaften Datenbanksystems 300 gemäß einer beispielhaften Ausführungsform. Ein Quelldatenbanksystem 304 verarbeitet Datenbankabfragen 352 (hier als Abfragen 352 bezeichnet), die von Anwendungen und anderen Entitäten empfangen werden. Ein Abfrageplaner 312 erzeugt einen Abfrageplan, der lokal (im Quelldatenbanksystem 304) oder entfernt (in einem Zieldatenbanksystem 308 wie nachstehend ausführlicher beschrieben) ausgeführt wird. In einer beispielhaften Ausführungsform optimiert ein Optimierer im Abfrageplaner 312 den Abfrageplan, um beispielsweise den kostengünstigsten Abfrageplan zum Durchführen der empfangenen Abfragen zu ermitteln. Ein kostenorientierter Optimierer kann zum Beispiel Datenbankstatistiken verwenden, um die Optimierung des Abfrageplans zu ermöglichen. Die Statistiken können sich auf die Verteilung von Daten in den Tabellen 316 des Quelldatenbanksystems 304, die Gemeinsamkeiten von Daten und Ähnliches beziehen.
  • Nach dem Erzeugen wird der Abfrageplan entweder vom Quelldatenbanksystem 304 oder dem Zieldatenbanksystem 308 durchgeführt. Lokale Abfrageausführungen werden bei einer oder mehreren der Tabellen 316 in der Quelldatenbank 320 durchgeführt. Eine beschleunigergestützte Abfrageausführung wird bei einer oder mehreren der Tabellen 336 in der Zieldatenbank 340 durchgeführt. Ein Datensynchronisierungssystem 348 synchronisiert die Tabellen 336 in der Zieldatenbank 340 mit den Tabellen 316 in der Quelldatenbank 320, was eine Voraussetzung zum Erfassen statistischer Daten zur Verbesserung der Auswahl des Abfrageplans ist. Das Datensynchronisationssystem 348 empfängt zum Beispiel Auslöser von der Quelldatenbank 320, die anzeigen, dass die Daten der Tabellen 316 in der Quelldatenbank 320 ganz oder teilweise übertragen werden sollten, um die Zieldatenbank 340 zu aktualisieren. In einer beispielhaften Ausführungsform werden der Abfrageplaner 312, der Tabellenstatistikgenerator 332, das Datensynchronisationssystem 348 und die Statistikauslagerungseinheit 356 mit durch von einem Computersystem ausführbaren Anweisungen wie Programmmodulen implementiert, die von einem Computersystem wie einem Server ausgeführt werden. Der Abfrageplaner 312 enthält zum Beispiel Code, der einen Optimierer (z.B. kostenorientiert) implementiert, der den Abfrageplan optimiert, um zum Beispiel den kostengünstigsten Abfrageplan zum Durchführen der empfangenen Abfragen zu ermitteln. Der Generator 332 enthält Code, der die im folgenden Abschnitt erörterte Funktionalität implementiert. Das System 348 enthält Code, der zum Beispiel auf die vorstehend genannten Auslöser reagiert. Die Statistikauslagerungseinheit 356 ist dafür zuständig, zu ermitteln, ob die Statistiken aktualisiert werden müssen. In einer beispielhaften Ausführungsform abstrahiert die Statistikauslagerungseinheit 356 die eigentliche Erfassungsimplementierung, z.B. indem sie sie in das Ziel-(Beschleuniger-)Datenbanksystem 308 auslagert oder sie lokal im Quelldatenbanksystem 304 erfasst. Das heißt, es werden verschiedene Datenübertragungsprotokolle zum Aktualisieren der Statistiken im Quelldatenbanksystem 304 implementiert.
  • Beim Ausführen von Abfragen werden Statistiken in einer Quellstatistiktabelle 328 eines Metadatenkatalogs 324 erzeugt oder aktualisiert. Die Statistiken werden anschließend dem Abfrageplaner 312 zum Optimieren des Abfrageplans bereitgestellt. In einer beispielhaften Ausführungsform lagert eine Statistikauslagerungseinheit 356 Aufgaben im Zusammenhang mit dem Erzeugen von Statistiken in einen Tabellenstatistikgenerator 332 im Quelldatenbanksystem 308 aus. Der Tabellenstatistikgenerator 332 erhält zum Beispiel eine Liste der zu berücksichtigenden Tabellen und die Art der zu erzeugenden Statistiken. In einer beispielhaften Ausführungsform wird dies durch den Tabellenstatistikgenerator 332 in statistische Abfragen übersetzt. Alternativ kann die Statistikauslagerungseinheit 356 die Abfrageerzeugungskomponente des Tabellenstatistikgenerators 332 selbst implementieren und die statistischen Abfragen einfach übermitteln, um die Quelltabellenstatistiken 328 zu aktualisieren.
  • In einer beispielhaften Ausführungsform wird die Statistikerzeugung nur dann in den Tabellenstatistikgenerator 332 ausgelagert, wenn die Kosten zum Erzeugen von Statistiken im Zieldatenbanksystem 308 geringer sind als die Kosten zum Erzeugen der Statistiken im Quelldatenbanksystem 304. In einer beispielhaften Ausführungsform wird die Statistikerzeugung immer in den Tabellenstatistikgenerator 332 ausgelagert, wobei in anderen Ausführungsformen ein anderer Ansatz gewählt werden kann. In einer beispielhaften Ausführungsform wird für die Anwendung der Abfrageausführung derselbe Mechanismus wie für die Ermittlung des Zeitpunks verwendet, an dem die Statistikerzeugung ausgelagert werden soll. Wenn die Statistikauslagerungseinheit 356 die Statistikabfragen selbst erzeugt, kann sie die Abfragen einfach über den Abfrageplaner 312 planen (wie im Fall der Benutzerabfrage). Der Abfrageplaner 312 analysiert die Abfrageanweisungen und entscheidet, welches System (das Quelldatensystem 403 oder das Zieldatensystem 308) am besten geeignet ist, um die Anweisungen auszuführen. In einer beispielhaften Ausführungsform verhält sich die Statistikauslagerungseinheit 356 wie ein normaler Datenbank-Client, der die Ergebnisse der Statistikabfrage empfängt und die Statistiken unabhängig davon aktualisiert, wo sie erfasst wurden. In einer beispielhaften Ausführungsform werden zusätzliche Einzelheiten dieser besonderen Anwendungsfälle der internen Abfrageausführung berücksichtigt, z.B. Bereitstellen einer speziellen Kostenfunktion für Statistikabfragen (die unterschiedliche Optimierungsziele haben können, z.B. Verringerung der Laufzeit/Verringerung der Inanspruchnahme von Ressourcen im Quelldatenbanksystem 304 und Ähnliches). In jedem Fall können die Auslagerungsstrategien mithilfe einer Kostenfunktion modelliert werden, die die „Kostspieligkeit“ des Auslagerns einer entsprechenden Aufgabe in Bezug auf die Kosten der für die Aufgabe benötigten Ressourcen angibt.
  • Im Zieldatenbanksystem 308 werden bei der Ausführung von Abfragen Statistiken in einer Zieltabellenstatistik 344 erzeugt oder aktualisiert. In einer beispielhaften Ausführungsform enthält das Zieldatenbanksystem 308 einen Metadatenkatalog (nicht dargestellt), der für das Zieldatenbanksystem 308 eine ähnliche Funktionalität wie der Metadatenkatalog 324 für das Quelldatenbanksystem 304 durchführt. Darüber hinaus werden Statistiken in der Zieltabellenstatistik 344 als Reaktion auf einen von der Statistikauslagerungseinheit 356 erzeugten Auslöser erzeugt und/oder aktualisiert. Der Auslöser kann in regelmäßigen Abständen erzeugt werden, wenn eine bestimmte Anzahl von Änderungen an den Tabellen im Quelldatenbanksystem 304 und Ähnliches festgestellt wird. In einer beispielhaften Ausführungsform sendet das Zieldatenbanksystem 308 regelmäßig Statistiken an das Quelldatenbanksystem 304, wenn das Zieldatenbanksystem 308 als Reaktion auf eine interne Anforderung und Ähnliches Statistiken erzeugt oder aktualisiert. In jedem Fall werden die im Zieldatenbanksystem 308 erzeugten Statistiken in die Quellstatistiktabelle 328 übertragen und vom Abfrageplaner 312 verwendet, um den Abfrageplan zu optimieren.
  • 4 ist ein Ablaufplan für ein beispielhaftes Verfahren 400 zum Erzeugen und Verwenden von Datenbankstatistiken gemäß einer beispielhaften Ausführungsform. In einer beispielhaften Ausführungsform werden die Tabellenstatistiken in einem Metadatenkatalog 324 eines Quelldatenbanksystems 304 beobachtet (Operation 404). Eine Prüfung wird durchgeführt, um zu ermitteln, ob Statistiken fehlen oder ob es signifikante Datenänderungen gibt (Entscheidungsblock 408). Wenn der Metadatenkatalog 324 zum Beispiel keine Informationen wie Kardinalitätsinformationen enthält, müssen Statistiken erzeugt werden. Der „signifikante“ Schwellenwert (Änderungen von 15 % an der Tabelle) ist eine Möglichkeit, die durch die Erzeugung von Statistiken verursachten zusätzlichen Kosten zu verringern. Dies könnte natürlich nach jeder Tabellenänderung erfolgen (im besten Fall inkrementell), dabei könnten jedoch mehr Ressourcen in Anspruch genommen werden als durch bessere Abfragepläne (aufgrund genauerer Kostenschätzungen). Wenn keine Statistiken fehlen und es keine signifikanten Datenänderungen gibt (wie im Entscheidungsblock 408 in der NEIN-Verzweigung festgestellt), werden die vorhandenen Statistiken vom Quelldatenbanksystem 304 verwendet (Operation 412) und das Verfahren 400 endet.
  • Wenn Statistiken fehlen und/oder signifikante Datenänderungen vorliegen (wie im Entscheidungsblock 408 in der JA-Verzweigung festgestellt), werden die Kosten zum Erzeugen von Statistiken durch das Quelldatenbanksystem 304 und das Zieldatenbanksystem 308 einzeln geschätzt (Operation 416).
  • Eine Prüfung wird durchgeführt, um zu ermitteln, ob die Kosten zum Erzeugen der Statistiken im Zieldatenbanksystem 308 geringer sind als die Kosten zum Erzeugen der Statistiken im Quelldatenbanksystem 304 (Entscheidungsblock 420). Wenn die Kosten für das Zieldatenbanksystem 308 höher als oder gleich hoch wie die Kosten für das Quelldatenbanksystem 304 sind (wie im Entscheidungsblock 420 in der NEIN-Verzweigung festgestellt), werden die Statistiken im Quelldatenbanksystem 304 erzeugt (Operation 424) und das Verfahren 400 fährt mit Operation 440 fort.
  • Wenn die Kosten für das Zieldatenbanksystem 308 geringer als die Kosten für das Quelldatenbanksystem 304 sind (wie im Entscheidungsblock 420 in der JA-Verzweigung festgestellt), wird das Erzeugen der Statistiken über das Zieldatenbanksystem 308 ausgelöst (Operation 428), werden Abfragen zum Erzeugen von Statistiken im Zieldatenbanksystem 308 durchgeführt (Operation 432) und die erzeugten Statistiken werden vom Zieldatenbanksystem 308 an den Metadatenkatalog 324 des Quelldatensystems 304 gesendet (Operation 436). Die Statistiken werden im Zieldatenbanksystem 308 erzeugt, um: 1) spezielle Statistiken und Histogramme zu erfassen, die für Abfragen wichtig sind, die im Quelldatenbanksystem 304 ausgeführt werden; und/oder 2) spezielle Statistiken wie Spaltengruppenstatistiken zu erfassen, die auf eine bestimmte Art von Abfrage ausgerichtet sind, um häufig ausgeführte Abfragen zu optimieren und/oder eine bestimmte komplexe Abfrage vorzubereiten. Die Statistiken können auch zur Verwendung durch das Zieldatenbanksystem 308 erzeugt werden.
  • Zurück zu Operation 440: Nachdem die Statistiken erzeugt wurden, wird die Quellstatistiktabelle 328 im Metadatenkatalog 324 aktualisiert (Operation 440) und die aktualisierten Statistiken werden zum Beispiel verwendet, um einen Abfrageplan zu optimieren (Operation 444). Beispielsweise kann ein Plan, der den Filterattributen am besten entspricht, ausgewählt werden, indem eine Teilmenge der ursprünglichen Abfrage mit Schwerpunkt auf Kardinalitäten im Zieldatenbanksystem 308 ausgeführt wird, bevor die Ausführung der Abfrage mit der DB2®-Software beginnt. In einer beispielhaften Ausführungsform wird eine dynamische strukturierte Abfragesprache (structured query language - SQL) für jede Abfrage verwendet. Im Bereich der relationalen Datenbanken, in denen SQL Standard ist, können eine oder mehrere Ausführungsformen verwendet werden. Es gibt jedoch auch andere Datenbanksysteme, die andere Abfragesprache wie XQery für XML-Daten oder Graphabfragen für Graphdatenbanken verwenden; die hier offenbarten Techniken sind auch auf diese Datenbanken anwendbar.
  • Mit Blick auf die bisherige Beschreibung sei darauf hingewiesen, dass gemäß einem Aspekt der Erfindung allgemein ein beispielhaftes Verfahren die Operationen Beobachten von Tabellenstatistiken 328 in einem Metadatenkatalog 324 eines Quelldatenbanksystems 304 (Operation 404); Schätzen der Kosten zum Erzeugen von Statistiken durch Verwenden eines Zieldatenbanksystems 308 und Schätzen der Kosten zum Erzeugen von Quellstatistiken durch Verwenden eines Quelldatenbanksystems 304 (Operation 416); Vergleichen der Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems 308 mit den Kosten zum Erzeugen der Quellstatistiken durch Verwenden des Quelldatenbanksystems 308 (Entscheidungsblock 420); Auslösen durch das Quelldatenbanksystem 304 von Abfragen zum Erzeugen von Statistiken durch das Zieldatenbanksystem 308 als Reaktion auf die Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems 308, die ein vordefiniertes Verhältnis zu den Kosten zum Erzeugen der Quellstatistiken durch Verwendung des Quelldatenbanksystems 304 aufweisen (Operation 428); Durchführen durch das Zieldatenbanksystem 308 der Abfragen zum Erzeugen von Statistiken als Reaktion auf das Auslösen durch das Quelldatenbanksystem 304 (Operation 432); Senden der erzeugten Statistiken von dem Zieldatenbanksystem 308 an das Quelldatenbanksystem 304 als Reaktion auf das Auslösen durch das Quelldatenbanksystem 304 und das Durchführen der Abfragen zum Erzeugen von Statistiken (Operation 436); Aktualisieren der Tabellenstatistiken 328 im Metadatenkatalog 324 auf der Grundlage der erzeugten Statistiken (Operation 440) und Verwenden der aktualisierten Tabellenstatistiken 328 zum Optimieren eines Abfrageplans (Operation 444) umfasst.
  • In einer beispielhaften Ausführungsform werden die Operationen Beobachten, Schätzen und Vergleichen wiederholt, und die Abfragen zum Erzeugen von Statistiken werden vom Quelldatenbanksystem 304 für die wiederholten Schritte als Reaktion darauf durchgeführt, dass die Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems 308 höher als oder gleich hoch wie die Kosten zum Erzeugen von Quellstatistiken durch Verwenden des Quelldatenbanksystems sind. In einer beispielhaften Ausführungsform weist die Operation Beobachten der Tabellenstatistiken 328 weiterhin Durchführen einer Ausführung von Abfragen und/oder Überwachen eingehender Änderungen, die in den Tabellen des Quelldatenbanksystems 304 verarbeitet werden, und/oder eine automatisierte Hintergrundaufgabe auf. In einer beispielhaften Ausführungsform werden die vorhandenen Statistiken im Quelldatenbanksystem 304 als Reaktion auf ein Feststellen verwendet, dass die Statistiken nicht fehlen und es keine signifikanten Datenänderungen gibt (Operation 412). In einer beispielhaften Ausführungsform wird eine Prüfung durchgeführt, um zu ermitteln, ob Statistiken im Metadatenkatalog 324 fehlen (Entscheidungsblock 408), wobei die Operationen Schätzen, Vergleichen, Auslösen, Durchführen der Abfragen zum Erzeugen von Statistiken, Senden und Aktualisieren als Reaktion auf ein Feststellen durchgeführt werden, dass Statistiken fehlen.
  • In einer beispielhaften Ausführungsform wird eine Prüfung durchgeführt, um zu ermitteln, ob es signifikante Datenänderungen an einer Tabelle des Quelldatenbanksystems 304 gibt (Entscheidungsblock 408), wobei die Operationen Schätzen, Vergleichen, Auslösen, Durchführen der Abfragen zum Erzeugen von Statistiken, Senden und Aktualisieren als Reaktion auf ein Feststellen durchgeführt werden, dass es signifikante Datenänderungen gibt. In einer beispielhaften Ausführungsform besteht das vordefinierte Verhältnis darin, dass die Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems 308 geringer als die Kosten zum Erzeugen von Quellstatistiken durch Verwenden des Quelldatenbanksystems 304 sind. In einer beispielhaften Ausführungsform wird das Zieldatenbanksystem 308 für statistikartige Abfragen optimiert.
  • Bei einem Aspekt weist ein nichtflüchtiges, durch einen Computer lesbares Medium durch einen Computer ausführbare Anweisungen auf, die, wenn sie von einem Computer ausgeführt werden, den Computer veranlassen, ein Verfahren zum Beobachten von Tabellenstatistiken 328 in einem Metadatenkatalog 324 eines Quelldatenbanksystems 304 (Operation 404); Schätzen der Kosten zum Erzeugen von Statistiken durch Verwenden eines Zieldatenbanksystems 308 und Schätzen der Kosten zum Erzeugen von Quellstatistiken durch Verwenden eines Quelldatenbanksystems 304 (Operation 416); Vergleichen der Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems 308 mit den Kosten zum Erzeugen von Quellstatistiken durch Verwenden des Quelldatenbanksystems 304 (Entscheidungsblock 420); Auslösen durch das Quelldatenbanksystem 304 von Abfragen zum Erzeugen von Statistiken durch das Zieldatenbanksystem 308 als Reaktion auf die Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems 308, die ein vordefiniertes Verhältnis zu den Kosten zum Erzeugen von Quellstatistiken durch Verwenden des Quelldatenbanksystems 304 aufweisen (Operation 428); Durchführen durch das Zieldatenbanksystem 308 von Abfragen zum Erzeugen von Statistiken als Reaktion auf das Auslösen durch das Quelldatenbanksystem 304 (Operation 432); Senden der erzeugten Statistiken vom Zieldatenbanksystem 308 an das Quelldatenbanksystem 304 als Reaktion auf das Auslösen durch das Quelldatenbanksystem 304 und Durchführen der Abfragen zum Erzeugen von Statistiken (Operation 436); Aktualisieren der Tabellenstatistiken 328 im Metadatenkatalog 324 auf der Grundlage der erzeugten Statistiken (Operation 44) und Verwenden der aktualisierten Tabellenstatistiken 328 zum Optimieren eines Abfrageplans (Operation 444) durchzuführen.
  • Bei einem Aspekt weist ein System ein Quelldatenbanksystem 304 auf, wobei das Quelldatenbanksystem 304 mindestens einen ersten Prozessor aufweist, der mit einem ersten Speicher verbunden ist; sowie ein Zieldatenbanksystem 308, wobei das Zieldatenbanksystem 308 mindestens einen zweiten Prozessor aufweist, der mit einem zweiten Speicher verbunden ist, und das System funktionsmäßig in der Lage ist, Operationen durchzuführen, die Beobachten von Tabellenstatistiken 328 in einem Metadatenkatalog 324 eines Quelldatenbanksystems 304 (Operation 404); Schätzen der Kosten zum Erzeugen von Statistiken durch Verwenden eines Zieldatenbanksystems 308 und Schätzen der Kosten zum Erzeugen von Quellstatistiken durch Verwenden eines Quelldatenbanksystems 304 (Operation 416); Vergleichen der Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems 308 mit den Kosten zum Erzeugen der Quellstatistiken durch Verwenden des Quelldatenbanksystems 304 (Entscheidungsblock 420); Auslösen durch das Quelldatenbanksystem 304 von Abfragen zum Erzeugen von Statistiken durch das Zieldatenbanksystem 308 als Reaktion auf die Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems 308, die ein vordefinierter Verhältnis zu den Kosten zum Erzeugen von Quellstatistiken durch Verwenden des Quelldatenbanksystems 304 aufweisen (Operation 428); Durchführen durch das Zieldatenbanksystem 308 der Abfragen zum Erzeugen von Statistiken als Reaktion auf das Auslösen durch das Quelldatenbanksystem 304 (Operation 432); Senden der erzeugten Statistiken vom Zieldatenbanksystem 308 an das Quelldatenbanksystem 304 als Reaktion auf das Auslösen durch das Quelldatenbanksystem 304 und das Durchführen der Abfragen zum Erzeugen von Statistiken (Operation 436); Aktualisieren der Tabellenstatistiken 328 im Metadatenkatalog 324 auf der Grundlage der erzeugten Statistiken (Operation 440); und Verwenden der aktualisierten Tabellenstatistiken 328 zum Optimieren eines Abfrageplans aufweisen.
  • Eine oder mehrere Ausführungsformen der Erfindung oder Elemente davon können des Weiteren in Form einer Vorrichtung mit einem Speicher und mindestens einem Prozessor umgesetzt werden, der mit dem Speicher verbunden und funktionsmäßig in der Lage ist, beispielhafte Verfahrensschritte durchzuführen. 5 stellt ein Computersystem dar, das zum Implementieren eines oder mehrerer Aspekte und/oder Elemente der Erfindung nützlich sein kann, und auch einen Cloud-Computing-Knoten gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Mit Bezug nunmehr auf 5 ist der Cloud-Computing-Knoten 10 nur ein Beispiel eines geeigneten Cloud-Computing-Knotens und soll keine Beschränkung des Anwendungsbereichs der Nutzung oder Funktionalität von Ausführungsformen der hier beschriebenen Erfindung nahelegen. Ungeachtet dessen kann der Cloud-Computing-Knoten 10 implementiert werden und/oder eine beliebige der vorstehend dargelegten Funktionalitäten durchführen.
  • Im Cloud-Datenverarbeitungsknoten 10 gibt es ein Computersystem/einen Server 12, der mit zahlreichen anderen universellen oder speziellen Datenverarbeitungssystem-Umgebungen oder Konfigurationen funktionsfähig ist. Zu Beispielen für bekannte Datenverarbeitungssysteme, Umgebungen und/oder Konfigurationen, die für die Nutzung mit dem Computersystem/Server 12 geeignet sein können, gehören, ohne auf diese beschränkt zu sein, Personal-Computer-Systeme, Server-Computer-Systeme, schlanke Clients, leistungsintensive Clients, Hand- oder Laptop-Einheiten, Mehrprozessorsysteme, Systeme auf Grundlage von Mikroprozessoren, Beistellgeräte, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Großrechnersysteme und verteilte Cloud-Computing-Umgebungen, die jedes beliebige der oben genannten Systeme oder Einheiten und Ähnliches enthalten.
  • Das Computersystem/der Server 12 kann im allgemeinen Kontext von durch ein Computersystem ausführbaren Anweisungen beschrieben werden, z.B. Programmmodule, die von einem Computersystem ausgeführt werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. enthalten, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen implementieren. Das Computersystem/der Server 12 kann in verteilten Cloud-Computing-Umgebungen eingesetzt werden, wo die Aufgaben von entfernt angeordneten Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl auf lokalen als auch auf entfernt angeordneten Computersystem-Speichermedien befinden, darunter Speichereinheiten mit Arbeitsspeichern.
  • Wie in 5 gezeigt, wird das Computersystem/der Server 12 im Cloud-Computing-Knoten 10 in Form einer universellen Datenverarbeitungseinheit dargestellt. Bei den Komponenten des Computersystems/Servers 12 kann es sich - ohne auf diese beschränkt zu sein - um einen oder mehrere Prozessoren oder Verarbeitungseinheiten 16, einen Systemspeicher 28 und einen Bus 18 handeln, der verschiedene Systemkomponenten, darunter den Systemspeicher 28, mit dem Prozessor 16 verbindet.
  • Der Bus 18 stellt einen oder mehrere von beliebigen mehreren Arten von Busstrukturen dar, darunter einen Speicherbus oder eine Speichersteuereinheit, einen Peripheriebus, eine AGP-Schnittstelle (Accelerated Graphics Port) und einen Prozessor oder lokalen Bus, der eine beliebige aus einer Vielfalt von Busarchitekturen nutzt. Beispielsweise und nicht einschränkend enthalten solche Architekturen einen Industry-Standard-Architecture(ISA)-Bus, einen Micro-Channel-Architecture(MCA)-Bus, einen Enhanced-ISA(EISA)-Bus, einen lokalen Video-Electronics-Standards-Association(VESA)-Bus und einen Peripheral-Component-Interconnects(PCI)-Bus.
  • Das Computersystem/der Server 12 umfasst in der Regel eine Vielfalt von durch einen Computer lesbaren Medien. Bei diesen Medien kann es sich um beliebige verfügbare Medien handeln, auf die das Computersystem/der Server 12 zugreifen kann, darunter flüchtige und nichtflüchtige Medien, wechselbare und nichtwechselbare Medien.
  • Der Systemspeicher 28 kann vom Computersystem lesbare Medien in Form von flüchtigen Speichern, z.B. Direktzugriffsspeicher (RAM) 30 und/oder Cache 32, enthalten. Das Computersystem/der Server 12 kann ferner weitere wechselbare/nichtwechselbare, flüchtige/nichtflüchtige Computersystem-Speichermedien enthalten. Nur beispielhaft kann das Speichersystem 34 bereitgestellt werden, um ein nichtwechselbares, nichtflüchtiges magnetisches Medium auszulesen und zu beschreiben (nicht dargestellt und üblicherweise als „Festplatte“ bezeichnet). Obwohl nicht dargestellt, können ein Laufwerk für magnetische Speicherplatten zum Auslesen und Beschreiben einer wechselbaren, nichtflüchtigen magnetischen Speicherplatte (z.B. „Diskette“) und ein Laufwerk für optische Speicherplatten zum Auslesen oder Beschreiben einer wechselbaren, nichtflüchtigen optischen Speicherplatte wie einer CD-ROM, DVD-ROM und andere optische Medien bereitgestellt werden. In solchen Fällen kann jedes über eine oder mehrere Datenmedien-Schnittstellen mit dem Bus 18 verbunden sein. Wie nachstehend weiter dargestellt und beschrieben, kann der Speicher 28 mindestens ein Programmprodukt mit einem (z.B. mindestens einem) Satz von Programmmodulen enthalten, die so konfiguriert sind, dass sie die Funktionen der Ausführungsformen der Erfindung ausführen.
  • Das Programm/Dienstprogramm 40 mit (mindestens) einem Satz von Programmmodulen 42 kann beispielsweise und nicht einschränkend im Speicher 28 gespeichert sein, ebenso ein Betriebssystem, ein oder mehrere Anwendungsprogramme, weitere Programmmodule und Programmdaten. Das Betriebssystem, ein oder mehrere Anwendungsprogramme, weitere Programmmodule und Programmdaten oder eine Kombination daraus können jeweils eine Implementierung einer Netzwerkumgebung enthalten. Die Programmmodule 42 führen im Allgemeinen die Funktionen und/oder Methodiken von Ausführungsformen der hier beschriebenen Erfindung aus.
  • Das Computersystem/der Server 12 kann auch mit einer oder mehreren externen Einheiten 14, z.B. einer Tastatur, einer Zeigeeinheit, einer Anzeige 24 usw., Daten austauschen; sowie mit einer oder mehreren Einheiten, die einen Benutzer in die Lage versetzen, mit dem Computersystem/Server 12 zu interagieren; und/oder beliebigen Einheiten (z.B. Netzwerkkarte, Modem usw.), die das Computersystem/den Server 12 in die Lage versetzen, mit einer oder mehreren Datenverarbeitungseinheiten Daten auszutauschen. Eine solche Datenübertragung kann über die Eingabe/Ausgabe-Schnittstellen (E/A-Schnittstellen) 22 erfolgen. Überdies kann das Computersystem/der Server 12 mit einem oder mehreren Netzwerken, z.B. einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetzwerk (WAN) und/oder einem öffentlichen Netzwerk (z.B. das Internet), über den Netzwerkadapter 20 Daten austauschen. Wie dargestellt, tauscht der Netzwerkadapter 20 über den Bus 18 mit den anderen Komponenten des Computersystems/Servers 12 Daten aus. Es versteht sich, dass sonstige Hardware- und/oder Softwarekomponenten in Verbindung mit dem Computersystem/Server 12 verwendet werden können, auch wenn sie nicht dargestellt sind. Beispiele sind unter anderem, ohne auf diese beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, Anordnungen externer Festplattenlaufwerke, RAID-Systeme, Bandlaufwerke und Speichersysteme für die Datenarchivierung usw.
  • Somit können eine oder mehrere Ausführungsformen Software nutzen, die auf einem Universalcomputer oder einer Workstation ausgeführt wird. Mit Bezug auf 5 könnte eine solche Implementierung beispielsweise einen Prozessor 16, einen Speicher 28 und eine Ein-/Ausgabeschnittstelle 22 für eine Anzeige 24 und eine oder mehrere externe Einheiten 14 wie eine Tastatur, eine Zeigeeinheit oder Ähnliches verwenden. Der hier verwendete Begriff „Prozessor“ soll jede Verarbeitungseinheit umfassen, wie beispielsweise eine Verarbeitungseinheit, die eine CPU (Zentraleinheit) und/oder andere Formen von Verarbeitungsschaltungen umfasst. Darüber hinaus kann sich der Begriff „Prozessor“ auf mehr als einen einzelnen Prozessor beziehen. Der Begriff „Speicher“ soll einen Speicher umfassen, der einem Prozessor oder einer CPU zugeordnet ist, wie z.B. der RAM (Direktzugriffsspeicher) 30, ein ROM (Nur-Lese-Speicher), eine feste Speichereinheit (z.B. die Festplatte 34), eine Wechselspeichereinheit (z.B. Diskette), einen Flash-Speicher und Ähnliches. Darüber hinaus soll die hier verwendete Formulierung „Ein-/ Ausgabeschnittstelle“ eine Schnittstelle zu beispielsweise einem oder mehreren Mechanismen zum Eingeben von Daten in die Verarbeitungseinheit (z.B. Maus) und einem oder mehreren Mechanismen zum Bereitstellen von Ergebnissen im Zusammenhang mit der Verarbeitungseinheit (z.B. Drucker) vorsehen. Der Prozessor 16, der Speicher 28 und die Ein-/Ausgabeschnittstelle 22 können beispielsweise über den Bus 18 als Teil einer Datenverarbeitungseinheit 12 miteinander verbunden sein. Geeignete Verbindungen, beispielsweise über den Bus 18, können auch für eine Netzwerkschnittstelle 20 wie beispielsweise eine Netzwerkkarte, die für die Verbindung mit einem Computernetzwerk bereitgestellt werden kann, und für eine Medienschnittstelle wie beispielsweise ein Disketten- oder CD-ROM-Laufwerk, das für die Verbindung mit geeigneten Medien bereitgestellt werden kann, bereitgestellt werden.
  • Dementsprechend kann Computersoftware mit Anweisungen oder Code zum Durchführen der hier beschriebenen Methodiken der Erfindung in einer oder mehreren der zugehörigen Speichereinheiten (z.B. ROM, fester oder wechselbarer Speicher) gespeichert und, wenn sie zum Verwenden bereit ist, ganz oder teilweise (z.B. in den RAM) geladen und von einer CPU umgesetzt werden. Eine solche Software könnte Firmware, residente Software, Mikrocode und Ähnliches enthalten, ohne auf diese beschränkt zu sein.
  • Ein Datenverarbeitungssystem, das sich zum Speichern und/oder Ausführen von Programmcode eignet, enthält mindestens einen Prozessor 16, der direkt oder indirekt über einen Systembus 18 mit Speicherelementen 28 verbunden ist. Die Speicherelemente können einen lokalen Speicher enthalten, der während der eigentlichen Ausführung des Programmcodes verwendet wird, einen Massenspeicher und einen Cache 32, die eine vorübergehende Speicherung von mindestens einem Teil des Programmcodes bereitstellen, um die Häufigkeit zu verringern, mit der während der Ausführung aus dem Massenspeicher auf Code zugegriffen werden muss.
  • Eingabe/Ausgabe- oder E/A-Einheiten (darunter Tastaturen, Anzeigen, Zeigeeinheiten usw., ohne auf diese beschränkt zu sein) können entweder direkt oder über dazwischengeschaltete E/A-Steuereinheiten mit dem System verbunden sein.
  • Die Netzwerkadapter 20 können ebenfalls mit dem System verbunden werden, um es dem Datenverarbeitungssystem zu ermöglichen, über dazwischengeschaltete private oder öffentliche Netzwerke mit anderen Datenverarbeitungssystemen oder entfernt angeordneten Druckern oder Speichereinheiten verbunden zu werden. Modems, Kabelmodems und Ethernet-Karten sind nur einige der derzeit erhältlichen Arten von Netzwerkadaptern.
  • Wie hier verwendet, darunter auch in den Ansprüchen, umfasst ein „Server“ ein physisches Datenverarbeitungssystem (z.B. System 12 wie in 5), das ein Serverprogramm ausführt. Es versteht sich, dass ein solcher physischer Server eine Anzeige und eine Tastatur enthalten kann.
  • Eine oder mehrere Ausführungsformen können zumindest teilweise im Zusammenhang mit einer Cloud-Umgebung oder virtuellen Maschinenumgebung implementiert werden, obwohl dies beispielhaft und nichteinschränkend ist. Es wird auf die 1 und 2 sowie den begleitenden Text verwiesen.
  • Es ist zu beachten, dass jedes der hier beschriebenen Verfahren einen zusätzlichen Schritt zum Bereitstellen eines Systems mit verschiedenen Softwaremodulen enthalten kann, die auf einem durch einen Computer lesbaren Speichermedium ausgeführt sind; die Module können beispielsweise eines oder alle der geeigneten Elemente enthalten, die in den Blockschaubildern dargestellt und/oder hier beschrieben sind; beispielhaft und nicht einschränkend eines bzw. einer, einige oder alle der Module/Blöcke und/oder Teilmodule/Teilblöcke, die beschrieben sind. Die Verfahrensschritte können anschließend mit den einzelnen Softwaremodulen und/oder Teilmodulen des Systems wie vorstehend beschrieben durchgeführt werden, die auf einem oder mehreren Hardwareprozessoren wie beispielsweise dem Prozessor 16 ausgeführt werden. Darüber hinaus kann ein Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit Code enthalten, der implementiert werden kann, um einen oder mehrere der hier beschriebenen Verfahrensschritte auszuführen, darunter das Bereitstellen des Systems mit den einzelnen Softwaremodulen.
  • Ein Beispiel für eine Benutzerschnittstelle, die in einigen Fällen verwendet werden könnte, ist ein Hypertext-Markup-Language(HTML)-Code, der von einem Server oder Ähnlichem an einen Browser einer Computereinheit eines Benutzers ausgegeben wird. Der HTML-Code wird vom Browser auf der Computereinheit des Benutzers geparst, um eine grafische Benutzeroberfläche (GUI) zu erstellen.
  • Beispielhaftes System und Einzelheiten zum Herstellungsartikel
  • 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. Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hier beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten 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-/Verarbeitungseinheit 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-/Verarbeitungseinheit 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 hier unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder 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 Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaubildern 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 Blockschaubilder 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 Blockschaubilder 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 Blockschaubildern 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 Blockschaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaubildern 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.
  • 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 und Erfindungsgedanken der beschriebenen Ausführungsformen abzuweichen. Die hier 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 (20)

  1. Verfahren, das aufweist: Beobachten von Tabellenstatistiken in einem Metadatenkatalog eines Quelldatenbanksystems; Schätzen der Kosten zum Erzeugen von Statistiken durch Verwenden eines Zieldatenbanksystems und Schätzen der Kosten von Quellstatistiken durch Verwenden eines Quelldatenbanksystems; Vergleichen der Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems mit den Kosten zum Erzeugen von Quellstatistiken durch Verwenden des Quelldatenbanksystems; Auslösen durch das Quelldatenbanksystem von Abfragen zum Erzeugen von Statistiken durch das Zieldatenbanksystem als Reaktion auf die Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems, die ein vordefiniertes Verhältnis zu den Kosten zum Erzeugen von Quellstatistiken durch das Quelldatenbanksystem aufweisen; Durchführen durch das Zieldatenbanksystem von Abfragen zum Erzeugen von Statistiken als Reaktion auf das Auslösen durch das Quelldatenbanksystem; Senden der erzeugten Statistiken vom Zieldatenbanksystem an das Quelldatenbanksystem als Reaktion auf das Auslösen durch das Quelldatenbanksystem und das Durchführen der Abfragen zum Erzeugen von Statistiken; Aktualisieren der Tabellenstatistiken im Metadatenkatalog auf der Grundlage der erzeugten Statistiken; und Verwenden der aktualisierten Tabellenstatistiken zum Optimieren eines Abfrageplans.
  2. Verfahren nach Anspruch 1, das weiterhin aufweist: Wiederholen der Operationen Beobachten, Schätzen und Vergleichen; und Durchführen durch das Quelldatenbanksystem von Abfragen zum Erzeugen von Statistiken als Reaktion darauf, dass die Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems höher als oder gleich hoch wie die Kosten zum Erzeugen von Quellstatistiken durch Verwenden das Quelldatenbanksystem für die wiederholten Schritte sind.
  3. Verfahren nach Anspruch 1, wobei das Beobachten der Tabellenstatistiken weiterhin Durchführen einer Ausführung von Abfragen und/oder Überwachen eingehender Änderungen, die in Tabellen des Quelldatensystems verarbeitet werden, und/oder eine automatisierte Hintergrundaufgabe aufweist.
  4. Verfahren nach Anspruch 1, das weiterhin Verwenden vorhandener Statistiken im Quelldatenbanksystem als Reaktion auf ein Feststellen aufweist, dass die Statistiken nicht fehlen und es keine signifikanten Datenänderungen gibt.
  5. Verfahren nach Anspruch 1, das weiterhin Durchführen einer Prüfung aufweist, um zu ermitteln, ob Statistiken im Metadatenkatalog fehlen, wobei die Operationen Schätzen, Vergleichen, Auslösen, Durchführen der Abfragen zum Erzeugen von Statistiken, Senden und Aktualisieren als Reaktion auf ein Feststellen durchgeführt werden, dass Statistiken fehlen.
  6. Verfahren nach Anspruch 1, das weiterhin Durchführen einer Prüfung aufweist, um zu ermitteln, ob es signifikante Datenänderungen an einer Tabelle des Quelldatenbanksystems gibt, wobei die Operationen Schätzen, Vergleichen, Auslösen, Durchführen von Abfragen zum Erzeugen von Statistiken, Senden und Aktualisieren als Reaktion auf ein Feststellen durchgeführt werden, dass es signifikante Datenänderungen gibt.
  7. Verfahren nach Anspruch 1, wobei das vordefinierte Verhältnis darin besteht, dass die Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems geringer sind als die Kosten zum Erzeugen von Quellstatistiken durch Verwenden des Quelldatenbanksystems.
  8. Nichtflüchtiges, durch einen Computer lesbares Medium, das durch einen Computer ausführbare Anweisungen aufweist, die, wenn sie von einem Computer ausgeführt werden, den Computer veranlassen, das Verfahren durchzuführen, das aufweist: Beobachten von Tabellenstatistiken in einem Metadatenkatalog eines Quelldatenbanksystems; Schätzen der Kosten zum Erzeugen von Statistiken durch Verwenden eines Zieldatenbanksystems und Schätzen der Kosten von Quellstatistiken durch Verwenden eines Quelldatenbanksystems; Vergleichen der Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems mit den Kosten zum Erzeugen von Quellstatistiken durch Verwenden des Quelldatenbanksystems; Auslösen durch das Quelldatenbanksystem von Abfragen zum Erzeugen von Statistiken durch das Zieldatenbanksystem als Reaktion auf die Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems, die ein vordefiniertes Verhältnis zu den Kosten zum Erzeugen von Quellstatistiken durch das Quelldatenbanksystem aufweisen; Durchführen durch das Zieldatenbanksystem von Abfragen zum Erzeugen von Statistiken als Reaktion auf das Auslösen durch das Quelldatenbanksystem; Senden der erzeugten Statistiken vom Zieldatenbanksystem an das Quelldatenbanksystem als Reaktion auf das Auslösen durch das Quelldatenbanksystem und das Durchführen der Abfragen zum Erzeugen von Statistiken; Aktualisieren der Tabellenstatistiken im Metadatenkatalog auf der Grundlage der erzeugten Statistiken; und Verwenden der aktualisierten Tabellenstatistiken zum Optimieren eines Abfrageplans.
  9. Nichtflüchtiges, durch einen Computer lesbares Medium nach Anspruch 8, wobei die Operationen weiterhin aufweisen: Wiederholen der Operationen Beobachten, Schätzen und Vergleichen; und Durchführen durch das Quelldatenbanksystem von Abfragen zum Erzeugen von Statistiken als Reaktion darauf, dass die Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems höher als oder gleich hoch wie die Kosten zum Erzeugen von Quellstatistiken durch Verwenden das Quelldatenbanksystem sind.
  10. Nichtflüchtiges, durch einen Computer lesbares Medium nach Anspruch 8, wobei das vordefinierte Verhältnis darin besteht, dass die Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems 308 innerhalb eines angegebenen Schwellenwertbereichs der Kosten zum Erzeugen von Quellstatistiken durch Verwenden des Quelldatenbanksystems liegen.
  11. Nichtflüchtiges, durch einen Computer lesbares Medium nach Anspruch 8, wobei die Operationen weiterhin Verwenden vorhandener Statistiken im Quelldatenbanksystem als Reaktion auf ein Feststellen aufweisen, dass die Statistiken nicht fehlen und es keine signifikanten Datenänderungen gibt.
  12. Nichtflüchtiges, durch einen Computer lesbares Medium nach Anspruch 8, wobei die Operationen weiterhin Durchführen einer Prüfung aufweisen, um zu ermitteln, ob Statistiken im Metadatenkatalog fehlen, wobei die Operationen Schätzen, Vergleichen, Auslösen, Durchführen der Abfragen zum Erzeugen von Statistiken, Senden und Aktualisieren als Reaktion auf ein Feststellen durchgeführt werden, dass Statistiken fehlen.
  13. Nichtflüchtiges, durch einen Computer lesbares Medium nach Anspruch 8, wobei die Operationen weiterhin Durchführen einer Prüfung aufweisen, um zu ermitteln, ob es signifikante Datenänderungen an einer Tabelle des Quelldatenbanksystems gibt, wobei die Operationen Schätzen, Vergleichen, Auslösen, Durchführen von Abfragen zum Erzeugen von Statistiken, Senden und Aktualisieren als Reaktion auf ein Feststellen durchgeführt werden, dass es signifikante Datenänderungen gibt.
  14. System, das aufweist: ein Quelldatenbanksystem, wobei das Quelldatenbanksystem mindestens einen ersten Prozessor aufweist, der mit einem ersten Speicher verbunden ist; ein Zieldatenbanksystem, wobei das Zieldatenbanksystem mindestens einen zweiten Prozessor aufweist, der mit einem zweiten Speicher verbunden ist, und das System funktionsmäßig in der Lage ist, Operationen durchzuführen, die aufweisen: Beobachten von Tabellenstatistiken in einem Metadatenkatalog des Quelldatenbanksystems; Schätzen der Kosten zum Erzeugen von Statistiken durch Verwenden eines Zieldatenbanksystems und Schätzen der Kosten von Quellstatistiken durch Verwenden eines Quelldatenbanksystems; Vergleichen der Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems mit den Kosten zum Erzeugen von Quellstatistiken durch Verwenden des Quelldatenbanksystems; Auslösen durch das Quelldatenbanksystem von Abfragen zum Erzeugen von Statistiken durch das Zieldatenbanksystem als Reaktion auf die Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems, die ein vordefiniertes Verhältnis zu den Kosten zum Erzeugen von Quellstatistiken durch das Quelldatenbanksystem aufweisen; Durchführen durch das Zieldatenbanksystem von Abfragen zum Erzeugen von Statistiken als Reaktion auf das Auslösen durch das Quelldatenbanksystem; Senden der erzeugten Statistiken vom Zieldatenbanksystem an das Quelldatenbanksystem als Reaktion auf das Auslösen durch das Quelldatenbanksystem und das Durchführen der Abfragen zum Erzeugen von Statistiken; Aktualisieren der Tabellenstatistiken im Metadatenkatalog auf der Grundlage der erzeugten Statistiken; und Verwenden der aktualisierten Tabellenstatistiken zum Optimieren eines Abfrageplans.
  15. System nach Anspruch 14, wobei die Operationen weiterhin aufweisen: Wiederholen der Operationen Beobachten, Schätzen und Vergleichen; und Durchführen durch das Quelldatenbanksystem von Abfragen zum Erzeugen von Statistiken als Reaktion darauf, dass die Kosten zum Erzeugen von Statistiken durch Verwenden des Zieldatenbanksystems höher als oder gleich hoch wie die Kosten zum Erzeugen von Quellstatistiken durch Verwenden das Quelldatenbanksystem sind.
  16. System nach Anspruch 14, wobei das Beobachten der Tabellenstatistiken weiterhin Durchführen einer Ausführung von Abfragen und/oder Überwachen der Verarbeitung und/oder eine automatisierte Hintergrundaufgabe aufweist.
  17. System nach Anspruch 14, wobei die Operationen weiterhin Verwenden vorhandener Statistiken im Quelldatenbanksystem als Reaktion auf ein Feststellen aufweisen, dass die Statistiken nicht fehlen und es keine signifikanten Datenänderungen gibt.
  18. System nach Anspruch 14, wobei die Operationen weiterhin Durchführen einer Prüfung aufweisen, um zu ermitteln, ob Statistiken im Metadatenkatalog fehlen, wobei die Operationen Schätzen, Vergleichen, Auslösen, Durchführen der Abfragen zum Erzeugen von Statistiken, Senden und Aktualisieren als Reaktion auf ein Feststellen durchgeführt werden, dass Statistiken fehlen.
  19. System nach Anspruch 14, wobei die Operationen weiterhin Durchführen einer Prüfung aufweisen, um zu ermitteln, ob es signifikante Datenänderungen an einer Tabelle des Quelldatenbanksystems gibt, wobei die Operationen Schätzen, Vergleichen, Auslösen, Durchführen von Abfragen zum Erzeugen von Statistiken, Senden und Aktualisieren als Reaktion auf ein Feststellen durchgeführt werden, dass es signifikante Datenänderungen gibt.
  20. System nach Anspruch 14, wobei das Zieldatenbanksystem für statistikartige Abfragen optimiert wird.
DE112021000338.0T 2020-03-24 2021-02-24 Auslagern der statistikerfassung Active DE112021000338B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/827,891 US11182386B2 (en) 2020-03-24 2020-03-24 Offloading statistics collection
US16/827,891 2020-03-24
PCT/IB2021/051531 WO2021191702A1 (en) 2020-03-24 2021-02-24 Offloading statistics collection

Publications (2)

Publication Number Publication Date
DE112021000338T5 true DE112021000338T5 (de) 2022-09-22
DE112021000338B4 DE112021000338B4 (de) 2024-05-29

Family

ID=77856500

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021000338.0T Active DE112021000338B4 (de) 2020-03-24 2021-02-24 Auslagern der statistikerfassung

Country Status (10)

Country Link
US (1) US11182386B2 (de)
JP (1) JP2023518345A (de)
KR (1) KR20220129085A (de)
CN (1) CN115335821B (de)
AU (1) AU2021244852B2 (de)
CA (1) CA3167981C (de)
DE (1) DE112021000338B4 (de)
GB (1) GB2609576A (de)
IL (1) IL295463A (de)
WO (1) WO2021191702A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11520788B2 (en) * 2021-03-05 2022-12-06 Insight Direct Usa, Inc. Methods and systems for transforming distributed database structure for reduced compute load
US11775516B2 (en) * 2022-02-09 2023-10-03 International Business Machines Corporation Machine-learning-based, adaptive updating of quantitative data in database system
KR20240049036A (ko) 2022-10-07 2024-04-16 삼성메디슨 주식회사 초음파 진단 장치 및 초음파 진단 장치의 제어방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4723301B2 (ja) * 2005-07-21 2011-07-13 株式会社日立製作所 ストリームデータ処理システムおよびストリームデータ処理方法
US7991763B2 (en) * 2007-04-13 2011-08-02 International Business Machines Corporation Database query optimization utilizing remote statistics collection
US8095507B2 (en) 2008-08-08 2012-01-10 Oracle International Corporation Automated topology-based statistics monitoring and performance analysis
US9110948B2 (en) * 2012-11-09 2015-08-18 International Business Machines Corporation Relative performance prediction of a replacement database management system (DBMS)
US8996499B2 (en) * 2012-12-19 2015-03-31 International Business Machines Corporation Using temporary performance objects for enhanced query performance
US9495418B2 (en) * 2013-08-07 2016-11-15 International Business Machines Corporation Scalable acceleration of database query operations
US10019478B2 (en) 2013-09-05 2018-07-10 Futurewei Technologies, Inc. Mechanism for optimizing parallel execution of queries on symmetric resources
US9361338B2 (en) * 2013-11-26 2016-06-07 International Business Machines Corporation Offloaded, incremental database statistics collection and optimization
US9928281B2 (en) 2015-03-20 2018-03-27 International Business Machines Corporation Lightweight table comparison
KR101706252B1 (ko) 2016-02-29 2017-02-13 주식회사 티맥스데이터 이기종 데이터베이스들 간의 쿼리 결과를 동기화하기 위한 방법, 서버 및 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램
CN108153776A (zh) 2016-12-05 2018-06-12 北京国双科技有限公司 数据查询方法及装置
US20190034496A1 (en) 2017-07-27 2019-01-31 Citrix Systems, Inc. Abstract Query Processing Using Metadata on Multiple Complex Data Sources
US11468060B2 (en) * 2018-06-25 2022-10-11 Oracle International Corporation Automatic query offloading to a standby database

Also Published As

Publication number Publication date
KR20220129085A (ko) 2022-09-22
AU2021244852A1 (en) 2022-09-01
AU2021244852B2 (en) 2023-04-27
WO2021191702A1 (en) 2021-09-30
GB2609576A (en) 2023-02-08
US11182386B2 (en) 2021-11-23
CA3167981C (en) 2023-12-19
DE112021000338B4 (de) 2024-05-29
US20210303575A1 (en) 2021-09-30
JP2023518345A (ja) 2023-05-01
CA3167981A1 (en) 2021-09-30
GB202215278D0 (en) 2022-11-30
CN115335821B (zh) 2023-08-15
CN115335821A (zh) 2022-11-11
IL295463A (en) 2022-10-01

Similar Documents

Publication Publication Date Title
DE112020003820T5 (de) Erkennung von Anomalien und Abweichungen unter Verwendung eines domänenindizierten Einschränkungs-Repository
DE112021000338B4 (de) Auslagern der statistikerfassung
DE112013001308T5 (de) Verwalten von mandantenspezifischen Datensätzen in einer mandantenfähigen Umgebung
DE202011110124U1 (de) Hybridabfrageausführungsplan
DE102013216273A1 (de) Umwandlung von Datenbanktabellenformaten auf der Grundlage von Benutzerdatenzugriffsmustern in einer vernetzten Datenverarbeitungsumgebung
DE112012004238T5 (de) Auf Erkennung beruhende Identifizierung und Migration von leicht in eine Cloud verlagerbaren Anwendungen
DE112016003355T5 (de) Sicherer Einsatz einer Anwendung über Einsatzorte hinweg
DE112021002572T5 (de) Multikriterielles optimieren von anwendungen
DE202012013427U1 (de) Verknüpfung von Tabellen in einem MapReduce-Verfahren
DE202016008045U1 (de) Verteiltes Speichersystem mit Replika-Standortauswahl
DE112019001433T5 (de) Datenanonymisierung
DE112021005422T5 (de) Auf lernen beruhende arbeitslast-ressourcenoptimierung für datenbank-managementsysteme
DE102013204186A1 (de) Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite
DE112019000421B4 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE112020005323T5 (de) Elastische ausführung von machine-learning-arbeitslasten unter verwendung einer anwendungsbasierten profilierung
DE112021003401T5 (de) Schattenexperimente für serverlose multi-tenant-cloud-dienste
DE112021003908T5 (de) Föderales maschinenlernen durch verwenden von ortsabhängigem hashing
DE102021127254A1 (de) Inhaltssensitives Auswählen von Knoten zum Erstellen von Containern
DE112020000545T5 (de) Deep-forest-modell-entwicklung und -training
DE112021003262T5 (de) Erkennen von quelldatensätzen, die zu einem transferlernverfahren für eine zieldomäne passen
DE112018001290T5 (de) Verfahren zum Schätzen der Löschbarkeit von Datenobjekten
DE112017005772T5 (de) Zeitpunktgesteuerte sicherungen über einen speicher-controller in eine objektspeicher-cloud
DE112020003825T5 (de) Entsprechung zwischen externen Operationen und Containern sowie Mutationsereignissen
DE112021002883T5 (de) Automatisierte rückmeldung und kontinuierliches lernen zur abfrageoptimierung
DE112021001163T5 (de) Dynamisches erstellen von facetten unter verwendung von graphpartitionierung

Legal Events

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