DE4323947C2 - Verfahren zum Steuern von Datenbankabfragen in einem heterogenen, verteilten Datenbanksystem - Google Patents

Verfahren zum Steuern von Datenbankabfragen in einem heterogenen, verteilten Datenbanksystem

Info

Publication number
DE4323947C2
DE4323947C2 DE4323947A DE4323947A DE4323947C2 DE 4323947 C2 DE4323947 C2 DE 4323947C2 DE 4323947 A DE4323947 A DE 4323947A DE 4323947 A DE4323947 A DE 4323947A DE 4323947 C2 DE4323947 C2 DE 4323947C2
Authority
DE
Germany
Prior art keywords
effort
database
query
queries
model
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.)
Expired - Fee Related
Application number
DE4323947A
Other languages
English (en)
Other versions
DE4323947A1 (de
Inventor
Weimin Du
Ravi Krishnamurthy
Ming-Chien Shan
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE4323947A1 publication Critical patent/DE4323947A1/de
Application granted granted Critical
Publication of DE4323947C2 publication Critical patent/DE4323947C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Fuzzy Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

Die vorliegende Erfindung bezieht sich auf ein Verfahren zum Steuern von Datenbankabfragen in einem heterogenen, verteilten Datenbanksystem.
Der Ausdruck "verteiltes Datenbank-Managementsystem", wie er hier angewandt wird, bedeutet ein Computersystem für ein Datenbank-Managementsystem (im folgenden DBMS genannt), das mehrere Computerstandorte umfaßt, von denen jeder mit einer lokalen Datenbank versehen ist, die in einem Nachrichten­ netzwerk miteinander verbunden sind, in dem ein Anwender an jedem Standort auf Daten zugreifen kann, die an irgendeinem anderen Standort gespeichert sind.
Jeder Standort hat selbst ein DBMS: dieses hat seine eigenen Endgeräte und Anwender, seinen eigenen Speicher und seine eigene CPU, die seine eigene Datenbank und Datenbankverwalt­ ungsfunktionen (d. h. ein lokales DBMS) arbeiten läßt. Es hat ebenfalls seinen eigenen Datenübertragungsmanager, der die zusätzliche Verantwortung der Steuerung des Austausches von Meldungen mit anderen Standorten in dem gesamten verteilten Datenbanksystem trägt. Zusammengefaßt ist ein verteiltes Datenbank-Managementsystem ein System, in dem einzelne Daten­ banksysteme von verschiedenen Herstellern stammen können. Das Gesamtsystem wird in der Literatur oftmals als ein heterogenes verteiltes Datenbank-Managementsystem oder HDBMS bezeichnet. Ein HDBMS muß verschiedene Datenbanksysteme mit verschiedenen Datenbankmodellen, Sprachen und Diensten unterstützen.
Ein Beispiel für ein solches System ist in Fig. 1 gezeigt. Das Beispiel stellt ein einfaches verteiltes Banksystem mit zwei Standorten, z. B. einer in Portland, Oregon und einer in Washington, D.C., dar. Selbstverständlich umfassen echte verteilte Systeme normalerweise mehr als nur zwei Standorte. Nehmen wir an, daß Kontounterlagen für das Gebiet von Washington, D.C., in einer lokalen Datenbank an dem D.C.- Standort gespeichert sind, während Kontounterlagen für das Gebiet von Oregon in einer lokalen Datenbank am Standort Portland gespeichert sind. Nehmen wir ferner an, daß die beiden Standorte miteinander verbunden sind, um eine einzel­ ne "globale" oder verteilte Datenbank zu bilden. Das System verbindet Leistungsfähigkeit der Verarbeitung (die Daten werden nahe an dem Punkt gespeichert, an dem sie am häufig­ sten benutzt werden) mit erhöhter Zugänglichkeit (es ist möglich, auf ein Washington, D.C.-Konto von Portland, Oregon und umgekehrt über eine Datenübertragungsverbindung zuzu­ greifen).
Ein Überblick über die Zielsetzung eines verteilten Datenbanksystems
Ein Hauptziel der verteilten Datenbanksysteme ist es, das zu schaffen, was typischerweise Standorttransparenz genannt wird, und bedeutet: Anwender sollten nicht zu wissen brau­ chen, an welchem Standort irgendein gegebenes Stück Infor­ mation gespeichert ist, aber sie sollten fähig sein, sich so zu verhalten als ob die gesamte Datenbank an ihrem lokalen Standort gespeichert wäre. Eine Anfrage für einige entfernte Teile von Informationen sollte das System veranlassen, diese Daten automatisch, durch Nachschlagen in dem Systemkatalog zu finden. Der Systemkatalog ist ein Datenverzeichnis und kann selbst als eine Datenbank angesehen werden (eine Systemdatenbank im Gegensatz zu einer Endanwenderdatenbank). Der Inhalt des Kataloges kann als "Daten über Daten" ange­ sehen werden, d. h. als Beschreibungen von anderen Objekten im System im Gegensatz zu "rohe Daten". Im besonderen sind alle verschiedenen Schemata und Funktionen gespeichert. Der Katalog schließt Datenbanktabellen, Darstellungen, Indizes, Anwender, Anwendungspläne, Zugriffsprivilegien, etc. ein. Zum Beispiel benutzen Optimierer, das ist hier von beson­ derer Wichtigkeit, Kataloginformationen, um besondere Zugriffsstrategien auszuwählen.
In einem verteilten Datenbanksystem schließt der Systemka­ talog nicht nur die normalen Katalogdaten, wie oben bespro­ chen, ein, sondern auch alle notwendigen Steuerungsinforma­ tionen, um es dem System zu ermöglichen, die in diesem Ab­ schnitt erwähnte gewünschte Orts-, Aufspaltungs- und Wieder­ gabetransparenz zu schaffen. Die Vorteile einer solchen Transparenz sind, daß sie die Logik von Anwendungsprogrammen vereinfacht und sie erlaubt es, wenn die Anwendungsmuster wechseln, Daten von einem Standort an einen anderen ohne die Notwendigkeit irgendeiner Neuprogrammierung zu verschieben. Tatsächlich ist die Ortstransparenz nicht mehr als ein anderer Aspekt von physikalischer Datenunabhängigkeit (z. B. Unempfindlichkeit der Anwendungen gegenüber Wechseln in der Speicherstruktur und bei der Zugriffsstrategie), wie das hier angewandte Konzept in dem verteilten Modell.
Ein zweites Ziel des verteilten Datenbanksystemes ist es, Datenaufspaltung zu unterstützen. Ein System unterstützt Datenaufspaltung, wenn ein gegebenes logisches Objekt, z. B. eine komplette Kontodatei, zu Zwecken der physikalischen Speicherung in Teile (Fragmente) geteilt werden kann. Tat­ sächlich nehmen wir eine solche Unterstützung in unserem Bankbeispiel an, da wir Washington-Kontounterlagen in D.C. und Oregon-Kontounterlagen in Portland speichern. Die Fragmente in diesem Beispiel bestehen aus einer Einschrän­ kung der gesamten Kontendatei (Relation) nur auf solche Un­ terlagen, die das Ortsfeld entweder auf "Portland, Oregon" oder "Washington, D.C.", gesetzt haben. Alternativ könnten wir entscheiden, Girokontounterlagen in D.C. zu speichern, während Sparkontounterlagen in Portland gespeichert werden; die Fragmente waren wiederum Einschränkungen. Im allgemeinen könnte ein Fragment jede willkürliche Unterrelation sein, die aus der ursprünglichen Relation durch Einschränkungs­ operationen erhalten werden kann.
Ein System, das Datenaufspaltung unterstützt, sollte eben­ falls Aufspaltungstransparenz unterstützen; d. h., daß die Anwender in der Lage sein sollten, sich in allen Fällen so zu verhalten, als ob die Relationen überhaupt nicht aufge­ spaltet wären (Datenunabhängigkeit). Mit anderen Worten sollte den Anwendern eine Darstellung der Daten gezeigt werden, in der die Fragmente durch passende Verbindungs- und Vereinigungsoperationen miteinander verbunden sind.
Ein weiteres Ziel der verteilten Datenbanksysteme ist es, Datenvervielfältigung und entsprechend Vervielfältigungs­ transparenz zu unterstützen. Die grundsätzliche Idee hierbei ist es, daß ein gegebenes logische Objekt, z. B. eine ge­ gebene Kontounterlage, auf einer physikalischen Ebene durch viele verschiedene Kopien desselben gespeicherten Objektes an vielen verschiedenen Standorten dargestellt werden kann. Zum Beispiel könnte ein gegebener Kontodatensatz sowohl in der D.C. -Datenbank als auch in der Portland-Datenbank gespeichert werden. Ein Vorteil einer solchen Anordnung ist es, daß die Wiedergewinnungen an die nächstliegende Kopie geleitet werden kann. Der entsprechende Nachteil ist es, daß Aktualisierungen an alle Kopien weitergeleitet werden müs­ sen. Vervielfältigungstransparenz bedeutet, daß sich die Anwender nicht über die Vervielfältigungen bewußt sein brau­ chen, aber in der Lage sein sollten, sich so zu verhalten, als ob jedes logische Objekt durch ein einziges gespeicher­ tes Objekt dargestellt wird.
Orts-, Aufspaltungs- und Vervielfältigungstransparenz zu­ sammen bedingen, daß ein verteiltes System für den Anwender wie ein zentralisiertes System aussehen und sich so anfühlen sollte. Jedoch geht die Verwirklichung dieses Zieles nicht ohne Probleme vor sich, im besonderen besteht das Problem der Abfrage-Zugriffs-Optimierung.
Das grundsätzliche Problem
Das grundsätzliche Problem ist es, daß ein verteiltes Daten­ banksystem eine Ansammlung von Standorten oder Knoten in einem Netzwerk ist und daß Netzwerke, zumindest Netzwerke, die lange Distanzen überwinden, langsam sind. Lange Distan­ zen überwindende Netzwerke, die geographisch auseinander­ liegende Standorte verbinden, benutzen Telefonleitungen, auf denen die Datenübertragungsrate typischerweise 50 bis 100 kBit pro Sekunde oder weniger beträgt. Folglich ist es ein vorrangiges Ziel in verteilten Datenbanksystemen, die Anzahl und Größe der Meldungen zu minimieren. Dieses Ziel wirft auf der anderen Seite Probleme in untergeordneten Gebieten und hier im besonderen bei der Abfrageverarbeitung auf.
Das Problem der Abfrageverarbeitung, besonders in der HDBMS- Umgebung, konzentriert sich auf eine Optimierung, die die einzigste, wichtigste Überlegung bei einem Entwurf von ver­ teilten Systemen ist. Die Optimierung ist der Ablauf, der für eine gegebene Abfrage den optimalen Ausführungs- oder Anwendungsplan feststellt. Ein Optimierer ist eine Haupt­ unterkomponente des Systemes, die für die Erzeugung eines Anwendungsplanes verantwortlich ist (d. h., die Maschinen­ codebefehle als SQL-Anweisungen (structured query language = strukturierte Abfragesprache) auszuführen). In dem ver­ teilten System muß ein Anwendungsplan mehrere Datenbank­ systeme in einer vernetzten Umgebung mit entsprechenden Anforderungen, wie z. B. der erwähnten Geschwindigkeit der Datenübertragung, in Betracht ziehen. Deshalb ist die Optimierung für die wirksame Abfrageverarbeitung, besonders in der HDBMS-Umgebung, entscheidend. Um die Rolle der Optimierung und das durch die Erfindung gelöste Problem besser zu verstehen, folgt ein kurzer Überblick über die klassische DBMS-Struktur.
Ein Überblick über die klassische DBMS-Struktur
Vom Standpunkt des Anwenders aus gibt es typischerweise vier Komponenten für ein modernes DBMS, nämlich den Vorkompiler, den Verbinder, die Laufzeitüberwachung und einen Manager für gespeicherte Daten. Ein Vorkompiler ist ein Vorprozessor für Anwendungsprogramme, die eingebettete SQL-Anweisungen ent­ halten. Er sammelt diese Anweisungen in einem Datenbankan­ forderungsmodul (database reguest module = DBRN) und ersetzt diese Anweisung in dem Originalprogramm durch die Host­ sprache CALLs in eine Laufzeitüberwachung. Eine Verbinder­ komponente kompiliert eine oder mehrere zusammenhängende DBRNs, um einen Anwendungsplan (d. h., Maschinencodebefehle, um die SQL-Anweisung in diesen DBRMs auszuführen, ein­ schließlich Maschinencodeaufrufen an einen Manager für ge­ speicherte Daten) zu erzeugen. Eine Laufzeitüberwachung überwacht die SQL-Anwendungsprogramme während der Ausfüh­ rung. Wenn ein solches Programm einige Datenbankoperationen anfordert, geht die Steuerung zuerst an die Laufzeitüber­ wachung, entsprechend der durch den Vorkompiler eingesetzten CALLs, über. Die Laufzeitüberwachung übergibt die Steuerung dann an den Anwendungsplan und der Anwendungsplan seiner­ seits startet einen Manager für die gespeicherten Daten, um die gewünschte Funktion auszuführen. Ein Manager für ge­ speicherte Daten verwaltet die aktuelle Datenbank, speichert Datensätze und gewinnt Datensätze wieder, wie durch den An­ wendungsplan angefordert. Wenn notwendig, startet er andere Komponenten aus niedrigeren Schichten, um Detailebenen- Fuuktionen, wie z. B. Pufferung der Daten, Verriegelung, Sortieren und dergleichen, während der Ausführung seiner grundsätzlichen Aufgabe auszuführen.
Von einem internen Betriebsstandpunkt aus sind dieselben vier Komponenten in Betrieb, nämlich: bevor der Anwendungs­ quellcode durch seinen regulären Sprachübersetzer kompiliert werden kann, muß er durch einen Vorkompiler vorverarbeitet werden, um die SQL-Befehlsanweisungen herauszunehmen und die SQL-Befehlsanweisungen durch Aufrufzeilen an die Laufzeit­ überwachung zu ersetzen; dann wird das herausgenommene SQL, das in einem DBRM gesammelt wird, in einen Anwendungsplan kompiliert, der dann durch die Laufzeitüberwachung jedesmal angewendet wird, wenn sie auf eine CALL-Anweisung einer aus­ geführten Anwendung trifft. Trotzdem ist ein näherer Blick auf den Verbinderschritt notwendig, um das Problem der Opti­ mierung zu verstehen.
Wie bereits angedeutet, ist der Verbinder wirklich ein Da­ tenbankkompiler: er wandelt höhere Datenbankanforderungen, welche tatsächlich SQL-Anweisungen sind, in Maschinencode um. Jedoch ist der Verbinder tatsächlich ein optimier­ ender Kompiler: die Ausgabe des Verbinders ist nicht nur Maschinencode, sie ist optimierter Code. Die Eingabe in den Verbinder besteht aus einer oder mehrerer DBRMs. Die Ausgabe des Verbinders (d. h. der übersetzte Code, der ein Anwend­ ungsplan ist) wird im Systemkatalog gespeichert, indem er, wenn durch die Laufzeitüberwachung benötigt, gefunden werden kann.
Eine Hauptunterkomponente des Verbinders ist ein Optimierer. Seine Funktion ist es, für jede verarbeitete SQL-Anweisung eine effiziente Zugriffsstrategie auszuwählen, um die An­ weisung auszuführen. Es sei daran erinnert, daß Datenmani­ pulationsanweisungen in SQL, wie z. B. SELECT, nur angeben, welche Daten der Anwender will, nicht wie diese Daten zu erhalten sind. Der Zugriffsweg, um an diese Daten zu ge­ langen, wird durch den Optimierer ausgewählt. Programme sind folglich unabhängig von solchen Zugangswegen, wobei dies aus Gründen der Datenunabhängigkeit wünschenswert ist. Als ein Beispiel wird die folgende, einfache SELECT-SQL-Anweisung betrachtet:
Sogar in diesem sehr einfachen Fall gibt es mindestens zwei Wege zur Durchführung der gewünschten Wiedergewinnung:
  • 1) durch Durchführung einer physikalischen Folgeabtastung der Tabelle ALEX, bis der Datensatz für 17AUG92 gefunden ist; oder
  • 2) wenn es einen Index auf die ALEX#-Spalte dieser Tabelle gibt, dann durch Anwendung des Indizes und folglich durch direkten Zugriff auf den Datensatz 17AUG92.
Der Optimierer wird auswählen, welche dieser Strategien er­ griffen wird. Etwas allgemeiner gilt, daß der Optimierer bei irgendeiner gegebenen, bestimmten, zu optimierenden SQL-An­ weisung seine Strategieentscheidung auf der Basis von Erwägungen, wie z. B.:
  • - auf welche Tabellen in der Anfrage Bezug genommen wird,
  • - wie groß diese Tabellen sind,
  • - welche Indizes existieren,
  • - wie selektiv diese Indizes sind,
  • - wie die Daten physikalisch auf der/den Platte(n) gruppiert sind,
  • - die Form der WHERE-Anweisung in der Abfrage,
usw., treffen wird. Der Optimierer wird dann einen Maschinencode abhängig von der Wahl der Strategie erzeugen. Wenn, z. B. der Optimierer entscheidet, einen existierenden Index, z. B. X, zu verwenden, dann werden Maschinencode­ befehle in der Anwendung sein, die sich eindeutig auf X be­ ziehen. Die resultierende Strategie wird oft als Auf­ wandsmodellierung bezeichnet.
Der Punkt ist, daß es im wesentlichen viele mögliche Strategien zur Verarbeitung einer gegebenen Abfrage geben wird. Zum Beispiel könnte eine Abfrage nach einer Verbindung einer Relation R(a), die am Standort PDX gespeichert ist, und einer Relation R(b), die an einem Standort DC gespei­ chert ist, dadurch ausgeführt werden, daß R(a) nach DC, R(b) nach PDX oder beide R(a) und R(b) zu einem dritten Standort, LA verschoben werden. Mit anderen Worten könnte es sechs plausible Abfrage-Bearbeitungsstrategien (abhängig von einem bestimmten Satz Annahmen) geben, bei denen die Ant­ wortzeit irgendwo zwischen einigen Sekunden und einigen Ta­ gen liegen könnte. Entsprechend wird jede Verarbeitungsstra­ tegie einen damit verbundenden Aufwand haben. Das Ziel der Optimierung ist dann die Auswahl der Strategie des gering­ sten Aufwandes.
Eine Optimierung der Abfrageverarbeitung bleibt eine der Hürden für effektive verteilte heterogene Datenbank-Manage­ mentsysteme (HDBMSs). Immer öfter wird ein verteiltes Daten­ banksystem in seiner Beschaffenheit eher hetereogen als homogen sein. Mit anderen Worten heißt das, daß jeder Stand­ ort innerhalb des verteilten Systems seine eigene besondere Art eines Datenbank-Managementsystems haben kann. Wichtig ist, daß der Zugriff auf interne System-Managementdaten bezüglich der Abfrage-Zugriff-Optimierung auf einer lokalen Ebene streng eingeschränkt oder gänzlich unverfügbar sein kann. Dennoch muß eine Endanwenderanwendung, die Daten aus dieser verteilten Umgebung abfragt, in der Lage sein, seine Datenzugriffsstrategien zu optimieren, damit die Datenbankabfrageoperationen über das Netzwerk nicht unan­ nehmbar langsam werden.
In einem heterogenen DBMS muß der Ausführungsraum erweitert sein, um globale Abfragen über alle seine einzelnen DBMSs zu handhaben. Dies kann einfach durch neue Verbindungsverfahren gemacht werden, die sich über diese DBMSs erstrecken. Des­ halb können der Ausführungsraum und die Suchstrategien von der Art, wie sie in den existierenden, kommerziellen DBMSs angewendet werden, in einem heterogenen DBMS nur angewendet werden, wenn ein Aufwandsmodell für alle Kategorien von DBMSs in dem heterogenen DBMS zugänglich gemacht wird. Solche Aufwandsmodelle werden bis jetzt durch existierende Systeme nicht geschaffen. Der Haken an dem Problems ist es, ein Aufwandsmodell für jede der DBMSs zu erhalten. Dies schließt die Kalibrierung eines gegebenen, relationalen DBMS und die Ableitung der Aufwandskoeffizienten aus den Auf­ wandsformeln ein.
In Wirklichkeit läuft es darauf hinaus, daß verteilte Datenbanksysteme schließlich eine hervorragende Zusammen­ arbeit und Kompromisse unter den Außenstandorten bei der Wahl und der Anwendung eines bekannten Datenbankmanagement­ systems, das einen solchen operativen Rahmen erfüllt, er­ fordern. Folglich sind heterogene oder "offene" verteilte Datenbanksysteme, obwohl sehr wünschenswert, typischerweise unpraktisch. Es ist deshalb offensichtlich, daß bestimmte große zusammengeschlossene Computerumgebungen einen hohen Aufwand bezüglich der Systemintegration und in vielen Fällen bezüglich der gänzlichen Umrüstung mit sich bringen.
Entsprechend bleibt ein Bedürfnis an einem heterogenen Abfrage-Optimierungsverfahren, das die traditionelle Opti­ mierungsstrategie, die allgemein in einem kommerziellen DBMS angewendet wird, erweitert, um die Ausführung von Abfragen sowohl über ein bekanntes DBMS als auch über ein fremdes DBMS in einem heterogenen verteilten Datenbank-Management­ system zu erlauben.
Aus der EP 0456491 A2 ist bereits ein Managementsystem für eine verteilte Datenbank bekannt. Zur Optimierung des Daten­ bankzugriffes werden hier die Datenbankwiedergewinnungs­ zeiten gemessen und gespeichert.
Ausgehend von diesem Stand der Technik liegt der vor­ liegenden Erfindung die Aufgabe zugrunde, ein effektiv arbeitendes Verfahren zum Steuern von Datenbankabfragen in einem heterogenen, verteilten Datenbanksystem zu schaffen.
Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 gelöst.
Ein Vorteil der Erfindung ist es, daß Datenbankabfragen in verschiedenen Datenbanken mit geringstem Wissen über die physikalische Leistungsfähigkeit oder die funktionalen Modelle für jeden der Datenbankmanager optimiert werden.
Die Erfindung schafft ein Verfahren für ein heterogenes Datenbank-Management­ system, das ein Abfrage-Optimierungsverfahren verwendet, das eine Optimierung von Datenbankabfragen an verschiedene Datenbanken in einer nahtlosen Art und Weise in DBMSs eines bekannten und/oder fremden Anbieters durchführen kann, die demselben Standard, wie z. B. der Schaffung einer gewöhn­ lichen relationalen Datenbankstatistik entsprechen. Der Opt­ imierer kann Datenbankabfragen in verschiedenen Datenbanken ohne Wissen der Leistungsmodelle oder funktionalen Modelle über jeden der Datenbankmanager, die benötigt werden, um optimale Abfragezugriffsstrategien in allen Datenbanken innerhalb des verteilten Netzwerkes zu berechnen, optimieren. Die Erfindung verwendet eine kalibrierende Datenbank, die synthetisch erzeugt wird, um den Vorgang der Ableitung der Aufwandsmodellkoeffizienten im wesentlichen frei von unvorhersehbaren Problemen zu machen. Das bestimmte Aufwandsmodell, das von der Erfindung verwendet wird, macht seine Abschätzungen aufgrund der Anwendung logischer Charakteristika des Abfrageverhaltens und nicht aufgrund physikalischer Aspekte der Abfrageeinrichtungen. Insbe­ sondere wird der Aufwand einer Abfrage auf der Grundlage der logischen Charakteristika des DBMS, der Relationen und der Abfrage selbst abgeschätzt; der Aufwand von umfangreichen Abfragen wird durch Anwendung einfacher Abfragen abge­ schätzt.
Die kalibrierende Datenbank wird bei einer Reihe von Be­ zugspunkten zum Kalibrieren der Koeffizienten der Aufwands­ formel für irgendein gegebenes relationales DBMS benutzt, ohne Notwendigkeit von Daten des Aufwandsmodells für den lokalen Datenbankabfragezugriff, der streng beschränkt oder gänzlich unverfügbar sein kann. Die resultierenden kali­ brierenden Aufwandsmodelle werden in einem HDBMS-System­ katalog für die Entwicklung und Verwaltung nachfolgender Zugriffsstrategien gespeichert.
Die synthetische kalibrierende Datenbank ist derart ausge­ legt, daß bei einer gegebenen Testabfrage die resultierende Ausführung vorhersehbar ist; d. h., daß der Optimierer die vorausgesagten Zugriffs- und Verbindungsverfahren auswählen wird. Das System kann nicht benutzt werden, um die Konstan­ ten (z. B. Anzahl der aufgetretenen Eingaben/Ausgaben) des herkömmlichen Aufwandsmodells zu messen. Ferner werden der Aufbau der Datenbank, die Formulierung der Abfragen und das Durchführen der Beobachtungen als ein Anwender-"black-box"- DBMS Verfahren ausgeführt; d. h., daß der Kalibrierungs­ vorgang nichts über die Verhaltenscharakteristika oder die Aufwandsmodelle eines gegebenen teilnehmenden DBMS zu wissen braucht. Um die Koeffizienten der Aufwandsformeln abzu­ leiten, ist es deshalb unerläßlich, daß die Abfragen und die Datenbank derart konfiguriert sind, daß die sich ergebende Ausführung vorhersehbar ist; d. h., daß der Optimierer die vorausgesagten Zugriffs- und Verbindungsmethoden aussuchen wird. Auch wenn die Ausführung vorhersehbar ist, muß sie frei von den oben genannten Störungen sein, weil sonst die Feststellung der Ursache des beobachteten Effekts nicht möglich ist. Wenn z. B. alle Tupel mit einem bestimmten Wert eines Attributs gerade auf einer einzelnen Seite sind, dann könnte der beobachtete Wert mißverständlich sein.
Entsprechend liegt ein Vorteil der Erfindung darin, wie oben erwähnt, eine Datenbank und einen Satz Abfragen, die frei von diesen Störungen sind, derart zu erzeugen, daß an­ schließend die Koeffizienten der Aufwandsformeln exakt abge­ leitet werden können. Dazu beruht das Datenzugriffaufwandsmodell, das aus dem Kalibrierungs­ vorgang, der die synthetische Datenbank verwendet, hervor­ geht, in einem anderen Aspekt der Erfindung derart auf den logischen Informationen der Datenbank, daß die Aufwands­ koeffizienten als Funktionen dargestellt werden und daß die diesen Koeffizienten zugeordneten Werte, eine Zusammen­ setzung des Aufwandes bzw. der Kosten der CPU-Benutzung und den Eingabe/Ausgabe-Anforderungen sind.
Ein bevorzugtes Ausführungsbeispiel der Erfindung wird nach­ folgend unter Bezugnahme auf die bei liegenden Zeichnungen näher erläutert, wobei eine Fallstudie zur Implementierung der Erfindung eingeschlossen ist. Es zeigen:
Fig. 1 ein einfaches Multidatenbankanlagennetzwerk aus zwei oder mehreren Maschinen, die durch digitale Zweiwegdatenübertragungskanäle verbunden sind;
Fig. 2 den Ablauf des Aufbaus einer synthetischen Daten­ bank und die Anwendung der synthetischen Datenbank auf jeden der teilnehmenden Datenbankmanger in je­ der Datenbankanlage in dem heterogenen verteilten Datenbanknetzwerk;
Fig. 3 den Ablauf der eigentlichen Kalibrierung der teil­ nehmenden DBMSs in dem Netzwerk als eine genauere Darstellung von Fig. 2;
Fig. 4 eine Tabelle, die die tatsächlich vorhandenen Ab­ fragen, die zur Kalibrierung angewendet werden, auflistet;
Fig. 5 eine genauere Darstellung von Fig. 3, wobei der Ablauf des eigentlichen Erhaltens der Aufwands­ modellkoeffizienten einen zusätzlichen Optimier­ ungsschritt und die darauffolgende Speicherung der Aufwandsmodelldaten in einem systemweiten Katalog zur zukünftigen Anwendung durch Anwendungspläne umfaßt;
Fig. 6 eine Beschreibung der Aufwands- und Verbindungsfor­ meln, die in der Fallstudie, die eine Ausführung der Erfindung in einer Testumgebung ist, angewendet wird;
Fig. 7 eine Tabelle der Werte für die sechs wichtigsten Attribute der vierten Relation (R₄) in dem Kalibrierungsmodell, das in der Fallstudie, die die Erfindung ausführt, angewendet wird;
Fig. 8 eine Definiton des i-ten Tupel in Rn und der Werte der entsprechenden Attribute, die in dem ver­ wendeten Kalibrierungsmodell der Fallstudie, die die Erfindung ausführt, angewendet werden;
Fig. 9 eine Tabelle der Kalibrierungsrelationen, die in dem verwendeten Kalibrierungsmodell der Fallstudie, die die Erfindung ausführt, angewendet werden;
Fig. 10 eine Tabelle der SQL-Testabfragen, die in dem ak­ tuellen Kalibrierungsablauf der Fallstudie, die die Erfindung ausführt, benutzt werden;
Fig. 11 eine Tabelle der Werte der Aufwandsformelkoef­ fizienten, die für Allbase, DB2 und Informix RDBMS- Systeme der Fallstudie, die die Erfindung ausführt, angewendet werden;
Fig. 12 eine komplette Liste aller SQL Testverbindungsab­ fragen, die in der Fallstudie, die die Erfindung ausführt, verwendet werden;
Fig. 13 ein Graph der abgelaufenen Zeit der Testabfragen, die auf den DB2 RDBMS den spezifizierten Beziehun­ gen und ihren Testverbindungen ablaufen, die in der Fallstudie, die die Erfindung ausführt, verwendet werden;
Fig. 14 eine graphische Analyse des Vergleiches zwischen dem vorbestimmten Wert und den beobachteten Werten für die Verbindungsabfragen nach Typ 3.1, die in der Fallstudie verwendet werden; und
Fig. 15 und 16 zwei graphische Analysen, die den Vergleich zwi­ schen dem vorhergesagten und dem beobachteten Auf­ wand der Testabfragen gegen das DB2 RDBMS dar­ stellt, das in der Fallstudie verwendet wird, die die Erfindung ausführt.
Ein verteiltes Computerdatenbanknetzwerk 10, vergleiche Fig. 1, hat ein Anfordererdatenbankanlagensystem 11 und ein oder mehrere Datenbankanlagensystem(e) 12. Die Konfiguration stellt z. B. ein einfaches verteiltes Banksystem mit zwei Standorten, einen in Portland, Oregon und einen in Washington, D.C., dar. Bei der Erfindung funktioniert sowohl ein Netzwerk, das nur ein lokales Gebiet umfaßt, als auch ein Netzwerk, das weit auseinanderliegende Gebiete verbin­ det; zum Zweck dieser Beschreibung nehmen wir an, daß das verteilte Netzwerk eine weit verbreitete Übertragungsein­ richtung mit Anlagen in verschiedenen Städten ist.
Abfragezugriffe in diesem mit einem Netzwerk verteilt ange­ ordneten Datenbanksystem machen Gebrauch von einem An­ fordereranlagensystem 11 mit dessen Datenbankmanger 13, des­ sen eigenen Suchdatenbanken 14, und ein oder mehrere andere Anlagensysteme 12 und senden ein Suchergebnis an einen An­ forderercomputer 16. Hochgeschwindigkeitsübertragungsein­ richtungen zwischen den Anlagen können durch verschiedene Einrichtungen 18 ausgeführt werden, die von einem Standard- Ethernet-Netzwerk für den örtlichen Bereich mit 10 Megabit pro Sekunde bis zu einer Langstreckendatenübertragungs­ einrichtung, die Daten über große Entfernungen mit Raten von 50 bis 100 Kilobit pro Sekunde übertragen, reichen. Das System 10 wird als heterogen angesehen, wenn die einzelnen lokalen Datenbanken durch getrennte und verschiedene Unter­ systeme, die Datenbankmanger 13, 13A, etc. genannt werden, deren einzige verbindende Einrichtung eine standardmäßige strukturierte Abfragesprache (SQL = structured query language) ist, verwaltet werden. Das beabsichtigte Ergebnis ist es, daß die Informationsdatenbank, obwohl sie auf viele Anlagensysteme, die vielleicht geographisch verstreut sind, verteilt ist, als ein nahtloses großes System erscheint. Die Anlage verbindet und getrennte Komponenten sind deshalb transparent.
Die vorliegende Erfindung erlaubt es diesem heterogenen ver­ teilten Datenbanksystem 10, eine unbeschränkte Anzahl von Datenbankabfragen von einer unbeschränkten Zahl teilnehmend­ er Computer 17 anzunehmen, wobei die Abfragen an die Gesamt­ datenbank, wie sie durch die Architektur verteilt ist, ge­ richtet werden. Überdies schafft die vorliegende Erfindung die Möglichkeit, Daten in einem Multianlagen-, Multidaten­ banknetzwerk unabhängig von der Art oder von bestimmten Nuancen des individuellen Datenbankmanagementuntersystems 13, 13A, etc. zu speichern, zu erhalten und zu modifizieren. Das im Folgenden detailliert beschriebene System ist eine erheb­ liche Verbesserung gegenüber dem Stand der Technik, weil zum ersten Mal Datenbankmanager von einer Vielzahl von Herstel­ lern miteinander kombiniert werden können, um ein nahtloses großes Datenbankmanagementnetzwerk mit annehmbarem, wenn nicht exzellentem, Verhalten bezogen auf den Aufwand der Abfragezugriffe über diese sich unterscheidenden Datenbank­ managementsysteme zu bilden.
Systemüberblick
Der Ablauf der Kalibrierung, vergleiche Fig. 2, erfordert zuerst den Aufbau einer synthetischen Datenbank 20, die verwendet wird, um Abfrageverfahren für alle Datenbankmana­ ger 13, 13A, etc. innerhalb des in Fig. 1 dargestellten Systems 10 zu kalibrieren. Die synthetische Datenbank kann auf irgendeiner Maschine aufgebaut sein und wird einmal an gewendet, um die Aufwandsmodelle, die mit dem Zugriff auf Daten durch jeden der Datenbankmanager verbunden sind, herzuleiten. Die Datenbank 20, auch als eine kalibrierende Datenbank bezeichnet, kann für zukünftige Anwendung, sollte z. B. ein neues DBMS zu dem Netzwerk hinzugefügt werden, ge­ speichert werden. Die Datenbank 20 befindet sich auf jedem Anlagensystem 12, vergleiche Fig. 1, und eine Kalibrierung 24 wird gegen die Datenbank durch jeden lokalen Datenbank­ manger 13, 13A, etc., vergleiche Fig. 1, unter Verwendung von Abfragen in der standardmäßig strukturierten Abfrage­ sprache durchgeführt. Die Verfahrensergebnisse der Kalibrierung werden für zukünftige Anwendung durch Anwend­ ungsprogramme, die Datenzugriff auf irgendeine der teil­ nehmenden Datenbankanlagen benötigen, behalten.
Die synthetische Datenbank
Eine synthetische Datenbank 30, vergleiche Fig. 3, wird aufgebaut, um die Koeffizienten der Aufwandsformel für die relationalen DBMSs 13, 13A, etc., vergleiche Fig. 1, zu kalibrieren. Wie oben beschrieben, wird diese synthetische Datenbank durch jedes der teilnehmenden DBMSs aufgebaut und abgefragt. Dieser Ablauf ist in seiner Natur iterativ und richtet der Reihe nach eine Reihe von Abfragen an jedes DBMS gegen die synthetisch hergestellte Datenbank, die zeitweise die normale Datenbank zu Kalibrierungszwecken ersetzt. Metrische Aufwandswerte (z. B. die abgelaufene Zeit) der Ab­ fragen werden beobachtet, um die Koeffizienten herzuleiten.
Die synthetische Datenbank wird geschaffen, indem es einer ganzen Zahl "n", Rn erlaubt wird, eine Relation von sieben Spalten mit 2n Tupels zu sein. Die sieben Spalten haben die folgenden Attribute:
C₁: eine ganze Zahl [0,n], indiziert und gruppiert;
C₂: eine ganze Zahl [0,2n-1], indiziert, defacto gruppiert aber nicht für die DBMS als solche spezifiziert;
C₃: eine ganze Zahl [0,n], indiziert ungruppiert;
C₄: eine ganze Zahl [0,n], kein Index;
C₅: eine ganze Zahl [0,2n-1], indiziert ungruppiert;
C₆: eine ganze Zahl [0,2n-1], kein Index; und
C₇: eine lange Buchstabenkette, um der Größe der Tupelan­ forderung zu entsprechen.
Der Wert des siebten Attributs ist ein Ausfüllfeld und kann auf irgend einen Wert gesetzt werden und wird deshalb der Einfachheit halber beim Rest der Beschreibung ausgelassen.
Der Multispaltenschlüssel der Relation ist (C₁, C₂). Diese Relation ist auf diesem Schlüssel in ansteigender Rei­ henfolge indiziert, wobei C₁ der Hauptschlüssel und C₂ der untergeordnete Schlüssel ist. Dieser Index ist derart gruppiert, daß die Werte des Hauptschlüssels gruppiert sind. Die Werte des untergeordneten Schlüssels (d. h. C₂) sind ebenfalls gruppiert. Tatsächlich sind die Werte in C₂ einmalig und haben 2n Werte in dem Wertebereich [0,2n-1] und deshalb können diese Werte ebenfalls in ansteigender Reihenfolge sein. Deshalb kann die Spalte C₂ als eine Folge­ nummer für die Reihen angesehen werden. Dieser C₂-Wert wird als Zeilenindex bezeichnet. Der Bedarf an dem Multispalten­ schlüssel und Index ist derart, daß die Tupels auf der Plat­ tenseite basierend auf C₂ angeordnet werden und daß das System darüber informiert wird, daß C₁ einen gruppierten Index hat (siehe auch die weiter unten geschilderte Fall­ studie).
Anwendung der synthetischen Datenbank
Wiederum bezugnehmend auf Fig. 3 (nachdem eine Datenbank entsprechend der obigen Beschreibung erzeugt wurde), wird die Datenbank nachfolgend in jedem der teilnehmenden DBMSs 13, 13A, etc. in Fig. 1, Bezugszeichen 32, als ein vorüber­ gehender Ersatz der regulären Datenbanken 14 aufgestellt.
Eine Testfolge von Abfragen 33 wird gegen die synthetische Datenbank in jedem DBMS 13, 13A, etc. in Fig. 1 durchge­ führt. Die erhaltenen Verhaltensdaten (z. B. abgelaufene Zeit) 34 werden in einem systemweiten Katalog 36 gespeich­ ert. Bei dem bevorzugten Ausführungsbeispiel ist die Kali­ brierung derart eingestellt, daß meistens einzelne Tabellen­ abfragen verwendet werden. Dies erfolgt nicht nur, weil die Verbindungsabfragen zeitaufwendig sind und deshalb zu lange dauern, um das System zu kalibrieren, sondern auch weil der Aufwand der meisten Verbindungsabfragen durch Verwendung des Aufwandes der Einzeltabellenabfragen abgeschätzt werden kann.
Es gibt 16 Relationen, die bei diesen Kalibrierungen benutzt werden (siehe die Fallstudie). Jeder Typ der Relation wird mit zwei Größen von Tupels dargestellt und die kleinere Tup­ lebeziehung wird vervielfältigt. Diese Vervielfältigung wird benötigt, da die Verbindungsabfragen zwei identische Rela­ tionen benötigen. Die tatsächlichen Abfragen, die in der Ka­ librierung benutzt werden, sind in Fig. 4 gegeben, wobei Rn eine Tabelle der Kardinalswerte 2n ist und c eine Konstante, die die Selektivität festlegt, ist. Für jeden Typ der Ab­ frage gegenüber Rn wird ein Satz Abfragen mit der Selekti­ vität 2-i (wobei i = 1, 2, . . ., n) aufgebaut und betrachtet.
Für jede Abfrage 40, vergleiche Fig. 5 Bezugszeichen 42, wird die abgelaufene Zeit in dem DBMS aufgezeichnet. Die abgelaufene Zeit wird durch Abzug der Startzeitmarke (wann die Abfrage empfangen wurde) von der Endzeitmarke (wann die Ergebnisse abgeschickt wurden) berechnet. In allen DBMSs werden die Abfragen aufgestellt, nachdem alle Puffer ent­ leert wurden, um eine Verzerrung aufgrund der Pufferung aus­ zuschließen. Jede Abfrage wird dreißigmal ausgegeben und die durchschnittliche Ablaufzeit wird berechnet. Der relative Fehler zwischen den tatsächlichen Daten und den - Durch­ schnittswerten liegt innerhalb von 5% bei einem Vertrauens­ koeffizienten von 95%. Folglich ist die Wiederholbarkeit der Beobachtung gesichert. Aus diesen Daten in 42 können die Koeffizienten für die Aufwandsformeln hergeleitet werden. Eine Anpassung nach dem Algorithmus des kleinsten quadrat­ ischen Fehlers wird angewendet, um irgendwelche Fehler zu minimieren und die Koeffizienten zu bestimmen (vgl. Schritt 44).
Die resultierenden Aufwandsdaten 34 aus Fig. 3 werden dann zu dem Systemkatalog als ein Teil des Aufwandsmodells hin­ zugefügt. Das Aufwandsmodell schließt Datenzugriffsaufwand­ informationen über die Übertragungszeit zwischen den Daten­ bankanlagen über ein Übertragungsnetzwerk ebenso ein wie Aufwandsdaten, die die Operationen der CPUs und der Ein­ gabe/Ausgabestrukturen der Datenbankanlagen betreffen. Das Aufwandsmodell ist so strukturiert, daß entsprechend der logischen Ausführung der Datenbankanfragen und der Bestim­ mung des Aufwands einer gegebenen Abfrage basierend auf logischen Charakteristika der DBMS, an die eine Abfrage gerichtet ist, Relationen zwischen den gespeicherten Daten in-der relationalen Datenbank und der Struktur der Abfrage abgefragt werden. Der Aufwand einer umfangreichen Abfrage wird durch einen Satz einfacher Abfragen bestimmt. Alle nachfolgenden Multidatenbankanfragen können sich nun auf die Aufwandsinformationen des netzwerkweitem Systemkataloges, die durch den Kalibrierungsprozeß hergeleitet wurden, um optimierte Abfragen und akzeptable, wenn nicht excellente, Leistung zu sichern, verlassen.
Eine Ausführung von Multidatenbankabfragen wird durch Definition eines Raumes für Ausführungen einer Datenbank­ abfrage, die z. B. eine Fernverbindung über die einbezogenen Datenbank-Managementsysteme einschließt, ausgeführt. Eine Abfragezugriffsstrategie, die eine Relation, die ein Tupel variabler Größe einschließt, und eine Anzahl von Selektions- und Projektionssätzen einbezieht, wird aufgebaut. Ein log­ isches Aufwandsmodell, wie es als nächstes beschrieben wird, wird benutzt, um den Aufwand der Strategie als eine lineare Funktion der Größe der Tupel und als lineare Funktionen der Selektions- und Projektionssätzen abzuschätzen.
Das logische Aufwandsmodell
Innerhalb der HDBMS Umgebung werden DBMSs typischerweise als übereinstimmend bezeichnet, wenn sie in Entwurf und Struktur vergleichbar sind und eine mehr oder weniger standardmäßige Abfragefunktionalität haben, d. h. eine standardmäßige strukturierte Abfragesprache (SQL) benutzen; und bekannte Aufwandsmodellmaßstäbe wie, z. B. Zugriffstatistiken, ver­ wenden. Die Brauchbarkeit der synthetischen Datenbank und des entsprechenden Kalibrationsvorganges wird durch die Existenz eines Aufwandsmodelles, das auf das gesamte Netz­ werk von übereinstimmenden verteilten Datenbank-Management­ systemen und nicht nur auf eine spezielle DBMS angewandt wird, gewichtet. Das Systemsubjekt dieser Erfindung benutzt ein neuartiges logisches Aufwandsmodell derart, daß die Ab­ schätzung einer gegebenen Abfrage sich auf logische Charak­ teristika des Abfrageverhaltens und nicht auf physikalische Aspekte der Abfrageeinrichtung stützt.
Das logische Aufwandsmodell sieht den Aufwand auf der Grund­ lage der logischen Ausführung der Abfrage. Es gibt zwei Aus­ wirkungen. Erstens wird der Aufwand einer gegebenen Abfrage basierend auf logischen Charakteristika der DBMS, den Rela­ tionen und der Abfrage selbst abgeschätzt. Zweitens wird der Aufwand komplexer Abfragen (z. B. verschachtelte Schleifen­ verbindungen) durch Anwendung einfacher Abfragen (z. B. Ein­ zeltabellenabfragen), wie vorhergehend in der synthetischen Datenbankstruktur beschrieben, abgeschätzt.
Dieses Aufwandsmodell konzentriert sich darauf, den Aufwand an Auswahl- und Verbindungsoperationen (siehe Fallstudie) abzuschätzen. Formal wird bei zwei gegebenen Relationen r₁ und r₂ mit N₁ und N₂ Tupels der Aufwand der folgenden zwei Operationen abgeschätzt:
  • - eine Auswahloperation auf r₁ mit der Selektivität S; und
  • - eine Verbindungsoperation auf r₁ und r₂ mit der Se­ lektivität J.
Diese Operationen stützen sich auf die folgenden Annahmen:
  • - Die Größe der Tupels wird als fest angenommen.
  • - Es gibt genau eine Auswahl/Verbindungsbedingung bei der Operation.
  • - Das gesamte Tupel wird auf die Antwort projiziert.
  • - Alle Attribute sind ganze Zahlen.
Folglich kann die sich ergebende Aufwandsformel als eine Summe der folgenden drei unabhängigen Komponenten angesehen werden:
Komponente₀: Initialisierungsaufwand
Komponente₁: Aufwand zum Finden der entsprechen­ den Tupels
Komponente₂: Aufwand, um die ausgewählten Tupels zu verarbeiten.
Komponente₀ ist der Aufwand zur Verarbeitung der Abfrage und zum Beginn der Suche. Dies ist die Komponente, die abhängig von dem DBMS ist, aber unabhängig von der Relation oder der Abfrage. Im Fall einer Folgeabtastung besteht Komponente₁ aus einer sperrenden Anforderung, der "get-next" Operation, aus amortisierten Eingabe/Ausgabeaufwendungen und aus all den anderen Anforderungen, die bei er Suche pro Tupel auf­ tauchen. Die feste Größe der Tupel sichert, daß die Anzahl der Seiten, auf die zugegriffen wird, direkt proportional der Anzahl der Tupels ist. Folglich ist der Aufwand pro Tupel eine Konstante.
In allen Fällen einer Indexabtastung ist Komponente₁ der anfängliche Indexnachschlageaufwand. In allen Fällen einer Indexabtastung wird angenommen, daß Komponente₁ unabhängig von der Relation ist. Dies ist nicht wahr, wenn die Zahl der Ebenen in dem Indexbaum von der Größe der Relation abhängig ist. Aber es ist aufgrund der vielen Verzweigungen eines typischen B-Baumes oder jedes anderen Indizierungsmechanis­ mus nicht wahrscheinlich, daß sich diese Zahl bedeutend unterscheidet.
Komponente₂ ist der Aufwand zur Verarbeitung jedes der aus­ gewählten Tupels. Dieser Komponentenaufwand ist aufgrund der Selektions- und Projektionsannahmen, die oben gemacht wur­ den, wahrscheinlich ebenfalls eine Konstante.
Die Verbindungsformeln sind Ableitungen aus den verschach­ telten Schleifen- und geordneten Mischabläufen. Sie sind aus Sektionsaufwandsformeln mit bestimmten Einstellungen, um Operationen (z. B. Sortieren und Mischen) und bestimmten Pro­ blemen, die bei Verbindungsoperationen auftreten (z. B. Puf­ ferungseffekt) , zusammengesetzt. Zum Beispiel wird der Auf­ wand zum Zugriff auf eine Relation in der innersten Schleife auf dieselbe Art und Weise modelliert wie der Zugriff auf eine Relation in der äußersten Schleife. Dies ist nicht der Fall, wenn die innersten Relationen gepuffert sind, um die Eingabe/Ausgabe zu verhindern. Wenn eine Folgeabtastung in der innersten Schleife der Verbindung benutzt wird, kann der Eingabe/Ausgabeaufwand aufgrund der Pufferung nur einmal (für kleine Tabellen) auftreten, während das Nachschlagen in der Tabelle für jeden Tupel in der äußersten Schleife durchgeführt wird. Um dies handzuhaben, wird die Komponente₁ in zwei Teile in den Formeln für Folgeabtastung aufgeteilt. Diese zwei Teile stellen den Eingabe/Ausgabe- und den CPU-Aufwand der "get-next"-Operation dar.
Damit das logische Aufwandsmodell effektiv ist, muß beachtet werden, daß bei Veränderung der Größe der Tupels, die Kon­ stanten beeinflußt werden. Besonders der CPU-Aufwand zur Verarbeitung jedes Tupels der Relation zusammen mit dem amortisierten Eingabe/Ausgabe-Aufwand beim Holen jedes Tupels der Relation wird beeinflußt werden und wahrschein­ lich linear mit der Größe der Tupel ansteigen, unabhängig davon, ob das Tupel ausgewählt ist oder nicht. Alle anderen oben beschriebenen Konstanten sind Komponentenaufwendungen für ausgewählte Tupels und es ist deshalb nicht wahrschein­ lich, daß die beeinflußt werden. Trotzdem werden diese Kon­ stanten durch die Anzahl der Selektions- und Projektions­ sätze beeinflußt.
Die Neuartigkeit dieses Aspektes der Erfindung ist die Neu­ definition von typischen DBMS Aufwandsmodellkonstanten als Funktionen mit den folgenden Überlegungen:
  • - der Aufwand für das anfängliche Nachschlagen des Indizes ist eine lineare Funktion der Größe der Tupels in der Relation; und
  • - der Aufwand zur Verarbeitung eines Ergebnistupels bei Folgeabtastungen und die Verarbeitung jedes Tupels, das durch einen Index ausgewählt wurde, einschließlich des Eingabe/Ausgabeaufwands, um das Tupel zu holen, wenn notwendig, sind lineare Funk­ tionen der Anzahl der Auswahls- und Projektions­ sätze.
Nachdem diese Werte nicht länger konstant sind, werden sie als Koeffizienten bezeichnet. Die jeweiligen Koeffizienten erfassen die Verarbeitungs-, Indizierungs- und Seitenadres­ sierungs-Charakteristika jedes Datentyps (siehe Fallstudie).
Die fundamentale Grundlage für dieses logische Aufwandsmo­ dell ist es, daß der Aufwand aufgrund der Berechnung der Ko­ sten auf einer "pro-Tupel-Grundlage" in der logischen Verar­ beitung der Abfrage berechnet werden kann. Die Koeffizienten sind alle zusammengesetzte Aufwendungen, die die CPU-, Eingabe/Ausgabe- und jeden anderen Faktor, der interessant werden könnte, wie z. B. der Aufwand für eine Verbindung, einschließt. In diesem Sinn sind die Aufwandsformeln logisch gegenüber den Aufwandsformeln, die in typischen, kommerziel­ len DBMSs verwendet werden, die die Aufwendungen basierend auf physikalischen Parametern unter der Verwendung von Konstanten abschätzen. Außerdem sind die obigen Formeln typischen, kommerziellen Formeln trotzdem ähnlich mit drei bedeutenden Unterschieden:
  • - Bei den bekannten Formeln wird angenommen, daß die Koeffizienten Konstanten sind. In diesem Fall werden sie als Funktionen betrachtet.
  • - Der Wert, der diesen Koeffizienten zugeordnet wird, ist eine zusammengesetzte Aufwendung von CPU- und Eingabe/Ausgabe-Aufwendungen, wobei diese Aufwen­ dungen in den meisten kommerziellen DBMSs getrennt berechnet werden.
  • - Der Wert, der den Koeffizienten zugeordnet wird, kann ebenso andere systemabhängige Faktoren, wie z. B. Hardwaregeschwindigkeits-, Betriebssystem- und DBMS-Konfigurationsfaktoren, widerspiegeln.
Für Fachleute sollte es offensichtlich sein, daß die be­ schriebene Erfindung in ihrem bevorzugten Ausführungsbei­ spiel sofort erweitert werden kann, um eine Vielzahl von Überlegungen, die den Kalibrierungsvorgang verbessern kön­ nen, einzuschließen. Diese Überlegungen schließen ein, sind aber nicht beschränkt auf:
  • - Vergrößerung des Effektes der Pufferung von ungrup­ pierten Indizes;
  • - Extrapolierung für nicht-standardmäßige DBMSs;
  • - Ableitung von Defakto-Gruppierungen von den Daten, um die Aufwendung für weniger gruppierte Daten zu interpolieren; und
  • - Erfassen, wann eine Indexabtastung zu einer Folge­ abtastung für einen ungruppierten Index innerhalb des Zusammenhangs des Zugriffsverfahrens, das in verschachtelten Schleifen benutzt wird, umgeschalt­ et wird.
Eine Fallstudie eines Ausführungsbeispieles der Erfindung
Dies ist eine Fallstudie, die als Testunterlage verwendet wird, um die Machbarkeit der Erfindung zu beweisen. In die­ ser Fallstudie wird angenommen, daß alle teilnehmenden DBMSs in einem HDBMS relational sind. Der Einfachheit halber wird angenommen, daß alle Daten schematisch und darstellungsmäßig kompatibel sind; d. h., es gibt kein Integrationsproblem. In diesem Sinne schafft das HDBMS eine Stelle zur Abfrage aller teilnehmenden DBMSs und schafft eine Datenbanktransparenz (d. h. der Anwender braucht nicht zu wissen, wo Daten abge­ legt sind und wie die Abfragen aufgespaltet werden). Darum leitet das HDBMS die Verantwortung zum Aufspalten und Aus­ führen der Abfrage an die teilnehmenden DBMSs weiter. Dies ist die Motivation für einen Abfrageoptimierer für HDBMSs. Ohne Einschränkung der Allgemeingültigkeit sei angenommen, daß die Abfrage eine verbundene Verhältnisabfrage bzw. eine verbundene relationale Abfrage ist.
Ein kurzer Überblick über den bekannten Optimierer
Die Optimierung von Verhältnisabfragen kann abstrakt wie folgt beschrieben werden:
Bei einer gegebenen Abfrage Q, einem Ausführungsraum E und einer Aufwandsfunktion C, die über 1 definiert ist, finde eine Ausführung e in EQ, die einen minimalen Auf­ wand darstellt, wobei ein Subet von E ist, das Q be­ rechnet, wobei Q ausgedrückt wird als
Jede Lösung zu dem obigen Problem kann durch Auswahl:
  • 1. eines Ausführungsmodells und damit eines Aus­ führungsraumes;
  • 2. eines Aufwandsmodells; und
  • 3. einer Suchstrategie
charakterisiert werden.
Das Ausführungsmodell kodiert die Entscheidungen, die das Anweisen der Verbindungen, der Verbindungsverfahren, der Zugriffsverfahren, der Materialisierungsstrategie, etc. be­ treffen. Das Aufwandsmodell berechnet den Ausführungsauf­ wand. Die Suchstrategie wird angewendet, um den Suchraum aufzuzählen, während der minimale Aufwand für die Ausführun­ gen ausfindig gemacht wird. Diese drei Auswahlmöglichkeiten sind nicht unabhängig; die Wahl eines kann die anderen beeinflussen. Wenn zum Beispiel ein lineares Aufwandsmodell angewendet wird, dann kann die Suchstrategie einen quadrat­ ischen Raum aufzählen bzw. bezeichnen; auf der anderen Seite wird ein exponentieller Raum aufgezählt bzw. bezeichnet, wenn ein allgemeines Aufwandsmodell benutzt wird, wie im Fall von kommerziellen Datenbank-Managementsystemen. Diese Fallstudie hängt weder von dem Ausführungsraum (außer für die unten erwähnte Beugung) noch von der verwendeten Suchstrategie ab. Es ist trotzdem davon abhängig, wie das Aufwandsmodell in dem Optimierungsalgorithmus angewendet wird. Darum werden die folgenden Annahmen getroffen:
  • - Der Ausführungsraum kann abstrakt als ein Satz aller Verbindungsreihenfolgen (d. h. aller Permutationen einer Relation) modelliert werden, in denen jede Relation mit Zugriffs/Verbindungsverfahren und anderen solchen Beu­ gungen der Ausführung versehen ist. Diese und andere Beugungen des bekannten Ausführungsraumes werden unten formalisiert.
  • - Die vollständige Suche wird als die Suchstrategie über dem Ausführungsraum angenommen, die in vielen kommerziellen Optimierern weit verbreitet angewendet wurde. Dieser Raum der Ausführungen wird durch Aufzählen der Permutationen und durch Wahl einer optimalen Ammotation der Verbindungs- und Zugriffsverfahren für jede Permutation basierend auf dem Aufwandsmodell durchsucht. Die Ausführung mit dem minimalen Aufwand ist die Permutation mit dem geringsten Aufwand.
Das traditionelle Aufwandsmodell benutzt die Beschreibung der Relationen, z. B. der Kardinalität und der Selektivität, um den Aufwand zu berechnen. Es ist zu beachten, daß die Operanden für diese Operationen, wie z. B. Auswahl und Ver­ bindung, Zwischenrelationen sein können, deren Beschreibung berechnet werden muß. Ein solcher Beschreiber kodiert alle Informationen über die Relation, die für die Aufwands­ funktionen benötigt werden.
Der Satz aller Beschreiber der Relationen sei D und I sei der Satz von Aufwandswerten bezeichnet durch ganze Zahlen. Aufzwei Funktionen für jede Operation, σ wie z. B. Ver­ binden, Aussuchen, Projizieren etc., werde besonders ge­ achtet. Diese Funktion für eine binäre Operation σ sind:
COSTσ : D X D → I and DESCσ : D X D → D
Die COSTσ-Funktion berechnet den Aufwand zum Anwenden der binären Operation σ auf zwei Relationen und DESCσ ergibt einen Beschreiber für die sich ergebende Relation. Diese Funktionen für die monadischen Operatoren sind ähnlich de­ finiert. Diese Fallstudie bezieht sich hauptsächlich auf die COST-Funktion und verwendet die bekannte Definition für die DESC-Funktion. Diese enthält Informationen, wie z. B. die Kardinalität der Relation, die Anzahl der verschiedenen Wer­ te für jede Spalte, die Anzahl der Seiten, Indexinformatio­ nen, etc.
Ausführungsmodell für HDBMSs
Ein Ausführungsplan für eine Abfrage kann als ein Plan für ein zentralisiertes System angesehen werden, in dem einige der Verbindungen sich über die DBMSs erstrecken. Diese Verbindungen kann man als abwechselnde Verbindungsverfahren ansehen. Hierin enthalten ist die Formaldefinition eines Planes für ein bekanntes DBMS, das durch Zulassung der neuen Verbindungsmethoden erweitert wurde.
Ein Plan für eine Anfrage kennzeichnet in den meisten kom­ merziellen DBMSs die Reihenfolge der Verbindungen, das Ver­ bindungsverfahren, das für jede Verbindung angewendet wird, und den Zugriffsplan für jedes Argument der Verbindung. Zu­ sätzlich werden die gewöhnlichen Informationen, die benötigt werden, um die durchkommenden Seiteninformationen (ebenfalls bekannt als die Verbindungsinformationen) zu kennzeichnen, vorgegeben.
Formal wird ein Plan für eine gegebene Verbindungsabfrage durch Anwendung einer normalen Form, genannt Chomsky Normal Form oder CNF, ausgedrückt. Ein CNF-Programm ist ein Daten­ aufzeichnungsprogramm, in dem alle Vorschriften höchstens zwei Prädikate im Rumpf der Vorschrift haben. Es wird eine Verbindungsabfrage auf k Relationen angenommen. Dies kann als eine Vorschrift im Datenaufzeichnungsprogramm mit k Prädikaten im Rumpf angesehen werden. Ein entsprechendes CNF-Programm kann durch Verwendung von k-1 Vorschriften, von denen jede genau zwei Prädikate im Rumpf hat, definiert werden. Dies ist durch das folgende Beispiel erläutert.
p(X,Y) ← r₁(X,X₃), r₂(X₁,X₂), r₃(X₂, X₃), r₄(X₃,Y)
hat das folgende äquivalente CNF-Programm:
p(X,Y) ← r₁₃(X,X₃), r₄(X₃,Y)
r₁₃(X,X₃) ← r₁₂(X,X₂), r₃(X₂,X₃)
r₁₂(X,X₂) ← r₁(X,X₁), r₂(X₁,X₂)
In dem obigen CNF Programm ist die zusätzliche Beschränkung gegeben, daß die Ausführung von links nach rechts im Rumpf der Vorschrift erfolgt. Ein Ergebnis ist es, daß die Sei­ teninformationen, die durch die Bindung durchgehen, von r₁₃ bis r₄ in der ersten Vorschrift sind. Ferner ist zu beach­ ten, daß das CNF Programm die Reihenfolge der Verbindungen der Relationen komplett kennzeichnet. Deshalb werden r₁ und r₂ vor der Verbindung mit r₃ verbunden. Es ist zu beachten, daß das obige CNF Programm alle Typen von weit verzweigten Verbindungsbäumen darstellen kann; im Gegensatz dazu erlau­ ben die meisten kommerziellen DBMSs nur linksseitig tiefe Verbindungsbäume.
Der Einfachheit halber wird in dieser Fallstudie für alle CNF Programme vorausgesetzt, linksseitig tief zu sein (d. h. nur das erste Prädikat im Rumpf kann ein hergeleitetes Prädikat sein), und folglich werden andere CNF-Programme von der Überlegung ausgelassen.
Für jede Verbindung in dem CNF Programm wird ein Verbin­ dungsverfahren zugeordnet; ein Verbindungsverfahren ist dem Rumpf jeder Vorschrift beigeordnet. Zwei Verbindungsmethoden werden angenommen: verschachtelte Schleife (nested loop = NL) und geordnete Mischung (ordered merge = OM), wie z. B. Mischsortierung oder Durcheinandermischung. Ferner wird je­ des Prädikat mit einer Anmerkung über ein Zugriffsverfahren versehen; d. h., höchstens zwei Zugangsverfahren pro Vor­ schrift (es ist zu beachten, daß in einigen Fällen, wie z. B. der äußeren Schleife (einer verschachtelten Schleifenver­ bindung), die von einer anderen Verbindung umgeleitet wird, die Vermerkung einer Zugriffsmethode keinen Sinn macht). Die folgenden vier Zugriffsverfahren werden in dieser Fallstudie berücksichtigt:
  • - Folgeabtastung (sequential scan = SS): Zugriff und Test aller Tupels in der Relation;
  • - ausschließliche Indexabtastung (index-only scan = IO): nur Zugriffs- und Testindex;
  • - gruppierte Indexabtastung (clustered index scan = CI): Zugriff und Test gruppierter Indizes, um die in Frage kommenden Tupels zu finden und auf die Datenseite zuzu­ greifen, um den Tupel zu erhalten; und
  • - ungruppierte Indexabtastung (unclustered index scan = UI): dasselbe wie bei CI, aber für ungruppierte Indizes.
Diese Liste der Verfahren spiegelt die Beobachtungen in vie­ len kommerziellen DBMSs wieder, wie z. B. die Unterscheidung zwischen lediglich der Zugriffsindexseite und dem Zugriff auf beides, die Index- und die Datenseiten. Ein Zugriff auf gruppierte und ungruppierte Indexseiten wird nicht unterschieden.
Obwohl alle Zugriffsverfahren mit allen Verbindungsverfahren angewendet werden können, machen einige Verbindungen keinen Sinn. Jedoch vermeidet der Optimierer diese Fälle durch Zuordnung eines sehr großen Aufwands. Es ist zu beachten, daß die Liste der Verbindungsverfahren und Zugriffsverfahren leicht erweitert werden kann und die Aufwandsformeln in ähnlicher Art und Weise spezifiziert werden können.
Wie bereits erwähnt, wird die Liste der Verbindungsverfahren durch ein neues Verfahren, genannt Fernverbindung, das eine Verbindung über zwei DBMSs ausführen kann, erweitert. Dies kann durch Übertragung der Daten direkt an das andere DBMS oder an das HDBMS, das sie dann dem anderen DBMS zuordnet, um die Verbindung zu berechnen, erreicht werden. Offen­ sichtlich gibt es eine Vielzahl von Variationen, um diese Fernverbindung zu erreichen. Der Einfachheit halber wird in dieser Fallstudie vorausgesetzt, daß einige solcher Fern­ verbindungen ausgewählt sind. Jeder solchen Fernverbindung wird eine Aufwandsfunktion zugeordnet und der Aufwand für die gesamte Ausführung wird in bekannter Art und Weise be­ rechnet. Wenn auch die spezifische Auswahl für die Fernver­ bindungen und das Aufwendungsmodell, das zur Abschätzung des Aufwandes der Fernverbindung benutzt wird, wichtig sind für einen HDBMS Optimierer, so wird dies im Zusammenhang mit dieser Fallstudie weggelassen.
Zusammenfassend gilt, daß der Optimierer einen großen Raum für Ausführungen sucht und den minimalen Aufwendungsausfüh­ rungsplan findet. Während Ausführungsraum und Suchstrategie größtenteils unverändert bleiben, ist nur das Aufwendungs­ modell für jede Kategorie von DBMSs relevant, um den Opti­ mierer für HDBMSs zu beschreiben. Im besonderen konzentriert sich diese Fallstudie auf das Aufwendungsmodell für Auswahl- und Verbindungsoperationen im Zusammenhang mit einem ein­ zelnen DBMS, das Verbindungen über DMBSs anwendet, die auf der Grundlage des Fernverbindungsaufwendungsmodelles berech­ net werden können. Die Aufwendungsmodelle für firmeneigene und übereinstimmende DBMS werden als nächstes erläutert.
Aufwendungsmodell für firmeneigene DBMSs
Das Aufwendungsmodell für eine Abfrage über viele firmen­ eigene DBMSs muß mit dem Ausführungsmodell, das in der DBMS selbst angewendet wird vergleichbar sein. Dies erfordert, daß das Aufwendungsmodell die internen Details des teil­ nehmenden DBMS kennt. Bei einem firmeneigenen DBMS ist dies möglich. Für diese Fallstudie wird das Aufwendungsmodell auf einer sehr hohen Ebene umrissen. Die Absicht ist es, die Anwendung von physikalischen Parametern, wie z. B. Vorab­ rufung, Pufferung, Seitengröße, Anzahl der Anweisungen, um eine Seite zu sperren und viele andere solcher ausführungs­ abhängigen Charakteristika, zu betrachten.
Typischerweise schätzt das Aufwendungsmodell die Aufwendun­ gen bezüglich der Zeit ab; im besonderen die minimale ver­ gangene Zeit, die auftreten kann. Diese abgeschätzte Zeit sagt normalerweise nicht irgendwelche "Gerät belegt" Bedin­ gungen voraus, die in der Realität die verstrichene Zeit er­ höhen würden. Diese Vorstellung von Zeit wird als Maßstab der Aufwendungen verwendet. Dies ist üblicherweise gerecht­ fertigt auf der Grundlage, daß die Minimierung dieser ver­ strichenen Zeit den Effekt hat, die gesamte Arbeit zu minimieren und damit den Datendurchlauf zu maximieren.
In HDBMSs kann die verstrichene Zeit durch Abschätzung von drei Komponenten abgeschätzt werden:
  • - die CPU Zeit, die in beiden, den teilnehmenden DBMSs und dem HDBMS aufgetreten ist;
  • - die Eingabe/Ausgabezeit, die sowohl in den teilnehmenden DBMSs als auch in dem HDBMS aufgetreten sind; und
  • - die Übertragungszeit zwischen dem HDBMS und den teil­ nehmenden DBMSs.
Bekannte zentralisierte DBMSs schließen nur die CPU- und Eingabe/Ausgabezeit in ihre Abschätzung ein. Diese Fall­ studie benutzt eine ähnliche Abschätzung für beide dieser Komponenten. Jedem der zugelassenen Verbindungsverfahren und der zugelassenen Zugriffsverfahren wird eine Aufwandsformel zugeordnet.
Die CPU Abschätzung schließt die benötigte Zeit ein, um die notwendige Verriegelung durchzuführen, um auf die Tupels entweder der Reihe nach oder durch Anwendung eines Indizes zuzugreifen, um die Tupels abzurufen, um die notwendigen Vergleiche anzustellen, um die notwendigen Projektionen durchzuführen, etc. Die Aufwendungsformeln basieren auf der Abschätzung der erwarteten Weglänge dieser Operationen und auf den spezifischen Parametern der Relationen, wie z. B. der Anzahl der Tupels, etc. Offensichtlich ändern sich diese Parameter stetig mit den Verbesserungen in der Hardware und der Software. Bei einem firmeneigenen System können diese Änderungen mit den neuen Versionen synchronisiert werden.
Die Eingabe/Ausgabezeit wird durch Verwendung der Geräte­ charakteristika, Seitengröße, Vorabruffähigkeiten und der CPU Weglänge, die benötigt wird, um die Eingabe/Ausgabe zu initiieren und durchzuführen, abgestimmt.
Die benötigte Zeit für die Durchführung der notwendige Über­ tragung, kann auf Grundlage der abgeschickten Datenmenge, der Paketgröße, des Übertragungsprotokolls, der benötigten CPU Weglänge, um die Übertragung zu indizieren und durchzu­ führen, etc. abgeschätzt werden. Es wird angenommen, daß die physikalischen Charakteristika des Übertragungsuntersystemes dem HDBMS bekannt sind und daß genaue Aufwandsmodelle durch Anwendung dieser Parameter entwickelt werden können.
Zusammenfassend gilt für diese Fallstudie, daß das Aufwands­ modell für eine firmeneigene DBMS ein Modell ist, das komplette Kenntnis der Interna des teilnehmenden DBMS hat.
Aufwandsmodell für übereinstimmende DBMSs
Ein übereinstimmendes DBMS ist ein relationales DBMS mit mehr oder weniger vorhandener standardmäßiger Abfrage­ funktionalität. Als erstes muß ein Aufwandsmodell entworfen werden, das den Aufwand für eine gegebene Abfrage derart abschätzt, daß das Modell auf den logischen Charakteristika der Abfrage basiert. Um dies zu tun, muß ein Aufwendungsmodell zur Abschätzung des Aufwandes eines gegebenen Plans für eine Abfrage umrissen werden. Dann muß der Vorgang, durch den die Konstanten des Aufwandsmodelles abgeschätzt werden, als auch die experimentelle Überprüfung dieses Vorganges beschrieben werden. Zuletzt wird eine dynamische Modulation dieser Konstanten aufgezeigt, um jegliche Diskrepanz zu meistern.
Logisches Aufwandsmodell
Das logische Aufwandsmodell sieht die Kosten bzw. den Aufwand auf der Basis der logischen Ausführung der Abfrage. Es gibt zwei Bedeutungen. Bei der ersten wird der Aufwand einer gegebenen Abfrage basierend auf den logischen Charakteristika des DBMS, auf den Relationen und auf der Abfrage abgeschätzt. Bei der zweiten wird der Aufwand von umfangreichen Abfragen (z. B. verschachtelte Schleifenverbindungen) durch Anwendung einfacher Abfragen (z. B. Einzeltabellenabfragen) abgeschätzt.
Aufwandsformeln
Um der Kürze willen konzentriert sich diese Fallstudie auf den Teil des Aufwandsmodelles, der den Aufwand für Auswahl und Verbindungsoperationen abschätzt. Formal sind zwei Re­ lationen r₁ und r₂ mit N₁ und N₂ Tupels gegeben und der Auf­ wand der folgenden zwei Operationen wird abgeschätzt:
  • - eine Auswahloperation auf r₁ mit einer Selektivität S₁; und
  • - eine Verbindungsoperation auf r₁ mit einer Selektivität J₁₂.
Bezugnehmend auf Fig. 6 sind die Formeln für diese zwei Ope­ rationen durch die folgenden Annahmen, die alle im Folgenden beschrieben werden, gegeben:
  • - die Größe der Tupel wird als fest angenommen
  • - es gibt genau eine Auswahl/Verbindungsbedingung auf einer Relation;
  • - das gesamte Tupel wird in die Antwort projiziert; und
  • - alle Attribute sind ganze Zahlen.
Die Auswahlaufwandsformeln können als eine Summe der folgen­ den drei unabhängigen Komponenten angesehen werden:
  • - COMP0: Initialisierungsaufwand
  • - COMP1: Aufwand, um die zutreffenden Tupels zu finden; und
  • - COMP2: Aufwand, um die ausgewählten Tupels zu verar­ beiten.
Die COMP0-Komponente ist der Aufwand der Verarbeitung der Abfrage und des Startens der Abtastung. Dies ist die Kompo­ nente, die abhängig von dem DBMS, aber unabhängig von der Relation oder der Abfrage, ist.
Im Fall einer Folgeabtastung besteht die COMP1-Komponente aus einer Sperrungsanforderung, der Ausführung der "get next"-Operation, einem amortisierten Eingabe/Ausgabeaufwand und den anderen Anforderungen, die pro Tupel der Abtastung auftreten. Es wird darauf hingewiesen, daß die feste Größe der Tupel sicherstellt, daß die Anzahl der Seiten, auf die zugegriffen wird, direkt proportional der Anzahl der Tupel ist. Deshalb ist der Aufwand pro Tupel konstant. In dem Fall einer Indexabtastung ist COMP1 der Aufwand, um den anfäng­ lichen Index nachzusehen. Es wird darauf hingewiesen, daß in allen drei Fällen von Indexabtastung angenommen wird, daß COMP1 unabhängig von der Relation ist. Dies ist offensicht­ lich nicht wahr, wenn die Anzahl der Ebenen im Indexbaum abhängig ist von der Größe der Relation. Aber es ist nicht wahrscheinlich, daß diese Anzahl große Unterschiede auf­ weist, aufgrund der hohen Verzweigungen eines typischen B-Baumes oder irgendeines anderen Indizierungsmechanismus.
Die COMP2-Komponente ist der Aufwand zur Verarbeitung jedes der ausgewählten Tupels. Dieser Komponentenaufwand ist wahr­ scheinlich ebenfalls konstant, aufgrund der früher gemachten Selektions- und Projektionsannahmen.
Bezugnehmend auf Fig. 6 sind die Verbindungsformeln eine Ableitung aus den verschachtelten Schleifen- und geordneten Mischungsalgorithmen. Es wird darauf hingewiesen, daß sie aus Selektionsaufwandsformeln mit bestimmten Einstellungen zum Handhaben von Operationen (z. B. Sortieren und Vermi­ schen) und von Problemen (z. B. Pufferungseffekt), die besonders bei Verbindungsoperationen auftreten, bestehen.
Zum Beispiel ist der Aufwand zum Zugreifen auf eine Relation in der innersten Schleife in derselben Art und Weise model­ liert, wie der Aufwand zum Zugreifen auf eine Relation in der äußersten Schleife. Dies ist nicht der Fall, wenn die innersten Relationen gepuffert sind, um die Eingabe/Ausgabe zu vermeiden. Es stellte sich heraus, daß diese Einheit­ lichkeit recht akzeptabel für Indexabtastungen ist. Wird eine Folgeabtastung in der inneren Schleife der Verbindung benutzt, dann kann der Eingabe/Ausgabeaufwand aufgrund der Pufferung nur einmal (für kleine Tabellen) auftreten, wohin­ gegen das Nachschauen in der Tabelle einmal für jedes Tupel in der äußeren Schleife gemacht wird. Um dies handzuhaben, wird COMP1 in den Formeln für Folgeabtastungen in zwei Teile aufgeteilt. Diese zwei Teile stellen die Eingabe/Ausgabe- und CPU Aufwendungen einer "get next" Operation dar.
Nun werden die oben gemachten Annahmen erweitert. Wird die Größe des Tupels variiert, dann werden die Konstanten beein­ flußt. Insbesondere wird nur erwartet, daß die Konstante CS1SS (=CS1SS io + CS1SS cpu) beeinflußt wird und daß es wahr­ scheinlich ist, daß sie linear mit der Größe des Tupels wächst. Alle anderen Konstanten sind Komponentenaufwände für ausgewählte Tupels und folglich ist es nicht wahrscheinlich, daß diese beeinflußt werden. Diese Konstanten (d. h. CS2XX′s) werden aber durch die Anzahl der Selektions- und Projek­ tionseintragungen beeinflußt. Um diese zu berücksichtigen, werden die obigen Konstanten zu Funktionen mit den folgenden Definitionen umdefiniert:
  • - CS1SS ist eine lineare Funktion der Größe der Tupel in der Relation.
  • - CS2XX′s sind lineare Funktionen der Anzahl der Selek­ tions- und Projektionseintragungen.
Nachdem diese keine Konstante mehr sind, werden sie als Koeffizienten bezeichnet.
Unter der Annahme, daß die Überprüfung durch den ersten Fehler beendet wird, ist die erwartete Anzahl der überprüf­ ten Auswahlbedingungen auf 1,5 begrenzt, unabhängig von der Anzahl der Auswahlbedingungen. In Fachkreisen wurde diese diskutiert und anerkannt. Weiter zeigen Experimente, daß der Aufwand zur Überprüfung der Auswahlbedingungen und der Projektionsattribute vernachlässigbar ist gegenüber anderen Aufwänden, z. B. Eingabe/Ausgabe.
Als nächstes wird die Annahme, daß alle Attribute ganze Zah­ len sind, durch die Forderung eines Satzes von Aufwands­ formeln für jeden Datentyp in dem DBMS erweitert. Die ent­ sprechenden Koeffizienten erfassen die Verarbeitung, die Indizierung und die Seitenaddressierungs-Charakteristika dieses Datentypes. Nachdem dies orthogonal zum Rest der Diskussion ist, bezieht sich der Rest der Fallstudie nur auf einen Datentyp.
Die fundamentale Grundlage für das obige Aufwandsmodell ist es, daß der Aufwand basierend auf einer sorgfältigen Bear­ beitung der Aufwände auf einer pro-Tupel-Grundlage in der logischen Verarbeitung der Abfrage berechnet werden kann. Tatsächlich sind die Koeffizienten CS0XX, CS1XX und CS2XX alle zusammengesetzte Aufwendungen einschließlich des CPU-, des Eingabe/Ausgabe- und jedes anderen Faktors, der von Interesse sein könnte, wie z. B. der Aufwand der Verbindung. In diesem Sinne sind die Aufwandsformeln logisch gegenüber den Aufwandsformeln, die in den meisten kommerziellen DBMSs benutzt werden, die basierend auf physikalischen Parametern abschätzen. Die obigen Formeln sind strukturell sehr ähnlich zu denen, die im Stand der Technik benutzt werden. Jedoch gibt es drei Hauptunterschiede:
  • 1. Bei den bekannten Formeln nach dem Stand der Tech­ nik wird angenommen, daß die Koeffizienten Konstanten sind. Hier werden sie als Funktionen betrachtet.
  • 2. Der Wert, der mit diesen Koeffizienten verbunden wird, ist ein zusammengesetzter Aufwand für die CPU-, die Eingabe/Ausgabe- und die anderen Über­ legungen, wohingegen beim Stand der Technik diese Kosten bei der Berechnung typischerweise getrennt werden.
  • 3. Der Wert, der diesen Koeffizienten zugeordnet wird, spiegelt ebenfalls andere systemabhängige Faktoren, wie z. B. Hardwaregeschwindigkeit, Betriebssystem und DBMS Konfiguration, wieder.
Die obige Grundlage zur Berechnung des Aufwandes ist offen­ sichtlich eine Annäherung an die weiter verbreiteten For­ meln, die durch kommerzielle DBMSs benutzt werden. Aber die wichtige Frage ist, ob diese Annäherungen signifikant genug sind, um die Entscheidung des Optimierers zu beeinflussen. Diese Fallstudie zeigt, daß das obige Aufwandsmodell das Verhalten der Ausführung ausreichend modellieren wird.
Kalibrierende Datenbank und Vorgang
Das Ziel der kalibrierenden Datenbank ist es, sie zu be­ nutzen, um die Koeffizienten in den Aufwandsformeln für jedes gegebene relationale DBMS zu kalibrieren. Der Ansatz ist es, eine synthetische Datenbank aufzubauen und sie abzufragen. Metrische Werte des Aufwandes (z. B. verstrichene Zeit) für die Abfragen werden beobachtet, um die Koef­ fizienten abzuleiten. Es wird darauf hingewiesen, daß in dem System keine Haken angenommen werden und das System folglich nicht mit Instrumenten versehen werden kann, um die Kon­ stanten (z. B. Anzahl der durchgeführten Eingaben/Ausgaben) des bekannten Aufwandsmodelles zu messen. Ferner sind der Aufbau der Datenbank, die die Abfrage stellt, und die Be­ obachtungen als eine Anwender nach "black box"-DBMS durchzu­ führen. Dies wirft die folgenden zwei Hauptvorhersagungs­ probleme auf:
  • 1. Das Problem vorauszusagen, wie das System eine ge­ gebene Abfrage ausführen wird (z. B. Anwendung von Index- oder Folgeabtastung, Anwendung von ver­ schachtelten Schleifen oder Mischsortierung).
  • 2. Das Problem des Ausschließens des Effektes der Da­ tenplazierung, Pagination und anderer Speicheraus­ führungsfaktoren, die die Beobachtungen potentiell stören können und folglich zu einem unvorhersehba­ ren Verhalten führen.
Um die Koeffizienten aus den Aufwandsformeln abzuleiten, ist es zwingend, daß die Abfrage und die Datenbank derart auf­ gebaut sind, daß die resultierende Ausführung voraussehbar ist; d. h. der Optimierer wird die vorausgesagten Zugriffs- und Verbindungsverfahren wählen. Auch wenn die Ausführung vorhersehbar ist, sollte sie frei von den oben genannten Störungen sein oder die Feststellung des Grundes für den beobachteten Effekt ist ansonsten nicht möglich. Wenn z. B. alle Tupels mit einem bestimmten Wert für ein Attribut zufällig auf einer einzelnen Seite sind, dann kann der beob­ achtete Wert irreführend sein.
Der nächste Schritt ist es dann, eine Datenbank und einen Satz von Abfragen zu schaffen, die frei von den obigen beiden Problemen sind und zeigen, daß die Koeffizienten der Aufwandsformeln abgeleitet werden können.
Kalibrierende Datenbank
Für jede Ganzzahl n sei Rn eine Relation von sieben Spalten, die 2n Tupels enthalten. Die sieben Attribute haben die fol­ genden Charakteristika:
C1 eine ganze Zahl [0,n], indiziert, gruppiert
C2 eine ganze Zahl [0,2n-1], indiziert, defacto gruppiert aber nicht als solche im DBMS spezifiziert
C3 eine ganze Zahl [0,n], indiziert, ungruppiert
C4 eine ganze Zahl [0,n], kein Index
C5 eine ganze Zahl [0,2n-1], indiziert, ungruppiert
C6 eine ganze Zahl [0,2n-1], kein Index
C7 eine lange Buchstabenkette, um die Größe der Tupelan­ forderungen zu erfüllen
Die Werte in diesen Attributen sind in Fig. 8 gegeben. Selbst wenn die Relation ein Satz ist und als solcher unge­ ordnet ist, kann man sie dem Konzept nach als Matrix be­ trachten. Folglich ist das i-te Tupel in Rn definiert, ver­ gleiche Fig. 8.
Der Wert für das siebte Attribut (C₇) ist ein Ausfüllfeld und kann auf irgendeinen Wert gesetzt werden und wird des­ halb aus Gründen der Annehmlichkeit im Rest der Diskussion ausgelassen. In Fig. 7 ist die Relation R₄ tabularisch dar­ gestellt.
Der Multispaltenschlüssel für die Relation ist (C₁, C₂). Diese Relation ist auf diesem Schlüssel in ansteigender Rei­ henfolge indiziert, wobei C₁ der Hauptschlüssel und C₂ der untergeordnete Schlüssel ist. Dieser Index ist gruppiert in dem Sinne, daß die Werte des Hauptschlüssels (d. h. C₁) grup­ piert sind. Im allgemeinen müssen die Werte von C₂ nicht gruppiert sein. Wie es aus dem Aufbau der Relation klar her­ vorgeht, sind die Werte des untergeordneten Schlüssels (d. h. C₂) ebenfalls gruppiert. Tatsächlich sind die Werte in C₂ einzigartig und haben 2n Werte in dem Wertebereich [0,2n-1] und deshalb können diese Werte ebenfalls in aufsteigender Reihenfolge sein. Man kann also sinngemäß diese Spalte, C₂, als eine Folgezahl für die Reihen ansehen. Dieser C₂ Wert wird als der Reihenindex bezeichnet. Die Notwendigkeit für Multispaltenschlüssel und Index ist die, daß die Tupels auf den Plattenseiten basierend auf C₂ geordnet sind und daß das System informiert wird, daß C₁ einen gruppierten Index hat. Dies könnte durch Einführen der Tupels in dieser Reihenfolge erreicht werden, solange die Indexerzeugung im DBMS stabil ist, wobei die meisten DBMSs diese Anforderung erfüllen. Tatsächlich wurde dies bei der Kalibration von Systemen in dieser Fallstudie angewendet.
Es wird darauf hingewiesen, daß die Datenbank durch einen Vorgang erzeugt werden kann, der die obigen Formeln ab­ schätzt. Deshalb ist es möglich, eine eine Million Tupel um­ fassende Datenbank in wenigen Minuten zu erzeugen. Im Gegen­ satz dazu benötigt die Generation der Datenbank bei Anwend­ ung bekannter Techniken nach dem Stand der Technik erheblich mehr Zeit.
Ein Überblick über die Datenbankeigenschaften
Vor der Beschreibung der Daten folgen einige Definitionen. SEQ(n,i) (in ähnlicher Weise SIQ(n,i)) sei eine ausgesuchte Abfrage auf Rn, die ein Gleichheits- (respektive Ungleich­ heits-) Prädikat mit der Kardinalität des Ausgabeergebnisses von 2i für i<n anwendet. Solch eine Anfrage wird in der fol­ genden Diskussion benutzt.
Die Werte in C₁ sind in ansteigender Reihenfolge mit einem gruppierten Index. f[i] gibt die Anzahl der Tupels an, in denen der Wert i in C₁ auftaucht. mf[i] sei als der i-te häufigst auftretender Wert in C₁ definiert. Die Verteilung der Werte zeigt ein normales Muster derart, daß der mf[i]- Wert in 1/2i der Anzahl der Tupels auftaucht. Die obigen Formeln für C₁[n,i] haben dieses Muster codiert, aus dem wir den folgenden Hilfssatz herleiten können.
Hilfssatz 1
Für irgendeine Relation Rn und irgendeine Selektivität si = 1/2i, i ε [1,n], existiert ein Gleichheitsprädikat in C₁, dessen Selektivität si ist.
Corrollary 1
Es existieren Anfragen SEQ(n,i) und SEQ(n+1,i) auf den Relationen Rn und Rn+1 für i = 1, 2, . . . , n.
Die obigen Beobachtungen schaffen eine Garantie, daß Abfra­ gen vorhanden sind, die
  • - eine variierende Anzahl von Tupels aussuchen, die ein Gleichheitsprädikat auf dieselbe Relation an­ wenden; und
  • - dieselbe Anzahl von Tupels auswählen, die ein Gleichheitsprädikat von vielen Relationen mit ver­ schiedenen Größen anwenden.
Für diese Abfragen, die C1 benutzen, kann die folgende For­ derung mit berechtigter Sicherheit dargelegt werden.
Forderung 1
Eine Ausführung irgendeiner SEQ(*,*)-Abfrage von C1 resultiert in der Anwendung der gruppierten Indexab­ tastung.
Wie oben erwähnt wird die Vorhersehbarkeit des Aufwandes der Ausführung einer Abfrage SEQ(n,i) auf C₁ von den CPU- und der Eingabe/Ausgabekomponenten abhängen. Der CPU Aufwand steigt monoton mit der Größe des Ergebnisses. Aufgrund der obigen Forderung nimmt der Eingabe/Ausgabeaufwand ebenfalls monoton zu, bis auf die maximale Anzahl der Seiten zuge­ griffen wurde. Folglich ist die Anzahl der Eingaben/Ausgaben eine nicht fallende Funktion von der Größe des Ergebnisses. Diese Klasse von Funktionen wird als gesättige, monoton steigende Funktion bezeichnet.
Hilfssatz 2
Für irgendeine Speicherausführung und benutzte Seiten­ größe wird die Anzahl der Seiten, auf die durch eine SEQ(n,i) Abfrage, die C₁ verwendet, zugegriffen wird, durch eine gesättigte, monoton steigende Funktion von i gegeben.
Es ist darauf zu achten, daß die Kalibrierung für die Ko­ stenformeln in dem gesättigten Gebiet zu einer inkorrekten Kalibrierung führen. Jedoch ist zu beobachten, daß im schlimmsten Fall auf fast die Hälfte der Anzahl der Seiten nicht zugegriffen werden wird. Deshalb kann durch die Ver­ wendung großer Relationen das Problem der Sättigung ver­ mieden werden. Folglich werden die unvorhersehbaren Probleme für irgendeine Abfrage auf C₁ vermieden.
Es wird darauf hingewiesen, daß die Werte in C₁ funktional durch die Werte in C₂ festgestellt werden. Tatsächlich sind die Werte von C₂ aufgrund der aufsteigenden Reihenfolge der Indizierung des Schlüssels in aufsteigender Reihenfolge. Diese Beobachtung und die Tatsache, daß der Index gruppiert ist führen zu dem folgenden Hilfssatz.
Hilfssatz 3
Jede Speicherausführung dieser Relation wird die Rei­ henfolge der Tupels unter den Seiten der Relation beibe­ halten.
Diese Beobachtung schafft eine Handhabe bezüglich der Paginierung der Daten. Dies kann benutzt werden, um darzu­ legen, daß die C₃- und C₄-Werte einheitlich über alle Seiten verteilt sind.
Die folgenden zwei Beobachtungen sind hier der Vollständig­ keit halber dargestellt.
Hilfssatz 4
Für jegliche Relation Rn und jegliche Selektivität Si = 1/2i, i ε [1,n) existiert ein Ungleichheitsprädikat auf C₂, dessen Selektivität si ist.
Corrollary 2
Es existieren Abfragen SIQ(n,i) und SIQ(n+i,i) auf die Relationen Rn und Rn+1 für i = 1, 2, 3, . . . , n.
Die Werte in C₁ werden mit verschiedenen Reihen von C₃ ver­ tauscht. Deshalb gilt die Häufigkeitsverteilung f[i] eben­ falls für C₃ und C₄. Diese Rückverteilung wird aufgrund der Beobachtung durchgeführt, daß die Hälfte der Anzahl von Tupels einen Reihenindex in der binären Darstellung der Form *0 (d. h. das letzte Bit ist 0) hat, ein Viertel der Anzahl von Tupels hat einen Reihenindex in binärer Darstellung mit der Form *01, etc. Deshalb kann die Verteilung wie folgt vorgenommen werden:
  • - alle binären Reihenindizes, die die Form *0 haben, haben den Wert mf(1)
  • - alle binären Reihenindizes, die die Form *01 haben, ha­ ben den Wert mf[2]
  • - alle binären Reihenindizes, die die Form *011 haben, ha­ ben den Wert mf[3)
  • - usw.
Deshalb ist jeglicher Wert in [0,n) einheitlich in den Rei­ hen für C₃ und C₄ verteilt. Dies führt zu dem folgenden Hilfssatz.
Hilfssatz 5
Für jegliche Speicherausführung, jegliche benutzte Seitengröße und einen gegebenen Wert i in [0,n] sind die Tupels, die den Werte i für C₃und C₄ enthalten, gleichmäßig über alle Seiten verteilt.
Durch Anwendung dieses Hilfssatzes wird die folgende Be­ obachtung gemacht, die ein Vorhersageproblem bei der An­ wendung von C₃ und C₄ überwindet.
Hilfsatz 6
Für jegliche Speicherausführung und benutzte Seitengröße wird die Anzahl der Seiten, auf die durch eine SEQ(n,i) Abfrage mit C₃ oder C₄ zugegriffen wird, durch eine gesättigte, monoton steigende Funktion aus 1 gegeben.
Wiederum ist die Sättigung kein Problem, da der ungruppierte Index meistens in Gebieten eingesetzt wird, in denen die Selektivität gering ist. Wird die Kalibrierung auf dieses Gebiet beschränkt, dann wird die Eingabe/Ausgabe monoton steigen. Mit einem CPU Aufwand, der monoton steigt, wird das Vorhersagungsproblem vermieden.
Um das Gebiet festzulegen, wenn der Index benutzt wird, wer­ den die folgenden Beobachtungen gemacht.
Forderung 2
Die Ausführung von jeglicher SEQ(*,*)-Abfrage auf C₃ wird eine Verwendung der Indexabtastung zur Folge haben, wenn die Selektivität gering ist; ist die Selektivität aber hoch, dann kann das System eine Folgeabtastung ver­ wenden.
Forderung 3
Die Ausführung von jeglicher SEQ(*,*)-Abfrage auf C₄ wird eine Anwendung der Folgeabtastung zur Folge haben.
Da bekannt ist, daß C₃ und C₄ identisch sind, kann die Re­ gion der Selektivitäten, wenn ein Index benutzt wird, fest­ gestellt werden und zur Kalibrierung des Systems verwendet werden. Folglich werden die Unvorhersehbarkeitsprobleme für Abfragen auf C₃ und C₄ vermieden.
C₅ und C₆ sind ebenfalls Permutationen von C₂ und werden zur Anwendung mit Ungleichheitsabfragen angewendet. Das Vorher­ sehbarkeitsproblem für eine solche Abfrage schließt die An­ zahl der Seiten, auf die durch eine Auswahl mit einem Un­ gleichheitsprädikat der Form C₅ < i zugegriffen wird, ein. Diese Werte müssen in einer solchen Art und Weise verteilt werden, daß die Anzahl der Seiten, auf die zugegriffen wird, zunehmen, wenn die Selektivität erhöht wird. Dies wird er­ reicht durch Verteilung der Werte mit den folgenden Eigen­ schaften.
Hilfssatz 7
Für jegliches i ε [0,n) wird ein Satz von Werten [0,2i-1] gleichmäßig in C₅ und C₆ verteilt.
Dies führt zu einer Anforderung einer SIQ(n,i) Abfrage, um auf eine Sequenz von Reihen derart zuzugreifen, daß sich aufeinanderfolgende Reihenindizes um eine Konstante unter­ scheiden. Es wird eine Abfrage C₅ < 8 angenommen. Dies führt zu einem Zugriff auf die Reihen (0, 2, 4, 6, 8, 10, 12 und 14) in R₄ mit der Eigenschaft, daß sich aufeinanderfolgende reihen um 2 unterscheide. Es wird darauf hingewiesen, daß die Bedingung die Form C₅ < 2i hat. Durch Anwendung dieser Beobachtung können wir den folgenden Hilfssatz formulieren.
Hilfssatz 8
Für jegliche Speicherausführung und verwendete Seiten­ größe wird die Anzahl der Seiten, auf die durch eine SIQ(n,i) Abfrage, unter Verwendung von C₅ oder C₆, zuge­ griffen wird, durch eine gesättigte, monoton steigende Funktion von i gegeben.
Wiederum kann durch die Verwendung der Argumente, die ähn­ lich denen sind, die für C₃ und C₄ verwendet wurden, fest­ gestellt werden, daß Vorhersehungsprobleme vermieden werden. Die obige Beobachtung für die Relation Rn ist besonders wichtig, da eine solche Schlußfolgerung nicht gezogen werden kann, wenn die Relation wahrscheinlichkeitsmäßig erzeugt wurde, wie es in dieser Fallstudie der Fall war.
Zusammenfassend gilt, daß die Abfragen, die gegenüber ir­ gendeinem der Attribute in der Relation gestellt werden, ein vorhersehbares Verhalten haben.
Kalibrierungsverfahren
Der nächste Schritt ist es, die Koeffizienten aus der be­ trachteten Ausführung dieser Abfragen abzuleiten.
Forderung 4
Der Aufwand der Ausführung von Abfragen SEQ(n,i) und SEQ(n+1,i) sind außer für die COMP1-Komponente des Auf­ wandes aufgrund der Tatsache, daß sie auf Relationen mit verschiedenen Größen zugreifen, identisch.
Aus dieser Beobachtung wird das folgende Experiment aufge­ baut:
  • - Abschätzung von SEQ(n,i) und SEQ(n+1,i) unter Verwendung eines Gleichheitsprädikates auf C₄ und Beobachtung des Aufwandes.
  • - Wissend, daß das System eine Folgeabtastung auswählen wird, Aufgelösung nach dem Koeffizienten CS1SS.
Anstatt der Verwendung von ein oder zwei Datenpunkten müssen viele Werte angewendet werden, um einen Wert für die Koeffizienten derart zu erhalten, daß der Fehler minimiert wird. Diese Betrachtung wird im Folgenden diskutiert.
Forderung 5
Der Aufwand der Ausführung der Abfragen SEQ(n,i) und SEQ(n, i+1) sind außer für die COMP2-Komponente des Auf­ wandes, aufgrund der Tatsache, daß sie verschiedene Anzahlen von Tupels auswählen, identisch.
Aus dieser Betrachtung ist das folgende Experiment aufge­ baut:
  • - Schätze SEQ(n,i) und SEQ(n+1,i) unter Verwendung eines Gleichheitsprädikates auf C₄ ab und betrachte den Auf­ wand.
  • - Wissend, daß das System eine Folgeabtastung auswählen wird, Auflösen für den Koeffizienten CS2SS.
Mit ähnlichen Experimenten mit C₁ und C₃ können die Koef­ fizienten CS2ci und CS2ui für gruppierte Indizes bzw. für ungruppierte Indizes berechnet werden. Wie vorher beim Projizieren des Wertes von C₁ mit der Selektion für C₁ kann der Koeffizient CS2io durch Anwendung eines ähnlichen obigen Verfahrens berechnet werden.
Aufgrund des Wissens, daß CS1SS und CS2SS für die Aufwands­ formel für Folgeabtastung stehen, kann CS0SS aus dem ent­ sprechend beobachteten Aufwand für SEQ(*,*) berechnet werden.
Die Gabelung von CS1SS in CS1SSio und CS1SSCPU wird durch doppeltes Abtasten einer Tabelle während derselben Abfrage auf die Art und Weise getan, wie es durch die folgende SQL Abfrage spezifiziert ist:
select t1.C6 from Rn t1, Rn t2
where t1.C6 = t2.C6 & t1.C6 < C
Es wird darauf hingewiesen, daß die Berechnung von CS1io, CS1ci und CS2ui ein Problem darstellt. Da erwartet wird, daß diese Werte verglichen mit anderen Komponenten klein sind, ist eine sorgfältige Bearbeitung mit einem annehmbaren Grad von Genauigkeit schwierig. Deshalb wird die Annahme ge­ troffen, daß diese Koeffizienten denselben Wert haben wie CS2ci. Der Hauptaufwand des anfänglichen Nachschauens im Indexbaum ist der amortisierte Eingabe/Ausgabeaufwand des Holens der Indexseite. Nachdem der Indexbaum normalerweise gruppiert ist, sollte dieser Aufwand ähnlich dem Abrufen der Datenseite aus einem gruppierten Index, d. h. CS2ci sein. Die Bestätigung durch Allbase, DB2 und Informix bestätigten diesen Standpunkt.
Folglich können die Koeffizienten in den Aufwandsformeln für eine Auswahl durch Anwendung einer Reihe von Beobachtungen von Abfragen berechnet werden.
Es ist zu beachten, daß ähnliche Experimente unter Verwen­ dung von C₂, C₅ und C₆ gemacht werden können, um die Koef­ fizienten für die Ungleichheitsauswahloperation zu berech­ nen.
Als nächstes wird das Verfahren, um den Aufwand zum Anordnen einer Relation festzustellen, umrissen. Dies wird in den Aufwandsformeln für die geordnete Vermischung benötigt. Dies erfolgt durch Verbindung von zwei Rn′s, auf die Art und Wei­ se, wie sie durch die folgende SQL-Abfrage definiert wird:
select t1.C4 from Rn1 t1 Rn2 t2
where t1.C4 = t2.C4 & t1.C6 + t2.c6 < c
Es wird darauf hingewiesen, daß die erste Bedingung als Verbindungsbedingung bevorzugt ist und daß C₄ keinen Index hat. Deshalb wird der geordnete Mischungsalgorithmus verwendet, um die Verbindung zu berechnen. Die Ausgabe kann durch die entsprechende Wahl der Konstanten variiert werden. Durch Anwendung der Beobachtung auf Abfragen auf eine Relation mit variabler Größe der Ausgabe kann die Konstante CJ2mg abgeleitet werden. Ferner kann dieselbe Abfrage für drei oder vier Werte von n berechnet werden und der Aufwand zum Sortieren der Relation kann aus dem Wissen des Aufwandes für Abfolgeabtastung abgeleitet werden.
Durch Verwendung der Aufwandsformel für Auswahl und Ordnen können wir den Aufwand von Verbindungen ohne Vorhersehbar­ keitsprobleme berechnen.
Theorem
Die Koeffizienten der Aufwandsformeln werden ohne die unvorhersehbaren Probleme berechnet.
Es wird darauf hingewiesen, daß die Machbarkeit dieses An­ satzes auf folgenden zwei Annahmen beruht:
  • - Einige Relationen können in den teilnehmenden DBMS ge­ speichert werden, entweder als ein Multidatenbankan­ wender des Systems, oder, wenn solche Privilegien für den Multidatenbankanwender nicht verfügbar sind, dann durch besondere Anfrage an den Datenbankverwalter. Diese Relationen werden zeitlich für die Kalibrierung benutzt und werden nach der Kalibrierung nicht weiter gebraucht.
  • - Das beobachtete Verhalten der Abfragen ist wiederholbar in dem Sinne, daß der Effekt von anderen gleichzeitigen Abläufen die Betrachtungen nicht stört.
Praktische Kalibrierungen
Durch Verwendung der oben beschriebenen Technik, um die Koeffizienten der Aufwandsformeln zu berechnen, können die drei kommerziellen DBMSs, Allbase, DB2 und Informix kali­ briert werden, d. h. die Koeffizienten der Aufwandsformeln berechnet werden. Die Experimente sind derart aufgebaut, daß meistens Einzeltabellenabfragen angewendet werden. Das er­ folgt nicht nur, weil die Verbindungsabfragen sehr zeit­ aufwendig sind und es deshalb lange dauert, um das System zu kalibrieren, sondern weil auch die Kosten der meisten Ver­ bindungsabfragen durch Anwendung der Kosten von Einzel­ tabellenabfragen abgeschätzt werden können. Zur Bestätigung wurden verschiedene Arten von Verbindungsabfragen in dieser Fallstudie durchgeführt und der abgeschätzte Aufwand wurde mit dem tatsächlich beobachteten Aufwand verglichen. Das Ergebnis deutete darauf hin, daß die Koeffizienten bis zu einem Umfang abgeschätzt werden können, daß die folgende Ab­ schätzung der Verbindungsabfragen innerhalb von 20% der tat­ sächlichen Betrachtungen lagen. Dies sind die in der Fall­ studie gestellten Abfragen und die kalibrierten Koeffizienten.
Die kalibrierten Systeme waren ein Allbase-DBMS (Version HP 36217-02A. 07.00.17), das auf einer HP/835-RISC-Workstation lief, ein DB2-DBMS (Version V2.2), das auf einem IBM-3090- Mainframe lief, und ein Informix-DBMS (Version 4.00.UE2), das auf einer HP/850-RISC-Workstation lief. Die Kalibrie­ rungen wurden während der Nacht durchgeführt, 06996 00070 552 001000280000000200012000285910688500040 0002004323947 00004 06877während der die DB2 vergleichsweise gering belastet war, wohingegen die Allbase und Informix keinen anderen Mitstreiter hatten. Die DB2- und Informix-DBMSs waren für eine Produktionsanwendung geplant und wurden aufgebaut, um ihren Anwendungen zu entsprechen. Aus diesem Grund und ebenso aus Respekt vor der Autonomie dieser Installation wurden die Systemparameter nicht geändert.
Es gibt 16 Relationen, vergleiche Fig. 9, die mit diesen Ka­ librierungen verwendet wurden. Jeder Typ der Relation wurde mit zwei Größen von Tupels dargestellt und die kleinere Tupelrelation wurde verdoppelt. Diese Verdoppelung erfolgt, da die Verbindungsabfragen zwei identische Relationen er­ fordern. Relationen vom Typ R₁₀, R₁₃, R₁₅ und R₁₇ wurden bei der Kalibrierung von Allbase und Informix verwendet, wohin­ gehend die Relationen von Typ R₁₃, R₁₅, R₁₇ und R₂₀ bei der Kalibrierung von DB2 verwendet wurden. Diese Wahl ist abhän­ gig vom verfügbaren Plattenraum. Der Kalibrierungsablauf ist identisch.
Die tatsächlichen Abfragen, vgl. Fig. 10, die bei der Kalibrierung benutzt wurden, sind gegeben, wobei Rn eine Tabelle der Kardinalität 2n und c eine Konstante ist, die die Selektivität festlegt. Für jeden Typ von Abfrage gege­ nüber Rn wurde ein Satz von Abfragen mit einer Selektivität 2-i (i = 1, 2, . . . , n) aufgebaut und betrachtet.
Für jede Abfrage wurde die verstrichene Zeit in dem DBMS aufgezeichnet. Für DB2 wird die verstrichene Zeit als ver­ strichene Zeit nach Klasse 2 definiert. Für Allbase und Informix wird die verstrichene Zeit durch Abziehen des Startzeitzeigers (wann die Anfrage erhalten wird) von dem Endzeitzeiger (wann das Ergebnis abgeschickt wurde) be­ rechnet. In allen DBMSs wurden die Abfragen nach Leerung aller Puffer gestellt, um eine Störung aufgrund von Puf­ ferung auszuschließen. Jede Abfrage wird dreißigmal ausge­ führt und die durchschnittliche verstrichene Zeit wird be­ rechnet. Außer bei einigen wenigen Fällen war der relative Fehler zwischen den tatsächlichen Daten und einem durch­ schnittlichen Wert innerhalb von 5% mit einem Vertrauens­ koeffizienten von 95%. Folglich war die Wiederholbarkeit der Beobachtung gesichert.
Aus diesen Beobachtungen können die Koeffizienten für die Aufwandsformeln für Allbase, DB2, und Informix abgeleitet werden. Eine Anpassung nach dem Algorithmus des kleinsten Fehlerquadrates wurde angewendet, um den Fehler zu minimieren und die Koeffizienten, die in Fig. 11 dargestellt sind, abzuschätzen. Fig. 13 zeigt die verstrichene Zeit für Abfragen nach dem Typ 3.1, der auf DB2 für die Relationen R₁₃ und R₁₇ läuft, zusammen mit der abgeschätzten Zeit durch die Aufwandsformel, die abhängig ist von der Größe der Relation. Dies bestätigt zwei Tatsachen:
  • 1. Die DB2-Zugriffe auf die Abfragen, die nur den Index be­ nutzen, sind nicht empfindlich gegenüber der Größe der Relation;
  • 2. Die Abschätzung, die für CS1io verwendet wurde, beein­ trächtigt die Genauigkeit nicht.
Wie erkannt werden kann, ist der Fehler recht klein und dies war für alle Tests, die die obigen Abfragen benutzten, so.
Um den Effekt von mehreren Auswahl- und Projektionssätzen zu untersuchen, wurden die zwölf Grundabfragen auf DB2 verän­ dert. Die neuen Abfragen haben bis zu fünf Prädikate und gaben bis zu fünf Attribute zurück. Es folgend zwei Bei­ spielabfragen.
select C1, C2, C3, C4, C5 from Rn where C5 < c select C5 from Rn
where C5 < c & C1 <=0 & C2 <=0 & C3 <=0 & C4 <=0
Es ist darauf zu achten, daß in der zweiten Abfrage die <= Prädikate für alle Tupels erfüllt sind. Dies garantiert, daß sie nur nach solchen Tupels überprüft werden, die dem ersten (originalen) Prädikat nachfolgen.
Das Ergebnis der Experimente zeigt, daß in allen Fällen die Unterschiede im Bereich von 10% liegen. Es scheint sich an­ zubieten, daß der Aufwand zum Projizieren zusätzlicher Spal­ ten vernachlässigbar ist, wenn das Tupel einmal im Speicher ist. Der Aufwand, die Prädikate zu überprüfen, ist ver­ glichen mit anderen Verarbeitungsaufwänden (z. B. Ein­ gabe/Ausgabe dazu) ebenfalls minimal.
Die obigen Aufwandsformeln wurden durch Verwendung der 36 Typen von Verbindungsabfragen, die in Fig. 12 gezeigt sind, ebenfalls bestätigt. Abfragen vom Typ 1.1 bis 2.9 geben 22i Tupels zurück, abhängig von der Konstante c, wobei i=0,1, . . . , n ist. In dieser Bestätigung wurden Verbindungen von Selektivität 22k für k<(n-4) getestet. Abfragen vom Typ 3.1 bis 4.9 gaben 2i Tupels abhängig von c, wobei i<=min(n,m) ist, zurück. Verbindungen von Selektivität 2k für k<min(n,m)-4 wurden getestet. In beiden Fällen wurde der beobachtete Wert mit dem abgeschätzten Wert verglichen.
Fig. 14 zeigt den Vergleich zwischen den abgeschätzten Wer­ ten mit den beobachteten Werten für die Typ 3.1 Verbindungs­ abfrage, die auf DB2 läuft, unter Verwendung von Paaren der Relationen R13¹ R13², R17¹ R17² und R13 R17. (wobei eine Verbindung darstellt). Es ist anzumerken, daß in diesem Fall die DB2 verschachtelte Schleifen als das Verbindungs­ verfahren und ein Zugriffsverfahren, das nur den Index be­ nutzt, wählt. Deshalb sollte in allen drei Fällen der Auf­ wand unabhängig von der Kardinalität der zwei Relationen sein. Dies wird beobachtet durch Verweisen auf den Graph der in Fig. 14 gezeigt ist, in dem der maximale Fehler etwa 10% beträgt. Dies bestätigt wiederum das Aufwandsmodell und die Abschätzungen.
In Fig. 15 und Fig. 16 sind die Verbindungen, die Mischsor­ tierung mit R17¹ R17² bzw. R13 R17 auf DB2 dar. Es ist zu beachten, daß der abgeschätzte Aufwand wiederum innerhalb eines 10%-igen Fehlers liegt.
Das Ergebnis dieser Bestätigung beweist, daß in mehr als 80% der Fälle die beobachteten Werte innerhalb eines Fehlerban­ des von 20% von den abgeschätzten Werten lagen. Ferner trug in allen anderen Fällen das folgende Phänomen zu der Mehr­ heit der Fehler bei. Alle diese Fälle traten auf, als das System ungruppierte Indizes in der inneren Schleife der verschachtelten Schleifenverbindung benutzte. Wenn der Auf­ wand CSui als einzelne Abfrage berechnet wird, unterschätzte die mögliche Pufferung von Seiten den Aufwand dieses Zu­ griffs auf die innere Schleife der Verbindung, wo sie sich mit bewirbt für Puffer in der äußeren Schleife. Folglich war die Abschätzung immer niedriger. Dies ist ein Punkt für zu­ künftige Verbesserungen.

Claims (8)

1. Verfahren zum Steuern von Datenbankabfragen in einem heterogenen, verteilten Datenbanksystem, mit
einer ersten Datenbankanlage, die ein erstes relatio­ nales Datenbank-Managementsystem (DBMS) und eine zugehörige Datenbank umfaßt; und
einer zweiten Datenbankanlage, die ein zweites rela­ tionales Datenbank-Managementsystem (DBMS) und eine zugehörige Datenbank umfaßt;
wobei sich die ersten und zweiten relationalen Daten­ bank-Managementsysteme voneinander unterscheiden, aber mindestens in einer vorbestimmten strukturierten Ab­ fragesprache übereinstimmen; gekennzeichnet durch folgende Schritte:
  • - Aufbauen einer Modelldatenbank, in der alle Reihen, Spalten und Strukturen bekannt sind und gesteuert wer­ den;
  • - Durchführen einer Reihe von Zugriffstests auf die Mo­ delldatenbank unter Verwendung der vorbestimmten strukturierten Abfragesprache jedes teilnehmenden Datenbank-Managementsystemes;
  • - Ableitung von Zugriffsaufwandsdaten für jedes teilneh­ mende Datenbank-Managementsystem entsprechend der Zu­ griffstests;
  • - Speichern der Zugriffsaufwandsdaten als ein Aufwands­ modell in einem Daten-Wörterbuch/Katalog;
  • - Ermitteln eines optimalen Anwendungsplanes für nach­ folgende verteilte Datenbankabfragen, gestützt auf das Aufwandsmodell, das in dem Daten-Wörterbuch/Katalog gespeichert ist, und
  • - Ausführen von folgenden Abfragen, um Daten von den verteilten Datenbanken entsprechend des optimalen An­ wendungsplanes zurückzuerhalten.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der Modelldatenbankaufbau die folgenden Schritte aufweist:
  • - Erstellen einer synthetischen Datenbank als Modell­ datenbank, wobei für eine ganze Zahl "n" Rn eine Relation von sieben Spalten, die 2n Tupels enthält, ist, und jede der sieben Spalten, (Cn, wobei n = [1 . . 7]) die folgenden Attribute hat:
    • C₁: eine ganze Zahl [0,n], indiziert und gruppiert;
    • C₂: eine ganze Zahl [0,2n-1], indiziert, defacto gruppiert, aber nicht für die DBMS als solche spezifiziert;
    • C₃: eine ganze Zahl [0,n], indiziert und ungruppiert;
    • C₄: eine ganze Zahl [0,n] ohne Index;
    • C₅: eine ganze Zahl [0,2n-1], indiziert und ungruppiert;
    • C₆: eine ganze Zahl [0,2n-1] ohne Index; und
    • C₇: eine lange Buchstabenkette, um der Größe der Tupelanforderung zu entsprechen;
  • - Setzen des Wertes des siebten Attributs als ein Ausfüllfeld; und
  • - Setzen eines Multispaltenschlüssels für die Relation auf C₁, C₂ derart, daß die Relation auf diesem Schlüssel in aufsteigender Reihenfolge, mit C₁ als der Hauptschlüssel und C₂ als der untergeordnete Schlüssel, indiziert ist.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeich­ net, daß die Reihe von Zugriffstests folgende Schritte umfaßt:
  • - Anwenden von einem Minimum von zwölf individuellen Ab­ fragen auf jedes teilnehmende Datenbank-Management­ system (DBMS); und
  • - Aufstellen jeder Abfrage mindestens dreißig mal, um eine statistisch signifikante Abtastung abzuleiten.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch ge­ kennzeichnet, daß der Schritt des Ableitens von Zugriffsaufwandsdaten das Anwenden einer Anpassung nach dem Algorithmus des kleinsten quadratischen Fehlers umfaßt, um die Fehler zu verringern und die Aufwandskoeffizienten abzuschätzen.
5. Verfahren nach einem der Ansprüche 1 bis 4, gekenn­ zeichnet durch folgende Schritte:
  • - Strukturieren des Aufwandsmodelles entsprechend einer logischen Ausführung der Datenbankabfragen; und
  • - Abschätzen des Aufwandes einer gegebenen Abfrage basierend auf logischen Charakteristika jedes teil­ nehmenden Datenbank-Managementsystems (DBMS), auf logischen Relationen zwischen den in den Datenbanken gespeicherten Daten und auf einer logischen Struktur der Abfrage.
6. Verfahren nach Anspruch 5, gekennzeichnet durch Abschätzen des Aufwandes einer umfangreichen Abfrage durch Verwendung eines Satzes von einfachen Abfragen.
7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß das Aufwandsmodell ein logisches Aufwandsmodell ist.
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß das logische Aufwandsmodell logische Aufwandsformeln zum Optimieren der Abfrage in jeder Datenbank in dem System und Zugriffsaufwandsdaten mit Aufwandskoeffizien­ ten zur Verwendung in den logischen Aufwandsformeln zum Kalibrieren des Aufwandsmodells aufweist.
DE4323947A 1992-08-20 1993-07-16 Verfahren zum Steuern von Datenbankabfragen in einem heterogenen, verteilten Datenbanksystem Expired - Fee Related DE4323947C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/932,426 US5412806A (en) 1992-08-20 1992-08-20 Calibration of logical cost formulae for queries in a heterogeneous DBMS using synthetic database

Publications (2)

Publication Number Publication Date
DE4323947A1 DE4323947A1 (de) 1994-02-24
DE4323947C2 true DE4323947C2 (de) 1998-01-29

Family

ID=25462288

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4323947A Expired - Fee Related DE4323947C2 (de) 1992-08-20 1993-07-16 Verfahren zum Steuern von Datenbankabfragen in einem heterogenen, verteilten Datenbanksystem

Country Status (4)

Country Link
US (1) US5412806A (de)
JP (1) JPH06195382A (de)
DE (1) DE4323947C2 (de)
GB (2) GB9313133D0 (de)

Families Citing this family (255)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5469568A (en) * 1993-01-07 1995-11-21 International Business Machines Corporation Method for choosing largest selectivities among eligible predicates of join equivalence classes for query optimization
US6556988B2 (en) 1993-01-20 2003-04-29 Hitachi, Ltd. Database management apparatus and query operation therefor, including processing plural database operation requests based on key range of hash code
JP3266351B2 (ja) * 1993-01-20 2002-03-18 株式会社日立製作所 データベース管理システムおよび問合せの処理方法
JPH0798669A (ja) * 1993-08-05 1995-04-11 Hitachi Ltd 分散データベース管理システム
FR2718870B1 (fr) * 1994-04-13 1996-05-31 Bull Sa Dispositif et procédé de calibration des modèles de coût.
US5717918A (en) * 1994-06-17 1998-02-10 Hitachi, Ltd. Method for concurrently performing a physical sequential scan of a database into a database buffer which is queued until a preceding scan is completed
US5758144A (en) * 1994-06-24 1998-05-26 International Business Machines Corporation Database execution cost and system performance estimator
CA2130065C (en) * 1994-08-12 1999-03-02 Michael Joel Cincinatus Utilizing pseudotables as a method and mechanism for providing database monitor information
US5671403A (en) * 1994-12-30 1997-09-23 International Business Machines Corporation Iterative dynamic programming system for query optimization with bounded complexity
US5687362A (en) * 1995-01-30 1997-11-11 International Business Machines Corporation Enumerating projections in SQL queries containing outer and full outer joins in the presence of inner joins
US5694591A (en) * 1995-05-02 1997-12-02 Hewlett Packard Company Reducing query response time using tree balancing
US5701471A (en) * 1995-07-05 1997-12-23 Sun Microsystems, Inc. System and method for testing multiple database management systems
US5634053A (en) * 1995-08-29 1997-05-27 Hughes Aircraft Company Federated information management (FIM) system and method for providing data site filtering and translation for heterogeneous databases
DE19534819B4 (de) * 1995-09-20 2004-07-08 International Business Machines Corp. Verfahren und Vorrichtung zum Konfigurieren einer Datenbank
DE19536649A1 (de) * 1995-09-30 1997-04-03 Sel Alcatel Ag Verfahren zur Kopplung von Datenbearbeitungseinheiten, Verfahren zum Steuern einer Vermittlungsstelle, Datenbearbeitungseinheit, Steuerung und Vermittlungsstelle
US5913205A (en) * 1996-03-29 1999-06-15 Virage, Inc. Query optimization for visual information retrieval system
JPH1091495A (ja) * 1996-05-30 1998-04-10 Nippon Telegr & Teleph Corp <Ntt> 分散型データベースアクセス装置およびその処理プログラムを記録した記録媒体
US5884304A (en) * 1996-09-20 1999-03-16 Novell, Inc. Alternate key index query apparatus and method
US5873079A (en) * 1996-09-20 1999-02-16 Novell, Inc. Filtered index apparatus and method
US5870739A (en) * 1996-09-20 1999-02-09 Novell, Inc. Hybrid query apparatus and method
US6119109A (en) * 1996-09-30 2000-09-12 Digital Vision Laboratories Corporation Information distribution system and billing system used for the information distribution system
US5761494A (en) * 1996-10-11 1998-06-02 The Sabre Group, Inc. Structured query language to IMS transaction mapper
US5937388A (en) * 1996-12-05 1999-08-10 Hewlett-Packard Company System and method for performing scalable distribution of process flow activities in a distributed workflow management system
US6014673A (en) * 1996-12-05 2000-01-11 Hewlett-Packard Company Simultaneous use of database and durable store in work flow and process flow systems
US5987452A (en) * 1997-01-22 1999-11-16 At&T Corp Query translation system
US5995957A (en) 1997-02-28 1999-11-30 International Business Machines Corporation Query optimization through the use of multi-column statistics to avoid the problems of column correlation
US5924088A (en) * 1997-02-28 1999-07-13 Oracle Corporation Index selection for an index access path
US5903888A (en) * 1997-02-28 1999-05-11 Oracle Corporation Method and apparatus for using incompatible types of indexes to process a single query
US5956706A (en) * 1997-05-09 1999-09-21 International Business Machines Corporation Method and system for limiting the cardinality of an SQL query result
US5899991A (en) * 1997-05-12 1999-05-04 Teleran Technologies, L.P. Modeling technique for system access control and management
US5875445A (en) * 1997-05-29 1999-02-23 Oracle Corporation Performance-related estimation using pseudo-ranked trees
US5884320A (en) * 1997-08-20 1999-03-16 International Business Machines Corporation Method and system for performing proximity joins on high-dimensional data points in parallel
US5943666A (en) * 1997-09-15 1999-08-24 International Business Machines Corporation Method and apparatus for optimizing queries across heterogeneous databases
US6026391A (en) * 1997-10-31 2000-02-15 Oracle Corporation Systems and methods for estimating query response times in a computer system
CA2326513C (en) * 1998-03-27 2009-06-16 Informix Software, Inc. Processing precomputed views
US6272488B1 (en) 1998-04-01 2001-08-07 International Business Machines Corporation Managing results of federated searches across heterogeneous datastores with a federated collection object
US6233586B1 (en) 1998-04-01 2001-05-15 International Business Machines Corp. Federated searching of heterogeneous datastores using a federated query object
US6263342B1 (en) 1998-04-01 2001-07-17 International Business Machines Corp. Federated searching of heterogeneous datastores using a federated datastore object
US6581052B1 (en) * 1998-05-14 2003-06-17 Microsoft Corporation Test generator for database management systems
US6138112A (en) * 1998-05-14 2000-10-24 Microsoft Corporation Test generator for database management systems
US6718322B1 (en) 1998-10-02 2004-04-06 Ncr Corporation SQL-based analytic algorithm for rule induction
US6772166B1 (en) 1998-10-02 2004-08-03 Ncr Corporation SQL-based analytic algorithm for clustering
US6438552B1 (en) 1998-10-02 2002-08-20 Ncr Corporation SQL-Based automated histogram bin data derivation assist
US6826556B1 (en) 1998-10-02 2004-11-30 Ncr Corporation Techniques for deploying analytic models in a parallel
US6687695B1 (en) 1998-10-02 2004-02-03 Ncr Corporation SQL-based analytic algorithms
US7162464B1 (en) 1998-10-02 2007-01-09 Ncr Corporation Data mining assists in a relational database management system
US6434545B1 (en) * 1998-12-16 2002-08-13 Microsoft Corporation Graphical query analyzer
US6304871B1 (en) * 1998-12-18 2001-10-16 International Business Machines Corporation Method and system for characterizing applications for use with databases having structured query language interfaces
GB9901005D0 (en) * 1999-01-19 1999-03-10 Ncr Int Inc Data warehouse applications for networks of self-service machines
US6442537B1 (en) * 1999-06-24 2002-08-27 Teleran Technologies, Inc. System of generating and implementing rules
US6484162B1 (en) 1999-06-29 2002-11-19 International Business Machines Corporation Labeling and describing search queries for reuse
US6502094B1 (en) * 1999-07-02 2002-12-31 Sap Portals, Inc. Relation path viability prediction
JP3584788B2 (ja) * 1999-07-05 2004-11-04 日本電気株式会社 関係データベースアクセス装置および関係データベースアクセス方法
US6735741B1 (en) 1999-07-30 2004-05-11 International Business Machines Corporation Method system, and program for dynamic resource linking when copies are maintained at different storage locations
US6704737B1 (en) 1999-10-18 2004-03-09 Fisher-Rosemount Systems, Inc. Accessing and updating a configuration database from distributed physical locations within a process control system
US6687698B1 (en) * 1999-10-18 2004-02-03 Fisher Rosemount Systems, Inc. Accessing and updating a configuration database from distributed physical locations within a process control system
US6978272B1 (en) * 1999-11-29 2005-12-20 Ncr Corporation Method and apparatus for displaying instrumentation parameters in a database system
AT4306U3 (de) * 2000-02-17 2005-09-26 Melach Gmbh Programm zur abfrage und bearbeitung von daten
US6631365B1 (en) 2000-03-14 2003-10-07 Requisite Technology, Inc. Method and apparatus for analyzing the quality of the content of a database
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
US7177798B2 (en) * 2000-04-07 2007-02-13 Rensselaer Polytechnic Institute Natural language interface using constrained intermediate dictionary of results
WO2002019134A1 (en) * 2000-08-28 2002-03-07 Digitalowl.Com, Inc. System and methods for the flexible usage of electronic content in heterogeneous distributed environments
US20070276873A1 (en) * 2001-02-13 2007-11-29 Vahdat Amin M System and method for optimizing efficiency of replicated network services
US6763359B2 (en) * 2001-06-06 2004-07-13 International Business Machines Corporation Learning from empirical results in query optimization
US7167873B2 (en) * 2001-06-26 2007-01-23 Ncr Corp. Visual-modeling technique for use in implementing a database system
ITFI20010199A1 (it) 2001-10-22 2003-04-22 Riccardo Vieri Sistema e metodo per trasformare in voce comunicazioni testuali ed inviarle con una connessione internet a qualsiasi apparato telefonico
US7698338B2 (en) * 2002-09-18 2010-04-13 Netezza Corporation Field oriented pipeline architecture for a programmable data streaming processor
WO2005008529A2 (en) * 2003-07-07 2005-01-27 Netezza Corporation Optimized sql code generation
US7552110B2 (en) * 2003-09-22 2009-06-23 International Business Machines Corporation Method for performing a query in a computer system to retrieve data from a database
US7356526B2 (en) * 2003-09-30 2008-04-08 International Business Machines Corporation Estimating the compilation time of a query optimizer
US7383246B2 (en) 2003-10-31 2008-06-03 International Business Machines Corporation System, method, and computer program product for progressive query processing
US20050278301A1 (en) * 2004-05-26 2005-12-15 Castellanos Maria G System and method for determining an optimized process configuration
US7971191B2 (en) * 2004-06-10 2011-06-28 Hewlett-Packard Development Company, L.P. System and method for analyzing a process
GB2416221A (en) * 2004-07-10 2006-01-18 Hewlett Packard Development Co Analysing a multi stage process
US7236938B2 (en) * 2004-08-11 2007-06-26 Hewlett-Packard Development Company, L.P. System and method for refreshing metric values
US8412671B2 (en) * 2004-08-13 2013-04-02 Hewlett-Packard Development Company, L.P. System and method for developing a star schema
US8046354B2 (en) * 2004-09-30 2011-10-25 International Business Machines Corporation Method and apparatus for re-evaluating execution strategy for a database query
JP4463661B2 (ja) * 2004-11-01 2010-05-19 株式会社日立製作所 計算機システム、計算機、データベースアクセス方法及びデータベースシステム
US7596560B2 (en) * 2004-12-23 2009-09-29 Raytheon Company System and method for adaptive query identification and acceleration
US7311563B2 (en) * 2005-01-07 2007-12-25 Thomas & Betts International, Inc. Insulated water-tight connector assembly including a set screw driver and plug
US20060167825A1 (en) * 2005-01-24 2006-07-27 Mehmet Sayal System and method for discovering correlations among data
US7882100B2 (en) * 2005-01-24 2011-02-01 Sybase, Inc. Database system with methodology for generating bushy nested loop join trees
US8631391B2 (en) 2005-01-24 2014-01-14 Hewlett-Packard Development Company, L.P. Method and a system for process discovery
US7529790B1 (en) 2005-01-27 2009-05-05 Hewlett-Packard Development Company, L.P. System and method of data analysis
US20060212429A1 (en) * 2005-03-17 2006-09-21 Microsoft Corporation Answering top-K selection queries in a relational engine
US7467145B1 (en) 2005-04-15 2008-12-16 Hewlett-Packard Development Company, L.P. System and method for analyzing processes
US8423396B1 (en) 2005-04-28 2013-04-16 Hewlett-Packard Development Company, L.P. System and method for process discovery
US20060259442A1 (en) * 2005-05-17 2006-11-16 International Business Machines Corporation System method and program product to estimate cost of integrating and utilizing heterogeneous data sources
US7277810B2 (en) * 2005-07-05 2007-10-02 The United States Of America As Represented By The Secretary Of The Navy Method and apparatus for automating calibration of test instruments
US7383247B2 (en) * 2005-08-29 2008-06-03 International Business Machines Corporation Query routing of federated information systems for fast response time, load balance, availability, and reliability
US20070055658A1 (en) * 2005-09-08 2007-03-08 International Business Machines Corporation Efficient access control enforcement in a content management environment
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US20070100783A1 (en) * 2005-10-29 2007-05-03 International Business Machines Corporation Method, system, and program for determining discrepancies between database management systems
US7689538B2 (en) * 2006-01-26 2010-03-30 International Business Machines Corporation Autonomic recommendation and placement of materialized query tables for load distribution
US7877373B2 (en) * 2006-06-30 2011-01-25 Oracle International Corporation Executing alternative plans for a SQL statement
US7496683B2 (en) * 2006-07-27 2009-02-24 International Business Machines Corporation Maximization of sustained throughput of distributed continuous queries
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8903801B2 (en) * 2007-09-14 2014-12-02 Oracle International Corporation Fully automated SQL tuning
US8341178B2 (en) * 2007-09-18 2012-12-25 Oracle International Corporation SQL performance analyzer
US9053089B2 (en) 2007-10-02 2015-06-09 Apple Inc. Part-of-speech tagging using latent analogy
US8700608B2 (en) * 2007-10-17 2014-04-15 Oracle International Corporation SQL execution plan verification
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8065143B2 (en) 2008-02-22 2011-11-22 Apple Inc. Providing text input using speech data and non-speech data
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US8464150B2 (en) 2008-06-07 2013-06-11 Apple Inc. Automatic language identification for dynamic text processing
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8768702B2 (en) 2008-09-05 2014-07-01 Apple Inc. Multi-tiered voice feedback in an electronic device
US8898568B2 (en) 2008-09-09 2014-11-25 Apple Inc. Audio user interface
US8712776B2 (en) 2008-09-29 2014-04-29 Apple Inc. Systems and methods for selective text to speech synthesis
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US9959870B2 (en) 2008-12-11 2018-05-01 Apple Inc. Speech recognition involving a mobile device
US8862252B2 (en) * 2009-01-30 2014-10-14 Apple Inc. Audio user interface for displayless electronic device
US9177023B2 (en) * 2009-02-02 2015-11-03 Hewlett-Packard Development Company, L.P. Evaluation of database query plan robustness landmarks using operator maps or query maps
US8380507B2 (en) 2009-03-09 2013-02-19 Apple Inc. Systems and methods for determining the language to use for speech generated by a text to speech engine
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US10540976B2 (en) 2009-06-05 2020-01-21 Apple Inc. Contextual voice commands
US20120311585A1 (en) 2011-06-03 2012-12-06 Apple Inc. Organizing task items that represent tasks to perform
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US8682649B2 (en) 2009-11-12 2014-03-25 Apple Inc. Sentiment prediction from textual data
US8381107B2 (en) 2010-01-13 2013-02-19 Apple Inc. Adaptive audio feedback system and method
US8311838B2 (en) 2010-01-13 2012-11-13 Apple Inc. Devices and methods for identifying a prompt corresponding to a voice input in a sequence of prompts
US9665620B2 (en) 2010-01-15 2017-05-30 Ab Initio Technology Llc Managing data queries
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
DE112011100329T5 (de) 2010-01-25 2012-10-31 Andrew Peter Nelson Jerram Vorrichtungen, Verfahren und Systeme für eine Digitalkonversationsmanagementplattform
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US8630998B2 (en) * 2010-05-28 2014-01-14 Microsoft Corporation Framework for testing query transformation rules
US8713021B2 (en) 2010-07-07 2014-04-29 Apple Inc. Unsupervised document clustering using latent semantic density analysis
US8719006B2 (en) 2010-08-27 2014-05-06 Apple Inc. Combined statistical and rule-based part-of-speech tagging for text-to-speech synthesis
US8719014B2 (en) 2010-09-27 2014-05-06 Apple Inc. Electronic device with text error correction based on voice recognition data
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
US10515147B2 (en) 2010-12-22 2019-12-24 Apple Inc. Using statistical language models for contextual lookup
US8781836B2 (en) 2011-02-22 2014-07-15 Apple Inc. Hearing assistance system for providing consistent human speech
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US10672399B2 (en) 2011-06-03 2020-06-02 Apple Inc. Switching between text data and audio data based on a mapping
US9177021B2 (en) * 2011-06-09 2015-11-03 International Business Machines Corporation Relational query planning for non-relational data sources
US8812294B2 (en) 2011-06-21 2014-08-19 Apple Inc. Translating phrases from one language into another using an order-based set of declarative rules
US8706472B2 (en) 2011-08-11 2014-04-22 Apple Inc. Method for disambiguating multiple readings in language conversion
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US8762156B2 (en) 2011-09-28 2014-06-24 Apple Inc. Speech recognition repair using contextual information
US8874548B2 (en) * 2012-02-27 2014-10-28 Nec Laboratories America, Inc. Predicting query execution time
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US8775442B2 (en) 2012-05-15 2014-07-08 Apple Inc. Semantic search using a single-source semantic model
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US10019994B2 (en) 2012-06-08 2018-07-10 Apple Inc. Systems and methods for recognizing textual identifiers within a plurality of words
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
US8935167B2 (en) 2012-09-25 2015-01-13 Apple Inc. Exemplar-based latent perceptual modeling for automatic speech recognition
US9110948B2 (en) * 2012-11-09 2015-08-18 International Business Machines Corporation Relative performance prediction of a replacement database management system (DBMS)
DE212014000045U1 (de) 2013-02-07 2015-09-24 Apple Inc. Sprach-Trigger für einen digitalen Assistenten
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
US10642574B2 (en) 2013-03-14 2020-05-05 Apple Inc. Device, method, and graphical user interface for outputting captions
US9977779B2 (en) 2013-03-14 2018-05-22 Apple Inc. Automatic supplementation of word correction dictionaries
US10572476B2 (en) 2013-03-14 2020-02-25 Apple Inc. Refining a search based on schedule items
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US9733821B2 (en) 2013-03-14 2017-08-15 Apple Inc. Voice control to diagnose inadvertent activation of accessibility features
US11151899B2 (en) 2013-03-15 2021-10-19 Apple Inc. User training by intelligent digital assistant
WO2014144949A2 (en) 2013-03-15 2014-09-18 Apple Inc. Training an at least partial voice command system
WO2014144579A1 (en) 2013-03-15 2014-09-18 Apple Inc. System and method for updating an adaptive speech recognition model
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
KR101904293B1 (ko) 2013-03-15 2018-10-05 애플 인크. 콘텍스트-민감성 방해 처리
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
DE112014002747T5 (de) 2013-06-09 2016-03-03 Apple Inc. Vorrichtung, Verfahren und grafische Benutzerschnittstelle zum Ermöglichen einer Konversationspersistenz über zwei oder mehr Instanzen eines digitalen Assistenten
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
CN105265005B (zh) 2013-06-13 2019-09-17 苹果公司 用于由语音命令发起的紧急呼叫的系统和方法
AU2014306221B2 (en) 2013-08-06 2017-04-06 Apple Inc. Auto-activating smart responses based on activities from remote devices
CN104516894B (zh) * 2013-09-27 2018-08-17 国际商业机器公司 用于管理时间序列数据库的方法和装置
US9594781B2 (en) * 2013-11-27 2017-03-14 Sybase, Inc. Estimation of query input/output (I/O) cost in database
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US9922088B2 (en) 2013-12-31 2018-03-20 Sybase, Inc. Cardinality estimation using spanning trees
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
EP3149728B1 (de) 2014-05-30 2019-01-16 Apple Inc. Eingabeverfahren durch einzelne äusserung mit mehreren befehlen
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US10621064B2 (en) 2014-07-07 2020-04-14 Oracle International Corporation Proactive impact measurement of database changes on production systems
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US10417281B2 (en) 2015-02-18 2019-09-17 Ab Initio Technology Llc Querying a data source on a network
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179588B1 (en) 2016-06-09 2019-02-22 Apple Inc. INTELLIGENT AUTOMATED ASSISTANT IN A HOME ENVIRONMENT
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
US10078839B1 (en) 2017-08-30 2018-09-18 Square, Inc. Centralized system for data retrieval
US11386058B2 (en) 2017-09-29 2022-07-12 Oracle International Corporation Rule-based autonomous database cloud service framework
US11327932B2 (en) 2017-09-30 2022-05-10 Oracle International Corporation Autonomous multitenant database cloud service framework
JP7485934B2 (ja) 2020-06-30 2024-05-17 富士通株式会社 情報処理プログラム、情報処理装置及び情報処理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0351388A2 (de) * 1988-07-15 1990-01-17 International Business Machines Corporation Clustergrade verwendende Optimierung
EP0428264A2 (de) * 1989-10-13 1991-05-22 International Business Machines Corporation Verfahren zur Erzeugung eines Zugriffsplans in einem Datenbanksystem
EP0456491A2 (de) * 1990-05-10 1991-11-13 Kabushiki Kaisha Toshiba Verteiltes Datenbankverarbeitungssystem

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4531186A (en) * 1983-01-21 1985-07-23 International Business Machines Corporation User friendly data base access
US4769772A (en) * 1985-02-28 1988-09-06 Honeywell Bull, Inc. Automated query optimization method using both global and parallel local optimizations for materialization access planning for distributed databases
JP2760794B2 (ja) * 1988-01-29 1998-06-04 株式会社日立製作所 データベース処理方法および装置
US4956774A (en) * 1988-09-02 1990-09-11 International Business Machines Corporation Data base optimizer using most frequency values statistics

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0351388A2 (de) * 1988-07-15 1990-01-17 International Business Machines Corporation Clustergrade verwendende Optimierung
EP0428264A2 (de) * 1989-10-13 1991-05-22 International Business Machines Corporation Verfahren zur Erzeugung eines Zugriffsplans in einem Datenbanksystem
EP0456491A2 (de) * 1990-05-10 1991-11-13 Kabushiki Kaisha Toshiba Verteiltes Datenbankverarbeitungssystem

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
IBM Technical Disclosure Bulletin, Vol. 30, No. 9, Febr. 1988, S. 474-477 *
IBM Technical Disclosure Bulletin, Vol. 30, No. 9, Febr. 1988, S. 8-10 *
IBM Technical Disclosure Bulletin, Vol. 31, No. 1, June 1988, S. 219-225 *

Also Published As

Publication number Publication date
GB2269921B (en) 1996-01-03
GB9313133D0 (en) 1993-08-11
US5412806A (en) 1995-05-02
GB2269921A (en) 1994-02-23
DE4323947A1 (de) 1994-02-24
JPH06195382A (ja) 1994-07-15
GB9316517D0 (en) 1993-09-22

Similar Documents

Publication Publication Date Title
DE4323947C2 (de) Verfahren zum Steuern von Datenbankabfragen in einem heterogenen, verteilten Datenbanksystem
DE60035432T2 (de) System zur verwaltung der rdbm fragmentierungen
DE60022152T2 (de) Parallele optimierte Ereignisauslösung in parallelen Datenbanksystemen
DE69533786T2 (de) Vorrichtung zum Erzeugen von objektorientierten Schnittstellen für relationale Datenbanken und von dieser Vorrichtung durchgeführtes Verfahren
DE60130475T2 (de) Durchführung von kalkulationen eines tabellenkalkulationstyps in einem datenbanksystem
DE60224432T2 (de) Dynamische und automatische speicherverwaltung
DE60004385T2 (de) Verfahren und systeme um olap hierarchien zusammenfassbar zu machen
DE60124657T2 (de) Reduzierung von Ausschlusskonflikten in SQL-Transaktionen
DE69736748T2 (de) Editierumgebung für objektmodelle und verfahren zu deren anwendung
DE112020000749T5 (de) Indexerstellung für sich entwickelnde umfangreiche Datensätze in Hybriden Transaktions- und Analysenverarbeitungssystemen mit mehreren Mastern
US8086598B1 (en) Query optimizer with schema conversion
DE60036303T2 (de) Methode und modell für dynamische anfragen
US8108415B2 (en) Query transformation
DE10028688B4 (de) Methode, System und Programm für eine Verbindungsoperation in einer mehrspaltigen Tabelle sowie in Satellitentabellen mit doppelten Werten
US7171399B2 (en) Method for efficient query execution using dynamic queries in database environments
DE60208778T2 (de) Datenstruktur für informationssysteme
DE202011110124U1 (de) Hybridabfrageausführungsplan
US20080033914A1 (en) Query Optimizer
US6748393B1 (en) Transparent updates to partitioned views in a federated database system
DE202020005722U1 (de) Platzierung von adaptiven Aggregationsoperatoren und- Eigenschaften in einem Abfrageplan
DE10039537A1 (de) Verbesserung der mehrdimensionalen Umstrukturierung beim Hinzufügen oder Entfernen von Dimensionen und Dimensionsmitgliedern
DE19513308A1 (de) Dreidimensionales Dateisystem unter Verwendung einer virtuellen Knotenarchitektur
DE10103574A1 (de) Aggregierte Prädikate und Suche in einem Datenbankverwaltungssystem
DE69935657T2 (de) Verfahren und gerät zum optimieren der querygenerierung durch selektives verwenden von zusätzen oder schlüsselwerten
CH658329A5 (de) Verfahren zur steuerung des daten-zugriffes in einer datenbank und apparat zu seiner durchfuehrung.

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee