DE10063514A1 - Verwendung einer gespeicherten Prozedur zum Zugriff auf Indexkonfigurationsdaten in einem fernen Datenbankverwaltungssystem - Google Patents

Verwendung einer gespeicherten Prozedur zum Zugriff auf Indexkonfigurationsdaten in einem fernen Datenbankverwaltungssystem

Info

Publication number
DE10063514A1
DE10063514A1 DE10063514A DE10063514A DE10063514A1 DE 10063514 A1 DE10063514 A1 DE 10063514A1 DE 10063514 A DE10063514 A DE 10063514A DE 10063514 A DE10063514 A DE 10063514A DE 10063514 A1 DE10063514 A1 DE 10063514A1
Authority
DE
Germany
Prior art keywords
management system
database
database management
index
workload
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.)
Withdrawn
Application number
DE10063514A
Other languages
English (en)
Inventor
Jun Hall
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE10063514A1 publication Critical patent/DE10063514A1/de
Withdrawn 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • 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/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Abstract

Ein Indexberater gibt eine optimale Indexkonfiguration zur Verwendung bei der Ausführung von Workloads in einer von einem Datenbankverwaltungssystem verwalteten Datenbank an. Wenn die Datenbank und das Datenbanksystem sich nicht am gleichen Ort befinden wie der Indexberater, ruft der Indexberater eine gespeicherte Prozedur im Datenbankverwaltungssystem auf, um Informationen zur optimalen Indexkonfiguration zu erhalten.

Description

HINTERGRUND DER ERFINDUNG 1. Gegenstand der Erfindung
Die vorliegende Erfindung betrifft allgemein Programmentwicklungsumgebungen und speziell die Verwendung einer gespeicherten Prozedur zum Zugriff auf Indexkonfigurationsdaten in einem fernen relationalen Datenbankverwaltungssystem.
2. Stand der Technik
Computersysteme mit relationalen Datenbankverwaltungssystemen (Relational DataBase Management Systems - RDBMS) unter Verwendung einer SQL-Schnittstelle (Structured Query Language - Strukturierte Abfragesprache) sind in Fachkreisen bekannt. Die SQL-Schnittstelle hat sich zu einer Standardsprache für RDBMS entwickelt und wurde als solche sowohl vom American National Standards Institute (ANSI) als auch von der International Standards Organization (ISO) angenommen.
Indizes werden häufig verwendet, um die Leistungsfähigkeit eines RDBMS bei der Ausführung von SQL-Anweisungen zu steigern. Für jede Tabelle, auf die in einer SQL-Anweisung verwiesen wird, muss, falls kein Index für die Tabelle existiert, eine Tabellensuche durchgeführt werden. Wenn hingegen ein Index vorhanden ist, wird dieser zur Verwendung ausgewählt, falls die RDBMS-Optimierungsfunktion zu der Einschätzung gelangt, dass eine Indexsuche schneller geht als eine Tabellensuche.
Indexdateien sind in der Regel kleiner und können schneller durchsucht werden als eine ganze Tabelle. Außerdem kann es sein, dass gar nicht der gesamte Index durchsucht werden muss. Die auf den Index angewendeten Prädikate reduzieren die Anzahl der Zeilen, die aus der Tabelle gelesen werden müssen.
In der Regel kann ein Benutzer nicht steuern, ob das RDBMS bei der Ausführung von SQL-Anweisungen einen Index benutzt. Der RDBMS-Optimierer trifft diese Entscheidung anhand der verfügbaren Tabellen- und Indexinformationen.
Der Benutzer kann aber in dem Prozess eine wichtige Rolle spielen, indem er eine Konfiguration von Indizes zu den Zieltabellen einer Abfrage erstellt, ändert oder löscht, die die vom RDBMS-Optimierer ausgeführten Aktionen beeinflusst. Die Indexkonfiguration sollte deshalb sorgfältig ausgewählt werden, so dass sie den Anforderungen einer Anwendung entspricht.
Um festzustellen, ob in einem bestimmten Satz von SQL- Anweisungen ein Index verwendet werden soll, stellen RDBMS- Anbieter verschiedene Dienstprogramme zur Verfügung. Es ist bekannt, dass es Dienstprogramme gibt, die dem Benutzer Empfehlungen geben, was für Indizes sie für die optimale Leistung im RDBMS erstellen sollten. In der Regel erstellen solche Dienstprogramme sogar die Indizes, falls der Benutzer den entsprechenden Befehl erteilt.
Ein Problem taucht aber dann auf, wenn die Dienstprogramme von einem RDBMS ausgeführt werden, das nicht das RDBMS ist, für das die Empfehlungen gewünscht werden. Normalerweise können die Dienstprogramme keine Empfehlungen für ferne Datenbanken geben, da sie nicht auf die Informationen zugreifen können, die für solche Empfehlungen notwendig sind. In Fachkreisen ist deshalb ein Mechanismus gefragt, der die nötigen Informationen über ferne Datenbanken einem Dienstprogramm zur Verfügung stellt, das den Benutzern Empfehlungen zur optimalen Indexkonfiguration gibt.
ÜBERBLICK ÜBER DIE ERFINDUNG
Um die genannten Beschränkungen des Stands der Technik und andere Einschränkungen, die beim Lesen und Verständnis der vorliegenden Spezifikation deutlich werden, zu überwinden, offenbart die vorliegende Erfindung ein Verfahren, eine Vorrichtung und einen Herstellungsartikel zur Ausführung eines Indexberaters, der eine optimale Indexkonfiguration zur Verwendung bei Arbeiten in einer von einem Datenbankverwaltungssystem verwalteten Datenbank angibt. Wenn die Datenbank und das Datenbanksystem sich nicht am gleichen Ort befinden wie der Indexberater, ruft der Indexberater eine gespeicherte Prozedur im Datenbankverwaltungssystem auf, um Informationen zur optimalen Indexkonfiguration zu erhalten.
KURZBESCHREIBUNG DER ZEICHNUNGEN
In allen Zeichnungen werden für gleiche Teile die gleichen Bezugszeichen verwendet. Die Zeichnungen haben folgenden Inhalt:
Fig. 1 zeigt eine exemplarische Computerhardware-Umgebung, die in Verbindung mit der bevorzugten Ausführungsform der vorliegenden Erfindung verwendet werden kann;
Fig. 2 ist ein Blockdiagramm der Struktur einer Workload- Tabelle gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung; und
Fig. 3 ist ein Flussdiagramm der vom Indexberater ausgeführten Schritte und der gespeicherten Prozedur gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung.
AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
In der folgenden Beschreibung der bevorzugten Ausführungsform wird auf die beigefügten Zeichnungen Bezug genommen, die Bestandteil des vorliegenden Dokuments sind und in denen exemplarisch eine spezielle Ausführungsform beschrieben wird, in der die Erfindung realisiert werden kann. Selbstverständlich können auch andere Ausführungsformen verwendet werden, und es können strukturelle und funktionale Änderungen vorgenommen werden, ohne den Schutzumfang der vorliegenden Information zu verlassen.
ÜBERBLICK
Ein relationales Datenbankverwaltungssystem (RDBMS) enthält einen "Indexberater", der eine optimale Indexkonfiguration zur Verwendung bei der Ausführung von Operationen in einer vom RDBMS verwalteten relationalen Datenbank angibt. Wenn aber ein lokales RDBMS Operationen in einer fernen relationalen Datenbank, die von einem fernen RDBMS verwaltet wird, ausführen soll, benötigt der Indexberater Informationen aus dem fernen RDBMS. Die vorliegende Erfindung bietet einen Mechanismus für das lokale RDBMS, mit dem es solche Informationen mit Hilfe einer vom fernen RDBMS ausgeführten gespeicherten Prozedur aus dem fernen RDBMS abrufen kann.
HARDWARE- UND SOFTWAREUMGEBUNG
Fig. 1 ist ein Blockdiagramm, in dem eine exemplarische Hardware-Umgebung dargestellt ist, in der die bevorzugte Ausführungsform der Erfindung implementiert ist. In der exemplarischen Hardware-Umgebung ist eine Client/Server- Architektur dargestellt, die aus einem Server (d. h. einem fernen Computer) 102 und einem damit verbundenen Client (d. h. einem lokalen Computer) 100 besteht. Sowohl der Client-Computer 100 als auch der Server-Computer 102 können u. a. Prozessoren, Arbeitsspeicher (RAM), Festwertspeicher (ROM), Tastatur, Bildschirm, fest eingebaute und/oder herausnehmbare Datenspeichervorrichtungen und Datenübertragungsvorrichtungen besitzen. Dem Fachmann ist klar, dass in Verbindung mit dem Client-Computer 100 und dem Server-Computer 102 jegliche Kombination der genannten Komponenten oder jegliche Anzahl verschiedener Komponenten, Peripheriegeräten und anderer Vorrichtungen Verwendung finden kann. Ferner ist dem Fachmann klar, dass die vorliegende Erfindung nicht nur in einem Computernetzwerk, sondern auch auf einem Einzelcomputer implementiert werden kann.
In dem in Fig. 1 dargestellten Beispiel verwaltet ein Client-RDBMS (d. h. ein lokales RDBMS) 104, das vom Client- Computer 100 ausgeführt wird, eine (lokale) relationale Datenbank 106, die auf dem Client-Computer 100 gespeichert ist. Entsprechend verwaltet ein Server-RDBMS (d. h. ein fernes RDBMS) 108, das vom Server-Computer 102 ausgeführt wird, ein (fernes) relationales Datenbanksystem 110, das auf dem Server-Computer 102 gespeichert ist. Ferner arbeiten das Client-RDBMS 104 und das Server-RDBMS 108 so zusammen, dass jedes System Daten und/oder Abfragen des anderen Systems benutzen kann. In der bevorzugten Ausführungsform der vorliegenden Erfindung umfasst das RDBMS 104, 108 die Datenbank DataBase 2 (DB2™), ein Produkt der IBM Corporation. Dem Fachmann ist aber klar, dass die vorliegende Erfindung auf jedes RDBMS und auch auf viele andere Datenbankverwaltungssysteme Anwendung finden kann.
In der Regel umfasst das RDBMS 104, 108 eine Logik und/oder Daten, die in einer Vorrichtung, auf einem Medium oder einem Träger, z. B. einem fest eingebauten oder herausnehmbaren Datenspeicher, einer durch eine Übertragungsvorrichtung verbundenen fernen Vorrichtung usw. verkörpert oder dadurch zugänglich sind. Ferner bewirken diese Logik und/oder Daten, wenn sie vom Computer gelesen, ausgeführt und/oder interpretiert werden, dass der Computer die zur Implementierung und/oder Verwendung der vorliegenden Erfindung notwendigen Schritte ausführt.
Die vorliegende Erfindung kann also als Verfahren, Vorrichtung oder Herstellungsartikel mit Standardprogrammierungsverfahren und/oder üblichen Verfahren zur Herstellung von Software, Firmware, Hardware oder einer Kombination daraus implementiert werden. Der Begriff "Herstellungsartikel" oder alternativ "Computerprogrammträger" soll im vorliegenden Dokument Logik oder Instruktionen, die von einer vom Computer lesbaren Vorrichtung, einem Träger oder Speichermedium aus zugänglich sind, bezeichnen.
Der Fachmann kann sich natürlich viele Abwandlungen dieser Konfiguration vorstellen, ohne den Schutzumfang der vorliegenden Erfindung zu überschreiten. Dem Fachmann leuchtet beispielsweise ein, dass jede Kombination der genannten Komponenten oder jede Anzahl verschiedener Komponenten einschließlich verschiedener Computerprogramme, Peripheriegeräte und sonstiger Vorrichtungen zur Implementierung der vorliegenden Erfindung verwendet werden kann, solange dadurch ähnliche Funktionen ausgeführt werden.
INDEXBERATER
In der vorliegenden Erfindung enthält das Client-RDBMS 104 einen Indexberater 112, der einem Benutzer eine Empfehlung zur optimalen Indexkonfiguration für einen bezeichneten Satz von SQL-Anweisungen erteilt. Der Indexberater 112 bietet eine grafische Benutzerschnittstelle (GUI) und arbeitet als "Assistent", so wie dieser Begriff in der Computerbranche verwendet wird. Bei der Verwendung des Indexberaters 112 wird der bezeichnete Satz von SQL-Anweisungen als "Workload" bezeichnet und in einer Workload-Tabelle 114 gespeichert. Der Indexberater 112 analysiert die Workload in Verbindung mit einem bezeichneten Satz von Zieltabellen 116, um eine optimale Indexkonfiguration zu ermitteln.
Ein Problem taucht aber dann auf, wenn der Indexberater 112 des Client-RDBMS 104 mit Zieltabellen 118 verwendet wird, die nicht in der vom Client-RDBMS 104 verwalteten lokalen relationalen Datenbank, sondern in der fernen relationalen Datenbank 110, die vom Server-RDBMS 108 verwaltet wird, gespeichert sind. Nach dem Stand der Technik konnte ein vom Client-RDBMS 104 ausgeführter Indexberater 112 bei Zieltabellen 118 in der fernen relationalen Datenbank 110 des Server-RDBMS 108 nicht funktionieren. Die vorliegende Erfindung hingegen bietet eine Lösung für dieses Problem, indem die notwendigen Informationen vom Server-RDBMS 108 an das Client-RDBMS 104 übermittelt werden, so dass der Indexberater 112 des Client-RDBMS 104 eine Liste von Empfehlungen für Indexkonfigurationen auf dem Server-RDBMS 108 anbieten kann.
Gemäß der bevorzugten Ausführungsform führt der Indexberater 112 des Client-RDBMS 104 einen Benutzer durch die folgenden Schritte.
  • 1. Einführung - Dieser Schritt führt den Benutzer in den Indexberater 112 ein, indem Text angezeigt wird und die Namen der relationalen Datenbanken 106, 110 aufgelistet werden.
  • 2. Workload - In diesem Schritt kann der Benutzer Informationen zu einer "Workload" angeben. Eine Workload umfasst in der Regel mindestens eine SQL-Anweisung und oft einen Satz zusammengehöriger SQL-Anweisungen. Als Unterfunktionen dieses Schrittes kann der Benutzer eine bereits existierende Workload auswählen, eine neue erstellen, den Inhalt einer Workload verändern, eine Workload erfassen usw.
  • 3. Grenzen - In diesem Schritt kann der Benutzer Informationen über Grenzen für die ausgewählte Workload angeben. In der Regel gibt es Grenzen für den Speicherplatz, der für die Indizierung zur Verfügung gestellt werden soll, für die maximale Dauer der Berechnungen usw. Dem Fachmann ist klar, dass in diesem Schritt beliebig viele verschiedene Grenzen angegeben werden können.
  • 4. Ziele definieren - In diesem Schritt kann der Benutzer das gewünschte RDBMS 104, 108 angeben, wo der Indexberater 112 seine Funktionen mit Hilfe der Tabellen 116, 118 ausführen kann. Der Benutzer kann die Zieltabellen 116, 118 erstellen, indem er Informationen aus dem RDBMS 104, 108, für das Indexempfehlungen gewünscht werden, extrahiert, oder indem er die vorhandenen Zieltabellen 116, 118 verwendet, falls diese bereits erstellt worden sind. Wenn der Indexberater 112 des Client-RDBMS 104 Zieltabellen 118 in der fernen relationalen Datenbank 110 des Server-RDBMS 108 identifiziert, muss eine Workload vom Server 108 abgerufen werden, und als Resultat wird eine gespeicherte Prozedur 120 im Server RDBMS 108 gestartet, um die notwendigen Informationen für den Indexberater 112 abzurufen. Normalerweise erstellt diese gespeicherte Prozedur 120 auf dem Server-RDBMS 108 eine Workload-Tabelle 122 und speichert dann die SQL-Anweisungen der Workload in der Workloadtabelle 122. Oft werden diese SQL-Anweisungen aus einem vom Server- RDBMS 108 verwalteten Cache abgerufen.
Dann kann der Indexberater 112 SELECT-Anweisungen an der Workload-Tabelle 122 auf dem Server-RDBMS 108 ausführen, und er führt INSERT-Anweisungen aus, um Daten in die Workload- Tabelle 114 auf dem Client-RDBMS 106 zu kopieren, wo sie vom Indexberater 112 benutzt werden können.
Ferner kann der Indexberater 112 danach SELECT-Anweisungen an einem Katalog in der fernen relationalen Datenbank 110 auf dem Server-RDBMS 108 ausführen, um SQL-Anweisungen zu erstellen, die die Umgebung neu erstellen, die der Indexberater 112 benötigt, um seine Funktionen auf dem Client-RDBMS 104 auszuführen. Wie im folgenden zu sehen sein wird, werden mehrere verschiedene Typen von SQL-Anweisungen generiert.
Zuerst prüft die gespeicherte Prozedur 120 die vom Server- RDBMS 108 verwaltete ferne relationale Datenbank 110, um CREATE TABLE- CREATE INDEX- und CREATE VIEW-Anweisungen zu generieren, die dann auf dem Client-RDBMS 104 ausgeführt werden. Diese Anweisungen erstellen in der vom Client-RDBMS 104 verwalteten lokalen relationalen Datenbank 106 Zieltabellen 116, die den Zieltabellen 118 in der vom Server-RDBMS 108 verwalteten fernen relationalen Datenbank 110 gleichen. Es sei darauf hingewiesen, dass die CREATE- Anweisungen die Struktur der Zieltabellen 118 aus der vom Server-RDBMS 108 verwalteten fernen relationalen Datenbank 110 in die Zieltabellen in der vom Client-RDBMS 104 verwalteten lokalen relationalen Datenbank 106 kopieren, ohne dass die eigentlichen Daten der Zieltabellen 118 kopiert werden. Zweitens kann der Indexberater 112 SELECT- Anweisungen an das Server-RDBMS 110 erteilen, die Statistiken im Katalog des Server-RDBMS 108 prüfen und UPDATE-Anweisungen generieren, die dann im Client-RDBMS 104 ausgeführt werden. Die UPDATE-Anweisungen kopieren Statistiken im Katalog des Server-RDBMS 108, um Statistiken im Katalog des Client-RDBMS 108 zu aktualisieren.
Es ist zu beachten, dass die gespeicherte Prozedur 120 sowohl die Struktur als auch die Daten der ausgewählten Workload-Tabelle 122 aus der vom Server-RDBMS 108 verwalteten fernen relationalen Datenbank 110 in die Workload-Tabelle 114 in der vom Client-RDBMS 104 verwalteten lokalen relationalen Datenbank 106 kopiert.
Schließlich kann der Indexberater 112 auch einige der Betriebs- oder Umgebungsparameter der lokalen relationalen Datenbank 106 und/oder des Client-RDBMS 104 ändern, so dass sie besser zu der fernen relationalen Datenbank 110 und dem Server-RDBMS 108 passen.
  • 1. Berechnen - In diesem Schritt wird die eigentliche Funktion des Indexberaters 112 ausgeführt. Anhand der vom Benutzer angegebenen und aus den Zieltabellen 116, 118 ausgelesenen Informationen führt der Indexberater 112 Berechnungen in mehreren Durchgängen aus, wobei er die Workload-Tabellen 114, 122 benutzt, um mindestens eine Indexkonfigurationsempfehlung für die Zieltabellen 116, 118 vorzuschlagen. Diese in mehreren Durchgängen ausgeführten Berechnungen werden im Folgenden ausführlicher beschrieben.
In Durchgang 1 werden alle Indizes generiert. Für jede in der Workload angegebene SQL-Anweisung wird eine spezielle EXPLAIN-Operation ausgeführt, in der angefordert wird, dass ein Optimierer des RDBMS 104, 108 alle interessanten Indexkonfigurationen generiert, die für die Workload möglicherweise gewünscht werden. Nach der EXPLAIN-Operation bestehen die Ergebnisse aus einer Liste der Indizes, die von dieser Anweisung benutzt werden können, sowie einer Angabe der geschätzten Kosten für diese Anweisung. Wenn alle Indizes verarbeitet worden sind, verfügt die Berechnungsfunktion über eine Liste aller gewünschten Indizes. Außerdem werden die geschätzten Kosten für jede SQL-Anweisung mit der Gewichtung (WEIGHT) dieser SQL- Anweisung multipliziert, um die Gesamt-Workload-Kosten für diesen Durchgang zu berechnen.
Zwischen den Durchgängen prüft der Berechnungsschritt den Satz verfügbarer Indizes, die vom Benutzer festgelegten Grenzen und die Workload-Kostenabschätzung. Dann wird festgestellt, ob ein weiterer Durchgang stattfinden soll, oder ob die Berechnung abgeschlossen ist. Falls ein weiterer Durchgang erforderlich ist, prüft der Berechnungsschritt jeden der kompletten Sätze von tatsächlichen und gewünschten Indizes und versieht sie mit einer Markierung, ob sie im nächsten Durchgang berücksichtigt werden sollten.
In einem weiteren Durchgang N betrachtet der Berechnungsschritt die spezielle Teilmenge der Indizes. Für jede SQL-Anweisung wird eine spezielle EXPLAIN-Operation ausgeführt, in der der Optimierer des RDBMS 104, 106 aufgefordert wird, die "markierten" Indizes bei der Zugriffspfadauswahl zu berücksichtigen. Nach der EXPLAIN- Operation bestehen die Ergebnisse aus einer Liste der Indizes, die tatsächlich benutzt wurden, sowie einer Angabe der geschätzten Kosten für diese Anweisung. Im Berechnungsschritt werden die geschätzten Kosten für jede SQL-Anweisung mit der Gewichtung für die betreffende SQL- Anweisung multipliziert, um die Gesamt-Workload-Kosten bei Verwendung der markierten Indizes zu berechnen. An dieser Stelle verzweigt der Berechnungsschritt zurück zu der Logik für die Verarbeitung "zwischen den Durchgängen" und stellt fest, ob der Schritt abgeschlossen ist, oder ob ein weiterer Durchgang N ausgeführt wird.
Der Berechnungsschritt kann eine Option zur sofortigen Durchführung der Berechnungen oder zur Planung der Berechnungen für eine spätere Ausführung enthalten. Ferner kann es eine Option zur Festlegung eines Zeitlimits für den Berechnungsschritt beim Versuch, die optimale Indexkonfiguration zu bestimmen, geben.
  • 1. Empfehlungen - Dieser Schritt zeigt die Ausgabeergebnisse der Berechnungen an. In der bevorzugten Ausführungsform zeigt der Indexberater 112 eine Liste mit einer oder mehreren Empfehlungen zur Indexkonfiguration für die Zieltabellen 116, 118 an. Optional ermöglicht der Indexberater 112 dem Benutzer die Auswahl einer oder mehrerer Empfehlungen aus der angezeigten Liste und die Erstellung der ausgewählten Indizes.
  • 2. Löschen - Dieser Schritt zeigt ebenfalls die Ausgabeergebnisse der Berechnungen an. Allerdings wird hier keine Liste von Empfehlungen zur Erstellung von Indizes für die Zieltabellen 116, 118 angezeigt, sondern der Indexberater 112 zeigt eine Liste mit einer oder mehreren Empfehlungen zum Löschen von Indizes an. Anschließend ermöglicht der Indexberater 112 dem Benutzer die Auswahl einer oder mehrerer Konfigurationen aus der angezeigten Liste und löscht dann die ausgewählten Indizes.
  • 3. Zusammenfassung - Dieser Schritt zeigt auch ein Skript an, das aus den vorhergehenden Schritten generiert wurde. Das Skript besteht aus den SQL-Anweisungen, die empfohlen und in den vorhergehenden Schritten vom Benutzer ausgewählt worden sind. Der Benutzer kann dieses Skript ausführen oder speichern.
WORKLOAD-TABELLE
In Fig. 2 ist die Struktur der Workload-Tabellen 114, 122 gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung dargestellt. Wie bereits erwähnt modelliert die Workload-Funktion von Schritt 2 mindestens eine SQL- Anweisung. In der bevorzugten Ausführungsform wird dieses Modell in einer Workload-Tabelle 114, 122 in den relationalen Datenbanken 106, 110 gespeichert. Dabei enthalten die Workload-Tabellen 114, 122 folgende Spalten:
WORKLOAD-NAME ZEICHEN (128) NICHT NULL (200) - Name der Workload.
STATEMENT-TEXT CLOB 64K NICHT NULL NICHT PROTOKOLLIERT (202) - SQL-Anweisung(en) für diese Workload.
STATEMENT-TAG ZEICHEN (256) (204) - Ein beliebiger Name für diese SQL-Anweisung.
HÄUFIGKEIT GANZZAHLIG NICHT NULL (206) - Eine Häufigkeit für die SQL-Anweisung, die zur Gewichtung für diese SQL- Anweisung beiträgt.
WICHTIGKEIT REAL NICHT NULL (208) - Eine Wichtigkeit für die SQL-Anweisung, die ebenfalls zur Gewichtung für diese SQL- Anweisung beiträgt.
GEWICHTUNG REAL NICHT NULL (210) - Eine Gewichtung für die SQL-Anweisung; dabei handelt es sich um ein Produkt aus der Häufigkeit und der Wichtigkeit (d. h. FREQUENCY * IMPORTANCE).
LOGIK DER BEVORZUGTEN AUSFÜHRUNGSFORM
Fig. 3 ist ein Flussdiagramm der Logik, die in der bevorzugten Ausführungsform der vorliegenden Erfindung abläuft.
Block 300 zeigt, wie der Indexberater 112 den Einführungsschritt ausführt, indem er Text anzeigt und die Namen der relationalen Datenbanken 106, 110 auflistet. Block 302 zeigt, wie der Indexberater 112 den Workload- Schritt ausführt, indem er dem Benutzer die Möglichkeit gibt, Informationen über eine Workload anzugeben.
Block 304 zeigt, wie der Indexberater 112 den Grenzenschritt ausführt, indem er dem Benutzer die Möglichkeit gibt, Informationen über Grenzen der ausgewählten Workload anzugeben.
Block 306 zeigt, wie der Indexberater 112 den Zieldefinitionsschritt ausführt, indem er dem Benutzer die Möglichkeit gibt, die Zieltabellen 116, 118 anzugeben, wo die eigentliche Abfrage ausgeführt wird.
Block 308 ist ein Entscheidungsblock, der zeigt, wie der Indexberater 112 feststellt, ob die Workload sich auf einem fernen System, d. h. auf dem Server-RDBMS 108, befindet. Wenn dies der Fall ist, geht es mit Block 310 weiter, andernfalls mit Block 320.
Block 310 zeigt, wie der Indexberater 112 die gespeicherte Prozedur 120 auf dem Server-RDBMS 108 aufruft, um auf dem Server-Computer 102 eine Workload-Tabelle 122 zu erstellen, indem er dynamische SQL-Anweisungen aus einem Cache im Server-RDBMS 108 speichert.
Block 312 zeigt, wie die gespeicherte Prozedur 120 die Anweisungen CREATE TABLE, CREATE INDEX und CREATE VIEW zum Erstellen der lokalen Zieltabellen 116 generiert, indem sie die vom Server-RDBMS 108 verwaltete ferne relationale Datenbank 110 prüft.
Block 314 zeigt, wie die gespeicherte Prozedur 120 UPDATE- Anweisungen generiert, um die Statistiken im Client-RDBMS 104 zu aktualisieren. Dazu prüft die Prozedur die Statistiken im Katalog der vom Server-RDBMS 108 verwalteten relationalen Datenbank 110.
Block 316 zeigt, wie die gespeicherte Prozedur 120 auf dem Server-RDBMS 108 die Workload-Tabelle 122 von der vom Server-RDBMS 108 verwalteten fernen relationalen Datenbank 110 in die Workload-Tabelle 114 in der vom Client-RDBMS 104 verwalteten lokalen relationalen Datenbank kopiert.
Block 318 zeigt, wie die gespeicherte Prozedur 120 auf dem Server-RDBMS 108 einige der Betriebs- oder Umgebungsparameter der lokalen relationalen Datenbank 106 und/oder des Client-RDBMS 104 ändert, so dass sie besser zur fernen relationalen Datenbank 110 und zum Server-RDBMS 108 passen.
Block 320 zeigt, wie der Indexberater 112 den Berechnungsschritt ausführt, um Empfehlungen zur Indexkonfiguration für die ausgewählten Zieltabellen 116, 118 zu geben.
Block 322 zeigt, wie der Indexberater 112 den Empfehlungsschritt ausführt, um die Ausgabeergebnisse der Berechnungen anzuzeigen.
Block 324 zeigt, wie der Indexberater 112 den Löschschritt ausführt, indem er Ausgabeergebnisse der Berechnungen anzeigt.
Schließlich zeigt Block 326, wie der Indexberater 112 den Zusammenfassungsschritt ausführt, indem er ein Skript ausführt, das aus den vorhergehenden Schritten generiert wurde.
SCHLUSSBEMERKUNG
Damit ist die Beschreibung der bevorzugten Ausführungsform der Erfindung abgeschlossen. Im folgenden werden einige alternative Ausführungsformen zur Realisierung der vorliegenden Erfindung beschrieben. So kann beispielsweise ein beliebiger Computertyp wie z. B. ein Großrechner, ein Minicomputer oder ein PC in Verbindung mit der Erfindung verwendet werden. Alternative Ausführungsformen können andere Komponenten, andere Sprachen, andere Schritte oder andere Sequenzen beinhalten. Außerdem können viele Datenbankverwaltungssysteme von der vorliegenden Erfindung profitieren.
Zusammenfassend lässt sich sagen, dass die vorliegende Erfindung ein Verfahren, eine Vorrichtung und einen Herstellungsartikel zur Ausführung eines Indexberaters, der eine optimale Indexkonfiguration zur Verwendung bei der Ausführung von Workloads in einer von einem Datenbankverwaltungssystem verwalteten Datenbank offenbart. Wenn die Datenbank und das Datenbanksystem sich nicht am gleichen Ort befinden wie der Indexberater, ruft der Indexberater eine gespeicherte Prozedur im Datenbankverwaltungssystem auf, um Informationen zur optimalen Indexkonfiguration zu erhalten.
Die obige Beschreibung der bevorzugten Ausführungsform der Erfindung wurde zum Zweck der Illustration und Beschreibung gegeben. Sie soll nicht vollständig sein oder die Erfindung auf die beschriebene spezielle Form beschränken. Angesichts der obigen Lehre sind zahlreiche Abwandlungen und Variationen möglich. Der Schutzumfang der Erfindung soll nicht durch diese ausführliche Beschreibung, sondern durch die angefügten Ansprüche beschränkt werden.

Claims (24)

1. Eine auf einem Computer implementierte Vorrichtung zum Zugriff auf eine Datenbank, umfassend:
  • a) einen Computer; und
  • b) einen vom Computer ausgeführten Indexberater zur Angabe einer optimalen Indexkonfiguration zur Verwendung bei der Ausführung einer Workload in einer von einem Datenbankverwaltungssystem verwalteten Datenbank, wobei die Datenbank und das Datenbankverwaltungssystem fern vom Indexberater ausgeführt werden und der Indexberater eine gespeicherte Prozedur im Datenbankverwaltungssystem aufruft, um Informationen zur optimalen Indexkonfiguration abzurufen.
2. Die Vorrichtung nach Anspruch 1, wobei der Indexberater einem Benutzer die Möglichkeit gibt, Zieltabellen in der Datenbank anzugeben, an denen die Workload ausgeführt wird.
3. Die Vorrichtung nach Anspruch 1, wobei die Workload mindestens eine SQL-Anweisung umfasst.
4. Die Vorrichtung nach Anspruch 3, wobei die SQL- Anweisungen aus einem vom Datenbankverwaltungssystem verwalteten Cache abgerufen werden.
5. Die Vorrichtung nach Anspruch 3, wobei die gespeicherte Prozedur auf dem fernen Datenbankverwaltungssystem eine Workload-Tabelle erstellt und dann die SQL-Anweisungen in der Workload-Tabelle speichert.
6. Die Vorrichtung nach Anspruch 1, wobei die gespeicherte Prozedur eine oder mehrere Funktionen aus der aus folgenden Funktionen bestehenden Gruppe ausführt:
  • 1. einer Funktion zum Erstellen von Zieltabellen in einer von einem lokalen Datenbankverwaltungssystem verwalteten Datenbank, die den Zieltabellen in der vom fernen Datenbankverwaltungssystem verwalteten fernen Datenbank gleicht;
  • 2. einer Funktion zum Prüfen von Statistiken im fernen Datenbankverwaltungssystem und Aktualisieren des Katalogs im lokalen Datenbankverwaltungssystem;
  • 3. einer Funktion zum Kopieren der Workload-Tabelle aus der vom fernen Datenbankverwaltungssystem verwalteten fernen Datenbank in die Workload-Tabelle in der vom lokalen Datenbankverwaltungssystem verwalteten lokalen Datenbank; und
  • 4. einer Funktion zum Ändern eines oder mehrerer Betriebsparameter des lokalen Datenbankverwaltungssystems zum Angleichen an das ferne Datenbankverwaltungssystem.
7. Die Vorrichtung nach Anspruch 6, wobei die Erstellungsfunktion (1) eine Funktion zum Kopieren einer Struktur der Zieltabellen aus der fernen Datenbank in die lokale Datenbank ohne Kopieren der eigentlichen Daten in die Zieltabellen umfasst.
8. Die Vorrichtung nach Anspruch 6, wobei die Kopierfunktion (3) eine Funktion zum Kopieren sowohl der Struktur der Workload-Tabelle als auch der in der Workload-Tabelle gespeicherten Daten aus der fernen Datenbank in die lokale Datenbank umfasst.
9. Ein auf einem Computer implementiertes Verfahren zum Zugriff auf eine Datenbank, umfassend:
  • a) Ausführen eines Indexberaters in einem Computer, wobei der Indexberater eine optimale Indexkonfiguration zur Verwendung bei der Ausführung einer Workload in einer von einem Datenbankverwaltungssystem verwalteten Datenbank angibt, wobei die Datenbank und das Datenbankverwaltungssystem fern vom Indexberater ausgeführt werden und der Indexberater eine gespeicherte Prozedur im Datenbankverwaltungssystem aufruft, um Informationen zur optimalen Indexkonfiguration abzurufen.
10. Das Verfahren nach Anspruch 9, wobei der Indexberater einem Benutzer die Möglichkeit gibt, Zieltabellen in der Datenbank anzugeben, an denen die Workload ausgeführt wird.
11. Das Verfahren nach Anspruch 9, wobei die Workload mindestens eine SQL-Anweisung umfasst.
12. Das Verfahren nach Anspruch 11, wobei die SQL- Anweisungen aus einem vom Datenbankverwaltungssystem verwalteten Cache abgerufen werden.
13. Das Verfahren nach Anspruch 11, wobei die gespeicherte Prozedur auf dem fernen Datenbankverwaltungssystem eine Workload-Tabelle erstellt und dann die SQL-Anweisungen in der Workload-Tabelle speichert.
14. Das Verfahren nach Anspruch 9, wobei die gespeicherte Prozedur eine oder mehrere Funktionen aus der aus folgenden Funktionen bestehenden Gruppe ausführt:
  • 1. einer Funktion zum Erstellen von Zieltabellen in einer von einem lokalen Datenbankverwaltungssystem verwalteten Datenbank, die den Zieltabellen in der vom fernen Datenbankverwaltungssystem verwalteten fernen Datenbank gleicht;
  • 2. einer Funktion zum Prüfen von Statistiken im fernen Datenbankverwaltungssystem und Aktualisieren des Katalogs im lokalen Datenbankverwaltungssystem;
  • 3. einer Funktion zum Kopieren der Workload-Tabelle aus der vom fernen Datenbankverwaltungssystem verwalteten fernen Datenbank in die Workload-Tabelle in der vom lokalen Datenbankverwaltungssystem verwalteten lokalen Datenbank; und
  • 4. einer Funktion zum Ändern eines oder mehrerer Betriebsparameter des lokalen Datenbankverwaltungssystems zum Angleichen an das ferne Datenbankverwaltungssystem.
15. Das Verfahren nach Anspruch 14, wobei die Erstellungsfunktion (1) eine Funktion zum Kopieren einer Struktur der Zieltabellen aus der fernen Datenbank in die lokale Datenbank ohne Kopieren der eigentlichen Daten in die Zieltabellen umfasst.
16. Das Verfahren nach Anspruch 14, wobei die Kopierfunktion (3) eine Funktion zum Kopieren sowohl der Struktur der Workload-Tabelle als auch der in der Workload-Tabelle gespeicherten Daten aus der fernen Datenbank in die lokale Datenbank umfasst.
17. Ein Herstellungsartikel, der die Logik zur Ausführung eines Verfahrens zum Zugriff auf eine Datenbank verkörpert, umfassend:
  • a) Ausführen eines Indexberaters in einem Computer, wobei der Indexberater eine optimale Indexkonfiguration zur Verwendung bei der Ausführung einer Workload in einer von einem Datenbankverwaltungssystem verwalteten Datenbank angibt, wobei die Datenbank und das Datenbankverwaltungssystem fern vom Indexberater ausgeführt werden und der Indexberater eine gespeicherte Prozedur im Datenbankverwaltungssystem aufruft, um Informationen zur optimalen Indexkonfiguration abzurufen.
18. Das Verfahren nach Anspruch 17, wobei der Indexberater einem Benutzer die Möglichkeit gibt, Zieltabellen in der Datenbank anzugeben, an denen die Workload ausgeführt wird.
19. Das Verfahren nach Anspruch 17, wobei die Workload mindestens eine SQL-Anweisung umfasst.
20. Das Verfahren nach Anspruch 19, wobei die SQL- Anweisungen aus einem vom Datenbankverwaltungssystem verwalteten Cache abgerufen werden.
21. Das Verfahren nach Anspruch 19, wobei die gespeicherte Prozedur auf dem fernen Datenbankverwaltungssystem eine Workload-Tabelle erstellt und dann die SQL-Anweisungen in der Workload-Tabelle speichert.
22. Das Verfahren nach Anspruch 17, wobei die gespeicherte Prozedur eine oder mehrere Funktionen aus der aus folgenden Funktionen bestehenden Gruppe ausführt:
  • 1. einer Funktion zum Erstellen von Zieltabellen in einer von einem lokalen Datenbankverwaltungssystem verwalteten Datenbank, die den Zieltabellen in der vom fernen Datenbankverwaltungssystem verwalteten fernen Datenbank gleicht;
  • 2. einer Funktion zum Prüfen von Statistiken im fernen Datenbankverwaltungssystem und Aktualisieren des Katalogs im lokalen Datenbankverwaltungssystem;
  • 3. einer Funktion zum Kopieren der Workload-Tabelle aus der vom fernen Datenbankverwaltungssystem verwalteten fernen Datenbank in die Workload-Tabelle in der vom lokalen Datenbankverwaltungssystem verwalteten lokalen Datenbank; und
  • 4. einer Funktion zum Ändern eines oder mehrerer Betriebsparameter des lokalen Datenbankverwaltungssystems zum Angleichen an das ferne Datenbankverwaltungssystem.
23. Das Verfahren nach Anspruch 22, wobei die Erstellungsfunktion (1) eine Funktion zum Kopieren einer Struktur der Zieltabellen aus der fernen Datenbank in die lokale Datenbank ohne Kopieren der eigentlichen Daten in die Zieltabellen umfasst.
24. Das Verfahren nach Anspruch 22, wobei die Kopierfunktion (3) eine Funktion zum Kopieren sowohl der Struktur der Workload-Tabelle als auch der in der Workload-Tabelle gespeicherten Daten aus der fernen Datenbank in die lokale Datenbank umfasst.
DE10063514A 2000-01-04 2000-12-20 Verwendung einer gespeicherten Prozedur zum Zugriff auf Indexkonfigurationsdaten in einem fernen Datenbankverwaltungssystem Withdrawn DE10063514A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/477,463 US6934701B1 (en) 2000-01-04 2000-01-04 Using a stored procedure to access index configuration data in a remote database management system

Publications (1)

Publication Number Publication Date
DE10063514A1 true DE10063514A1 (de) 2001-11-22

Family

ID=23896010

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10063514A Withdrawn DE10063514A1 (de) 2000-01-04 2000-12-20 Verwendung einer gespeicherten Prozedur zum Zugriff auf Indexkonfigurationsdaten in einem fernen Datenbankverwaltungssystem

Country Status (2)

Country Link
US (1) US6934701B1 (de)
DE (1) DE10063514A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7130841B1 (en) * 2001-07-31 2006-10-31 America Online, Inc. Enabling a search for both local and remote electronic content
US20050138015A1 (en) * 2003-09-06 2005-06-23 Oracle International Corporation High load SQL driven statistics collection
US7406477B2 (en) * 2004-03-12 2008-07-29 Sybase, Inc. Database system with methodology for automated determination and selection of optimal indexes
US7873606B2 (en) * 2004-08-24 2011-01-18 Oracle International Corporation Advisor framework, systems, methods and software for implementing the same
US20070038662A1 (en) * 2005-08-04 2007-02-15 Peter Bendel Method and system for managing external routines in a database management system
US8204898B2 (en) * 2007-02-02 2012-06-19 Telefonaktiebolaget L M Ericsson (Publ) Multi-site common directory and method for using the multi-site common directory
US8990169B2 (en) * 2007-08-31 2015-03-24 International Business Machines Corporation Statistics collection for database tables
US8458167B2 (en) * 2009-04-01 2013-06-04 International Business Machines Corporation Client-based index advisor
US8161017B2 (en) * 2009-04-03 2012-04-17 International Business Machines Corporation Enhanced identification of relevant database indices
US8499001B1 (en) * 2009-11-25 2013-07-30 Quest Software, Inc. Systems and methods for index selection in collections of data

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5539427A (en) 1992-02-10 1996-07-23 Compaq Computer Corporation Graphic indexing system
US5583763A (en) 1993-09-09 1996-12-10 Mni Interactive Method and apparatus for recommending selections based on preferences in a multi-user system
US5483651A (en) 1993-12-03 1996-01-09 Millennium Software Generating a dynamic index for a file of user creatable cells
JP3573501B2 (ja) 1994-10-11 2004-10-06 富士通株式会社 索引作成装置
CA2176165A1 (en) 1995-05-19 1996-11-20 Hosagrahar Visvesvaraya Jagadish Method for querying incrementally maintained transactional databases
US5913206A (en) * 1997-08-15 1999-06-15 Microsoft Corporation Database system multi-column index selection for a workload
US6321235B1 (en) * 1998-09-29 2001-11-20 International Business Machines Corporation Global caching and sharing of SQL statements in a heterogeneous application environment
US6321218B1 (en) * 1999-02-24 2001-11-20 Oracle Corporation Automatically determining data that is best suited for index tuning

Also Published As

Publication number Publication date
US6934701B1 (en) 2005-08-23

Similar Documents

Publication Publication Date Title
EP1088280B1 (de) Verfahren und system zur schnellen speicherresidenten verarbeitung von transaktionsdaten
DE60022152T2 (de) Parallele optimierte Ereignisauslösung in parallelen Datenbanksystemen
DE60130475T2 (de) Durchführung von kalkulationen eines tabellenkalkulationstyps in einem datenbanksystem
DE69736748T2 (de) Editierumgebung für objektmodelle und verfahren zu deren anwendung
DE69910219T2 (de) Transformation der perspektive auf tabellen von relationalen datenbanken
DE202011110124U1 (de) Hybridabfrageausführungsplan
DE69906488T2 (de) Verfahren zur Synchronisierung eines Datenbankschemas mit seiner Darstellung in einem objekt-orientierten Repository
DE10039537A1 (de) Verbesserung der mehrdimensionalen Umstrukturierung beim Hinzufügen oder Entfernen von Dimensionen und Dimensionsmitgliedern
DE60035432T2 (de) System zur verwaltung der rdbm fragmentierungen
DE102013206281A1 (de) Optimieren von zerstreuten schemalosen Daten in relationalen Speichern
DE10040987B4 (de) Verfahren und Vorrichtung für übereinstimmende Aktualisierungen von redundanten Daten in relationalen Datenbanken
DE602005002062T2 (de) Optimierung der Sperrgranularität mittels Bereichssperren
DE102005028675A1 (de) Aktualisierungs- und Transformationssystem für strukturierte Daten
WO2002021327A2 (de) Verfahren und computerprogramm zur erzeugung von dateien für ein datenbanksystem für ein betriebswirtschaftliches anwendungsprogramm
DE102008006648A1 (de) Simulatorentwicklungssystem und Simulatorentwicklungsverfahren
DE10063514A1 (de) Verwendung einer gespeicherten Prozedur zum Zugriff auf Indexkonfigurationsdaten in einem fernen Datenbankverwaltungssystem
DE10048941A1 (de) Zeitdiagramm-Compiler und Laufzeitumgebung für die interaktive Erzeugung von ausführbaren Testprogrammen zur Logiküberprüfung
DE19534819A1 (de) Verfahren und Vorrichtung zum Konfigurieren einer Datenbank
DE60223546T2 (de) Verfahren und system zur neuorganisierung eines "tablespace" in einer datenbank
DE10056765A1 (de) Generieren von Statistiken für Datenbankabfragen mit Hilfe von Tensordarstellungen
EP1064606B1 (de) Datenverarbeitungssystem und verfahren zum automatischen erstellen von inhaltsangaben von textdokumenten
DE112011100951B4 (de) Hoch entwickelte funktionale Verhaltensweisen in einem Datenbankverwaltungssystem
EP1490762B1 (de) Verfahren, software-produkt und system zur universellen computergestuetzten informationsverarbeitung
DE10233971A1 (de) Verfahren und Vorrichtung zur Erzeugung von Software
DE60315030T2 (de) Vermeiden von datenverlusten beim aktualisieren eines data warehouse

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee