DE102006017076A1 - Automatic optimization of query processing in database systems - Google Patents

Automatic optimization of query processing in database systems Download PDF

Info

Publication number
DE102006017076A1
DE102006017076A1 DE102006017076A DE102006017076A DE102006017076A1 DE 102006017076 A1 DE102006017076 A1 DE 102006017076A1 DE 102006017076 A DE102006017076 A DE 102006017076A DE 102006017076 A DE102006017076 A DE 102006017076A DE 102006017076 A1 DE102006017076 A1 DE 102006017076A1
Authority
DE
Germany
Prior art keywords
hint
database
application
hints
optimizer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102006017076A
Other languages
German (de)
Other versions
DE102006017076B4 (en
Inventor
Uwe Dr. Krüner-Marquis
Mojgan Dr. Kowsari
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.)
LUFTHANSA SYSTEMS GMBH, DE
Original Assignee
LRS Lufthansa Revenue Services GmbH
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 LRS Lufthansa Revenue Services GmbH filed Critical LRS Lufthansa Revenue Services GmbH
Priority to DE102006017076.8A priority Critical patent/DE102006017076B4/en
Priority to PCT/EP2007/051296 priority patent/WO2007115847A1/en
Publication of DE102006017076A1 publication Critical patent/DE102006017076A1/en
Application granted granted Critical
Publication of DE102006017076B4 publication Critical patent/DE102006017076B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/2453Query optimisation

Abstract

Die vorliegende Erfindung betrifft ein System zur automatischen Optimierung der Anfragebearbeitung in Datenbank- bzw. Datenbankmanagementsystemen (1) mit mindestens einer relationalen Datenbank (2), mindestens einem Server (3) und mindestens einem Client (4), der für Datenzugriffsanforderungen mit dem Server in Kommunikationsverbindung tritt, wobei das Datenbankmanagementsystem (1) einen Optimierer (5) aufweist, der Abläufe von Datenzugriffsanforderungen steuert und der Hints aus Anwendungen (6) des Clients (4) oder des Servers (3) für eine externe Steuerung des Optimierers (5) verwendet. Des Weiteren betrifft die vorliegende Erfindung ein Verfahren zum Optimieren von Datenbankabfragen in einem solchen Datenbankmanagementsystem. Um ein System und ein Verfahren zu schaffen, welche eine wesentlich schnellere und einfachere Anpassung der Optimierung von Datenbankzugriffsanforderungen bzw. Datenbankabfragen erlauben, wird hinsichtlich des Systems erfindungsgemäß vorgeschlagen, dass mindestens einer Anwendung (6) Speicherraum für eine Hint-Tabelle (7) zugeordnet ist und dass anstelle eines Hint in der Anwendung bzw. in einem Baustein einer Datenzugriffsanforderung ein Hint-Aufruf vorgesehen ist, durch welchen ein Hint aus der in dem Speicher gespeicherten Hinttabelle (7) zur externen Steuerung des Optimierers (5) aufgerufen wird. Hinsichtlich des Verfahrens wird vorgeschlagen, dass in den Programmcode einer Anwendung mindestens ein Hintaufruf integriert ist, durch welchen im ...The invention relates to a system for automatically optimizing query processing in database or database management systems (1) with at least one relational database (2), at least one server (3) and at least one client (4), which is used for data access requests with the server in Communication connection occurs, the database management system (1) having an optimizer (5) that controls the processes of data access requests and uses hints from applications (6) of the client (4) or the server (3) for external control of the optimizer (5) , Furthermore, the present invention relates to a method for optimizing database queries in such a database management system. In order to create a system and a method which allow a considerably faster and easier adaptation of the optimization of database access requests or database queries, the system proposes according to the invention that at least one application (6) is allocated memory space for a hint table (7) and that instead of a hint in the application or in a module of a data access request, a hint call is provided, by means of which a hint from the hint table (7) stored in the memory is called for external control of the optimizer (5). With regard to the method, it is proposed that at least one call-up is integrated in the program code of an application, by means of which ...

Description

Die vorliegende Erfindung bezieht sich auf ein System und ein Verfahren zur Optimierung der Anfragebearbeitung in Datenbankmanagementsystemen mit mindestens einer relationalen Datenbank, mindestens einem Server und mindestens einem Client, der für Datenzugriffsanforderungen mit dem Server in Kommunikationsverbindung tritt, wobei das Datenbankmanagementsystem einen Optimierer aufweist, der Abläufe von Datenzugriffsanforderungen steuert und der Hints aus Anwendungen des Clients oder Servers für eine externe Steuerung des Optimierers verwendet.The The present invention relates to a system and a method to optimize query processing in database management systems with at least one relational database, at least one server and at least one client responsible for data access requests communicates with the server, using the database management system an optimizer, the flows of data access requests controls and hints from client or server applications for external control used by the optimizer.

Entsprechende Optimierungssysteme und entsprechende Verfahren für den Ablauf von Datenzugriffsanforderungen bzw. Datenbankabfragen sind aus dem Stand der Technik insbesondere für die Verwaltung und den Zugriff umfangreicher Datenbanken bekannt. Ein solches System ist beispielsweise das Oracle-Datenbanksystem, welches eine Standardabfragesprache (SQL – Standard Query Language) unterstützt und einen Optimierer verwendet, welcher die Verarbeitung bzw. den Ablauf von Datenbankzugriffsanforderungen bzw. Datenbankabfragen steuert, wobei der Optimierer außerdem Hints unterstützt. Hints sind Anweisungen an den Optimierer, unabhängig von einem von dem Optimierer ansonsten vorgesehenen Ablauf einer Datenbankabfrage zumindest in Teilen eine bestimmte, durch den Hint vorgegebene Ablaufsteuerung vorzunehmen. Beispielsweise könnte eine Datenbankabfrage eine mehr oder weniger komplexe Kombination der Daten verschiedener Tabellen erfordern, wobei die Geschwindigkeit und Effizienz der daraus resultierenden Abfrageergebnisse von der Reihenfolge abhängt, in welcher entsprechende Tabellen bzw. deren Daten miteinander kombiniert bzw. verglichen werden. Der Optimierer verwendet für die Steuerung des Ablaufs allgemeine Kriterien, wie z.B. den relativen Umfang der Tabellen, um eine bestimmte Reihenfolge der Kombinationen vorzunehmen. Dagegen kann dem Benutzer oder Programmierer einer bestimmten Anwendung bekannt sein, daß ein Abfragekriterium gerade in Bezug auf eine ganz bestimmte Tabelle hochselektiv ist, die aber nach dem vom Optimierer verwendeten Schema eine nachgeordnete Rangfolge hätte. Durch einen Hint kann der Optimierer angewiesen werden, bei Bearbeitung der Abfrage mit der Tabelle zu beginnen, für die ein Abfragekriterium hochselektiv ist, was zu einer erheblichen Beschleunigung in der Bearbeitung der gesamten Datenabfrage führen kann. Derartige Hints werden daher von einem Programmierer oder ein entsprechend erfahrener Benutzer aus seiner speziellen Kenntnis einer Anwendung und der Tabellen, auf welche die spezielle Anwendung im Falle von Datenbankabfragen zugreifen kann, in den Programmcode einer Anwendung bzw. in entsprechende Datenbankabfragebausteine einer Anwendung eingefügt.Appropriate Optimization systems and corresponding procedures for the process of data access requests or database queries are from the Prior art in particular for the management and access of large databases known. Such a system is, for example, the Oracle database system, which is a standard query language (SQL - Standard Query Language) supported and uses an optimizer which controls the processing or the process controls database access requests or database queries, the optimizer as well Hints supported. Hints are instructions to the optimizer, regardless of one of the optimizers otherwise provided sequence of a database query at least in Share a specific, given by the hint flow control make. For example, could a database query a more or less complex combination the data require different tables, with the speed and efficiency of the resulting query results from the Order depends in which respective tables or their data are combined or compared. The optimizer used for the controller the procedure general criteria, such. the relative scope the tables to make a certain order of the combinations. In contrast, the user or programmer of a particular application be known that a Query criterion especially with respect to a specific table is highly selective, but according to the scheme used by the optimizer would have a subordinate ranking. A hint can be used to instruct the optimizer when editing To start the query with the table for which a query criterion is highly selective is, resulting in a significant acceleration in editing the entire data query can. Such Hints are therefore by a programmer or a correspondingly experienced user from his / her special knowledge an application and the tables to which the specific application in the case of database queries can access the program code an application or corresponding database query blocks an application inserted.

Da sich jedoch sowohl die konkreten Anwendungen als auch die gesuchte Daten enthaltende Dateien oder Tabellen hinsichtlich Umfang und Inhalt erheblich verändern können, ist zumindest von Zeit zu Zeit eine entsprechende Anpassung derartiger Hints erforderlich. Ebenso können neue Datenbankabfragen aufgrund sich ändernder oder neuer Anwendungen oder aufgrund neuer Dienstleistungsangebote die Entwicklung und den Einsatz neuer Hints erfordern. Dies bedingt allerdings Unterbrechungen des Ablaufs der Anwendung, da bei einer Änderung von Hints unmittelbar in den Programmcode eingegriffen wird.There However, both the specific applications and the sought Data containing files or tables in terms of scope and Change content significantly can, is at least from time to time a corresponding adaptation of such Hints required. Likewise new database queries due to changing or new applications or because of new service offerings the development and the Require use of new hints. However, this requires interruptions the expiration of the application, since a change from hints immediately is intervened in the program code.

Darüber hinaus muß dies im Falle einer Vielzahl von unterschiedlichen Anwendungen regelmäßig und unabhängig voneinander für alle Anwendungen wiederholt werden, wobei teilweise die in verschiedenen Anwendungen verwendeten Hints identisch sein können.Furthermore must do this in the case of a variety of different applications regularly and independently for all Applications are repeated, sometimes in different Applications used Hints can be identical.

Die entsprechende Pflege von Anwendungen einschließlich der darin eingebetteten Hints ist relativ zeit- und kostenaufwendig, insbesondere dann, wenn ein Anwendungsprogramm sehr umfangreich ist und gleichzeitig von einer großen Zahl von Benutzern verwendet wird, deren Arbeit für eine entsprechende Wartung und Pflege des Anwendungsprogramms unterbrochen werden muß. Alternativ muß eine solche Pflege außerhalb üblicher Betriebszeiten erfolgen. Allerdings gibt es Anwendungen, die im 24-Stunden-Betrieb laufen und insbesondere auch Anwendungen, die in weltweit vernetzten Systemen laufen, so daß eine Unterbrechung des Betriebs, und sei es nur zur Neuinstallation bzw. Ergänzung der Hints durch Patches oder dergleichen, in jedem Fall aufwendig und kostenintensiv und mit Unannehmlichkeiten für den Anwender verbunden ist.The appropriate maintenance of applications including embedded therein Hints is relatively time-consuming and costly, especially if an application program is very extensive and simultaneous from a big one Number of users is used, whose work is appropriate for one Maintenance and care of the application program must be interrupted. alternative must have one such care outside usual Operating times are made. However, there are applications in the Run 24-hour operation and in particular also applications that run in globally networked systems, so that an interruption of the operation, and if only for reinstalling or supplementing the hints with patches or the like, in any case consuming and expensive and with inconvenience for the user is connected.

Gegenüber diesem Stand der Technik liegt der vorliegenden Erfindung die Aufgabe zugrunde, ein System und ein Verfahren der eingangs genannten Art zu schaffen, welche eine wesentlich schnellere und einfachere Anpassung der Optimierung von Datenbankzugriffsanforderungen bzw. Datenbankabfragen erlauben.Opposite this The prior art is based on the object of the present invention to provide a system and a method of the type mentioned, which is a much faster and easier adaptation of the optimization allow database access requests or database queries.

Diese Aufgabe wird dadurch gelöst, daß einer Anwendung Speicherraum für das Speichern von Hints in einer der Anwendung zugeordneten Hint-Tabelle zugewiesen wird oder ist, und daß in der Anwendung bzw. einem Baustein der Anwendung für eine Datenbankabfrage anstelle eines Hints ein Hint-Aufruf vorgesehen ist, durch welchen ein Hint aus der Hint-Tabelle aufgerufen wird.This object is achieved by assigning an application memory space for storing hints in a hint table associated with the application, and providing a hint call instead of a hint in the application or building block of the database query application is which calls a hint from the hint table.

Demnach sieht die vorliegende Erfindung vor, daß jeder Anwendung Speicherplatz bzw. Speicherraum für die Aufnahme einer zugeordneten Hint-Tabelle zugeordnet ist, und die zuvor in Programmcode der Anwendung oder eines Bausteins für Datenbankabfragen eingebetteten, statischen Hints werden durch Hint-Aufrufe ersetzt, die einen durch den Aufruf näher bezeichneten Hint aus der Hint-Tabelle aufrufen.Therefore For example, the present invention contemplates that each application requires storage space or storage space for the recording is associated with an associated hint table, and the previously in program code of the application or a building block for database queries embedded, static hints are replaced by hint calls, one closer by calling designated hint from the hint table call.

Dadurch wird es möglich, die bis dahin statischen Hints jederzeit dynamisch zu variieren, indem, ohne daß die Anwendung in irgendeiner Weise unterbrochen wird, die zugehörige Hint-Tabelle aktualisiert wird. Dadurch kann die externe Steuerung bzw. Beeinflussung des Optimierers durch Hints wesentlich schneller und einfacher den tatsächlichen Verhältnissen und Bedürfnissen angepaßt werden.Thereby will it be possible to vary the hitherto static hints dynamically at any time, by, without the Application is interrupted in any way, the associated hint table is updated. This allows the external control or influence the optimizer by Hints much faster and easier actual conditions and needs customized become.

In der bevorzugten Ausführungsform der Erfindung ist vorgesehen, daß der Aufruf dadurch erfolgt, daß anstelle eines Hints in einer Anwendung eine Hint-Variable eingebettet ist, die entsprechend definiert ist und eine Kennung bzw. Text aufweist, durch welche der an dieser Stelle aus der Tabelle einzufügende Hint eindeutig definiert ist.In the preferred embodiment The invention provides that the call is made by that instead a hint in an application a hint variable is embedded which is defined accordingly and has an identifier or text, through which the hint to be inserted from the table at this point is clearly defined.

Weiterhin ist eine Ausführungsform der Erfindung bevorzugt, bei welcher für unterschiedliche Anwendungen unabhängig und getrennt Hint-Tabellen zugeordnet sind. Dies schließt jedoch nicht aus daß eine Hinttabelle gleichzeitig zwei oder mehr verschiedenen Anwendungen zugeordnet ist, insbesondere, wenn die Anwendungen relativ große Ähnlichkeiten aufweisen, die zu identischen oder ähnlichen Datenbankabfragen führen.Farther is an embodiment of the invention, in which for different applications independently and separated hint tables are assigned. This concludes, however not from one Rear table at the same time two or more different applications is assigned, in particular, if the applications have relatively large similarities have identical or similar database queries to lead.

Weiterhin wird zweckmäßigerweise eine Master-Tabelle von Hints im Rahmen einer zentralen Hint-Verwaltung bereitgestellt und gepflegt, wobei die jeweils einzelnen Anwendungen zugeordneten Hint-Tabellen Teilmengen der Hints aus der Master-Tabelle sind und entsprechend dem speziellen Bedarf jeder Anwendung ausgewählt werden. Auf diese Weise wird die mehrfache identische oder ähnliche Entwicklung von Hints durch verschiedene Personen vermieden, da alle für eine Vielzahl von Anwendungen in einem großen, gegebenenfalls vernetzten System wie zum Beispiel in einem "Wide Area Network" (großräumigen Netzwerk) benötigten Hints zentral verwaltet und gespeichert werden, auch wenn Teilmengen der zentralen Hinttabelle jeweils getrennt einzelnen Anwendungen zugewiesen und in den Anendungen zugeordnetem Speicherraum gespeichert sind.Farther is expediently a master table provided by Hints as part of a central hint management and maintained, with the respective individual applications assigned Hin tables are subsets of hints from the master table and be selected according to the specific needs of each application. In this way, the multiple becomes identical or similar Development of hints avoided by different persons, since all for a variety of applications in a large, possibly networked System such as in a "Wide Area Network" (large-scale network) needed Hints centrally managed and stored, even if subsets of central hint table each separately assigned to individual applications and stored in the appendices associated memory space.

Ohnehin entwickelt die vorliegende Erfindung ihre Vorzüge vor allem in Verbindung mit sehr großen Systemen, insbesondere Datenbank mit mehr als 200 GB und vorzugsweise mehr als 500 GB Speicherraum mit einer großen Zahl von Daten, die in einer entsprechenden Vielzahl von Tabellen oder anderen Dateien abgelegt sind. Kleinere Systeme kommen oft ohne Hints aus, wobei jedoch grundsätzlich gilt, daß die vorliegenden Erfindung umso sinnvoller und effektiver einsetzbar ist, je umfangreicher und komplexer die Datenbanken und je langsamer die verwendeten Prozessoren bzw. je geringer deren Kapazitäten sind.anyway In particular, the present invention develops its advantages in connection with very large systems, especially database with more than 200 GB and preferably more as a 500GB of storage space with a large amount of data in a corresponding variety of tables or other files are stored. Smaller systems often come without hints, whereby however basically applies that the present invention more useful and effective is, the more extensive and complex the databases and the slower the processors used or the smaller their capacities.

Zweckmäßigerweise ist vorgesehen, daß die Hints einer Hint-Tabelle wahlweise aktiviert oder deaktiviert werden können. Dies ermöglicht insbesondere eine einfache Parametersteuerung, indem die Aktivierung oder Deaktivierung eines Hints von dem Wert eines konkreten, variablen bzw. einstellbaren Parameters abhängig gemacht wird. Beispielsweise ist es gemäß einer bevorzugten Variante möglich, bestimmte Hints nur für bestimmte Zeiträume zu aktivieren.Appropriately, is provided that the Optionally, a hint table can be enabled or disabled can. this makes possible in particular a simple parameter control, by activating or Deactivating a hint from the value of a concrete, variable or adjustable parameter. For example is it according to one preferred variant possible, certain hints only for certain periods to activate.

Darüber hinaus ist es zweckmäßig, wenn ein Dokumentationssystem vorgesehen ist, welches die zeitliche Entwicklung der einzelnen Hint-Tabellen und insbesondere der Master-Hint-Tabelle dokumentiert und archiviert.Furthermore it is useful if a documentation system is provided, which the temporal development the individual hint tables and in particular the master hint table documented and archived.

Die vorliegende Erfindung ist auch auf ein entsprechendes Verfahren gerichtet, welches ein Datenbankmanagementsystem mit mindestens einer relationalen Datenbank, mindestens einem Server und mindestens einem Client aufweist, der für Datenbankabfragen mit dem Server in Kontakt tritt, wobei das Datenbankmanagementsystem einen Optimierer aufweist, der Abläufe der Bearbeitung von Datenbankabfragen steuert und der aus Anwendungen des Clients oder Servers Hints für eine externe Steuerung verwendet. Hinsichtlich eines solchen Verfahrens ist erfindungsgemäß vorgesehen, daß anstelle eines Hints in einer Anwendung oder einem Abfragebaustein einer Anwendung ein Hint-Aufruf vorgesehen ist, durch welchen ein Hint aus einer der Anwendung zugeordneten Hint-Tabelle aufgerufen wird.The The present invention is also related to a corresponding method which is a database management system with at least a relational database, at least one server and at least a client that is responsible for Database queries come into contact with the server, using the database management system an optimizer, the processes of processing database queries Controls and applications from the client or server hints for an external Control used. With regard to such a method, the invention provides that instead a hint in an application or a query building block of a Application a hint call is provided, through which a hint is called from a hint table associated with the application.

Für die Speicherung der Hint-Tabelle muß der jeweiligen Anwendung entsprechender Speicherraum zugewiesen werden. Die Zugriffsrechte auf Hints und die Möglichkeiten zum Ändern von Hints können je nach Bedarf unterschiedlich vergeben werden. In der bevorzugten Ausführungsform der Erfindung wird eine zentrale Master-Hint-Tabelle von einem Administrator verwendet, der auch fest legt, welche Hints aus der Master-Hint-Tabelle zur Erzeugung der den jeweiligen Anwendungen zugeordneten, individuellen Hint-Tabellen verwendet und/oder aktiviert werden. Dabei ist es insbesondere in einfacher Weise möglich, daß unterschiedliche Anwendungen unterschiedliche Sätze und Hints in ihren jeweiligen Tabellen aufweisen, die aber sehr wohl in weiten Bereichen überlappen können und auf diese Weise entsprechende Hints nur einmal zentral erstellt werden müssen, die dann in verschiedenen Anwendungen mehrfach bzw. in gleicher Weise verwendet werden können. Gegebenenfalls können untergeordnete Operatoren oder Administratoren gewisse Zugriffsrechte auf individuelle Hint-Tabellen erhalten, die es beispielsweise ermöglichen, bestimmte Hints zu aktivieren oder zu deaktivieren oder Zeiträume der Aktivierung und Deaktivierung von Hints festzulegen. Vorzugsweise wird jedoch auch dies zentral von einem Hint-Verwaltungssystem aus vorgenommen, von welchem aus der alleinige Zugriff auf die Master-Hint-Tabelle besteht.For storage of the hint table, the respective application must have corresponding memory space be assigned to. The access rights to hints and the options for changing hints can be assigned differently depending on your needs. In the preferred embodiment of the invention, a central master hint table is used by an administrator who also determines which hint from the master hint table is used and / or activated to generate the individual hint tables associated with the respective applications become. In particular, it is possible in a simple manner that different applications have different phrases and hints in their respective tables, but which can very well overlap in a wide range and in this way corresponding Hints only once must be created centrally, which then several times in different applications or can be used in the same way. If necessary, subordinate operators or administrators may be granted certain access rights to individual hint tables, which allow, for example, certain hints to be enabled or disabled or periods of activation and deactivation of hints. Preferably, however, this is also done centrally by a hint management system from which the sole access to the master hint table exists.

Weitere Vorteile, Merkmale und Ausführungsformen der vorliegenden Erfindung werden deutlich anhand der folgenden Beschreibung eines anhand einer Figur schematisch wiedergegebenen Ausführungsbeispiels sowie anhand weiterer konkreter Beispiele aus einer gegebenen Datenbankumgebung.Further Advantages, features and embodiments The present invention will be apparent from the following Description of a schematically reproduced with reference to a figure embodiment as well as other concrete examples from a given database environment.

In der einzigen Figur erkennt man schematisch dargestellt ein Datenbankmanagementsystem 1, welches unter anderem einen Optimierer 5 aufweist und welches mit einem Server 3 und einer Datenbank 2 verbunden ist. Das Datenbankmanagementsystem kann auch in den Server 3 integriert sein bzw. alle dargestellten Elemente umfassen. Der Server 3 ist wiederum mit einem Client 4 verbunden, wobei Server und Client gegebenenfalls auch identisch sein können. Ein Anwendungsprogramm 6 oder auch mehrere Anwendungsprogramme 6 laufen auf dem Client 4 oder auch auf dem Server 3.In the single figure can be seen schematically represented a database management system 1 , which among other things an optimizer 5 and which one with a server 3 and a database 2 connected is. The database management system can also be in the server 3 be integrated or comprise all elements shown. The server 3 is in turn with a client 4 If necessary, the server and client can also be identical. An application program 6 or several application programs 6 run on the client 4 or on the server 3 ,

Im Falle einer Datenbankabfrage, die im Rahmen einer Anwendung 6 von dem Client 4 an den Server 3 gerichtet wird, wird das Datenbankmanagementsystem 1 aktiviert, woraufhin der Optimierer 5 die Datenbankabfrage analysiert und interpretiert und in eine konkrete Folge logischer Operationen umsetzt, um die gewünschten Daten aus der Datenbank 2 in möglichst kurzer Zeit und mit möglichst geringem Aufwand zu extrahieren. Die Datenbank 2 ist eine relationale Datenbank, die hier lediglich schematisch als ein einheitlicher Block 2 dargestellt ist, die aber tatsächlich aus einer Vielzahl einzelner Datenbanken bestehen kann, die auf einem Datenbankserver (nicht dargestellt) vorhanden und lokal implementiert sein können, die aber auch in Form von verteiltem Speicher vorliegen können, der unter Umständen auch Speicher von Client 4 und Server 3 umfaßt.In the case of a database query, in the context of an application 6 from the client 4 to the server 3 becomes the database management system 1 activated, prompting the optimizer 5 The database query is analyzed and interpreted and converted into a concrete sequence of logical operations to the desired data from the database 2 in the shortest possible time and with the least possible effort. Database 2 is a relational database, here only schematically as a unified block 2 but in fact may consist of a plurality of individual databases, which may be present on a database server (not shown) and implemented locally, but which may also be in the form of distributed memory, which may also include memory from client 4 and server 3 includes.

Der Optimierer versucht, die Reihenfolge logischer Operationen in der Weise zu steuern, daß das Ergebnis der Datenbankabfrage möglichst ökonomisch und in möglichst kurzer Zeit erzielt wird. Dem Benutzer der Anwendung 6 sind aber möglicherweise Informationen über die Datenbank bzw. über einzelne Tabellen der Datenbank 2 bekannt oder zugänglich, die der Optimierer 5 nicht zur Verfügung hat und im automatischen Betrieb nicht in die Festlegung der Steuerungsabläufe einbezieht. Ein Nutzer oder Anwender oder Administrator des Systems kann daher von der Anwendung 6 aus Hinweise oder Anweisungen in Form von sogenannten "Hints" an den Optimierer 5 geben, die gegenüber anderen von dem Optimierer ansonsten vorgesehenen oder geplanten Operationen Vorrang haben, um auf diese Weise die Wirkung des Optimierers 5 auf die Steuerung der Datenbankabfrage zu verbessern.The optimizer attempts to control the order of logical operations in such a way that the result of the database query is achieved as economically as possible and in the shortest possible time. The user of the application 6 but may be information about the database or about individual tables of the database 2 known or accessible to the optimizer 5 is not available and does not include in automatic operation in the determination of the control processes. A user or user or administrator of the system may therefore be dependent on the application 6 from hints or instructions in the form of so-called "hints" to the optimizer 5 which override other operations otherwise scheduled or planned by the optimizer, in this way enhance the effect of the optimizer 5 to improve the control of the database query.

Gemäß der vorliegenden Erfindung sind jedoch die Hints nicht als solche in die Anwendung 6 oder entsprechende Bausteine, welche eine Datenbankabfrage auslösen, eingebunden, sondern die Anwendung 6 enthält vielmehr lediglich Aufrufe entsprechender Hints, die in einer der Anwendung 6 zugeordneten Hint-Tabelle 7 abgelegt sind. Bei der Bearbeitung der Datenbankabfrage und der Optimierung der entsprechenden logischen Abläufe ruft der Optimierer 5 daher entsprechend den mit der Datenbankabfrage von der Anwendung 6 empfangene Hint-Aufrufe die entsprechenden Hints aus der Hint-Tabelle 7 auf und integriert sie entsprechend den Hint-Vorgaben in die Abarbeitung bzw. die Zeit- oder Rangfolge der im Rahmen der Datenbankabfrage durchgeführten Suchläufe.However, according to the present invention, the hints are not as such in the application 6 or corresponding blocks that trigger a database query, but the application 6 Rather, it only contains calls to corresponding hints that are in one of the applications 6 associated hint table 7 are stored. When processing the database query and optimizing the corresponding logical processes, the optimizer calls 5 therefore according to the database query of the application 6 received hint calls the corresponding hints from the hint table 7 and integrates them according to the hint specifications into the processing or the time or ranking of the searches carried out in the context of the database query.

Erfindungsgemäß ist zusätzlich ein Hint-Managementsystem vorgesehen, welches eine Master-Hint-Tabelle 9 erstellt, pflegt und aktualisiert und welches aus der Master-Hint-Tabelle die individuellen Hint-Tabellen 7 generiert. Es versteht sich, daß die Anwendung 6 und die Hint-Tabelle 7 im vorliegenden Fall nur beispielhaft für eine Vielzahl möglicher Anwendungen mit zugeordneten Hint-Tabellen steht, wobei auch die Zahl der Clients und Server prinzipiell beliebig sein kann und das gesamte System Teil eines größeren Netzwerks sein kann, ebenso wie dies oben bereits für die Datenbank 2 beschrieben wurde. Es versteht sich, daß die Vorteile der vorliegenden Erfindung insbesondere bei sehr umfangreichen Datenbanken zum Tragen kommen, die z.B. mehr als 500 Gigabyte Speicher in einer Vielzahl unterschiedlicher Tabellen umfassen. Bei sehr komplexen und zersplitterten Datenbanken und bei einem relativ langsam arbeitenden Datenbankmanagementsystem bzw. Server kann aber das System auch schon bei geringeren Speichergrößen von z.B. 100 bis 200 Gigabyte zu einer spürbaren Beschleunigung in der Bearbeitung von Datenbankabfragen führen.According to the invention, a hint management system is additionally provided, which comprises a master hint table 9 creates, maintains and updates from the master hint table the individual hint tables 7 generated. It is understood that the application 6 and the hint table 7 in the present case is only an example of a variety of possible applications with associated hint tables, wherein the number of clients and servers in principle can be arbitrary and the entire system can be part of a larger network, as already above for the database 2 has been described. It goes without saying that the advantages of the present invention in particular in very large databases come into play, for example, include more than 500 gigabytes of memory in a variety of different tables. With very complex and fragmented databases and with a relatively slow-running database management system or server, however, the system can already lead to a noticeable acceleration in the processing of database queries even with smaller memory sizes of eg 100 to 200 gigabytes.

Im folgenden werden noch zwei Ausführungsbeispiele der vorliegenden Erfindung anhand zweier Beispiele beschrieben, wobei zunächst nochmals das Wesen der Hint-Verarbeitung erläutert wird.in the following are still two embodiments of the present invention with reference to two examples, being first again the nature of hint processing is explained.

Hint-VerarbeitungHint processing

Hints sind in SQL-Code eingebettete Anweisungen für den Oracle-Optimizer, die den Ausführungsplan von SQL-Statements beeinflussen. Die Benutzung von Hints ist dann zwingend notwendig, wenn fachliches Wissen in die Ausführung von SQL-Statements fließen soll. Woher soll der Optimi zer z. B. wissen, daß ein Index mit dem Feld Fehlerkennzeichen für den Fall "Ja" hoch selektiv, für den Fall "Nein" aber überhaupt nicht selektiv ist. Hints sind weiterhin dann nötig, wenn der Optimizer – aus welchen Gründen auch immer – nicht den gewünschten/optimalen Ausführungsplan nimmt.Hints are statements embedded in SQL code for the Oracle Optimizer, the the execution plan of Influence SQL statements. The use of Hints is then mandatory necessary if technical knowledge should flow into the execution of SQL statements. How should the Optimi zer z. For example, you know that an index with the field Error Flag for the Case "yes" highly selective, in the case of "no" but at all is not selective. Hints are still necessary if the optimizer - from which establish always - not the desired / optimal execution plan takes.

Um dynamisch (d.h. ohne Programmanpassungen) Hints ändern zu können, ist eine über Stammdatentabellen steuerbare Hint-Verwaltung entwickelt worden. Zur Benutzung dieser Hintverwaltung müssen die Aufrufstellen der Datenbankanforderungen in einem Programm eindeutig identifizierbar sein (z.B. durch eindeutige Nummerierung oder Auslagerung in Programmmodule mit eindeutig zugeordnetem Namen). Diese Eindeutigkeit ist notwendig, damit aus den Stammdatentabellen der Hintverwaltung der jeweils zugehörige Hintdatensatz gezogen werden kann, der anschließend über eine Programmvariable an das Datenbankanforderungsstatement übergeben werden kann. Am Beispiel einer Implementierung in der SAP Programmiersprache ABAP wird die Hintbenutzung nachfolgend aufgezeigt. Hierbei sind die Datenbankanforderungszugriffe in modularisierte Einheiten (Funktionsbausteine) ausgelagert.Around Dynamic (that is, without program customizations) To change hints is one about master data tables controllable hint administration has been developed. To use this Hintverwaltung need the call points of the database requests in a program uniquely be identifiable (e.g., by unique numbering or paging in program modules with a unique name). This uniqueness is necessary so that from the master data tables of the Hintverwaltung the corresponding hint record can then be pulled, then via a program variable the database request statement can be passed. Exemplary An implementation in the SAP programming language ABAP becomes the Hint use shown below. Here are the database request accesses outsourced in modularized units (function blocks).

Figure 00070001
Figure 00070001

Ob Hints tatsächlich benötigt werden, wird während der Entwicklung, im Test oder im produktiven Einsatz festgestellt. Die entsprechende Pflege der Hintstammdaten erfolgt z.B. durch die Datenbankadministratoren oder die technischen Betreuer der Anwendungen. Ist für eine Aufruf stelle einer Datenbankanforderung kein Hint in der Hinttabelle eingetragen, bewirkt das Einfügen des Hinttextes %_hints keine Änderung des Datenbank-Zugriff.If Hints actually needed will be during development, test or productive use. The corresponding maintenance of the hint master data takes place, for example. through the Database administrators or the technical maintainers of the applications. Is for a call to a database request does not return a hint in the hint table entered, causes the insertion the back text% _hints no change of database access.

Um dynamisch (d.h. ohne Programmanpassungen) Hints ändern zu können, ist eine über Stammdatentabellen steuerbare Hint-Verwaltung entwickelt worden. Zur Benutzung dieser Hint-Verwaltung sind folgende ABAP-Statements in den DB-Zugriffsbausteinen zu implementieren:

Figure 00080001
In order to be able to change hints dynamically (ie without program adjustments), a hint management via master data tables has been developed. To use this hint administration, the following ABAP statements must be implemented in the DB access blocks:
Figure 00080001

Bei der Entwicklung neuer DB-Zugriffsbausteine ist die Benutzung der dynamischen Hint-Verwaltung Pflicht. Dabei ist das Macro get-hint standardmäßig mit der Select-Nummer '00' (3. Übergabeparameter) aufzurufen. Dieser Aufruf findet pro Funktionsbaustein genau einmal zu Beginn statt und füllt eine interne Tabelle mit allen Hint-Texten für diese When-Nummer und speziell die Variable vl_hint_text mit dem Hint-Text für den Standardfall '00' '01'. Weitere Hint-Text Selektionen für diese When-Nummer finden dann bei Bedarf nur noch über das Macro get-hint-from-itab (siehe unten) statt.at The development of new DB access blocks is the use of the dynamic hint management duty. The macro is get-hint standard with the select number '00' (3rd transfer parameter) call. This call is found once per function module at the beginning and fills an internal table with all hint texts for this when number and specifically the variable vl_hint_text with the hint text for the default case '00' '01'. More hint text selections for If when need only find out about this when needed Macro get-hint-from-itab (see below) instead.

Ob Hints tatsächlich benötigt werden, wird während der Entwicklung, im Test oder im produktiven Einsatz festgestellt. Die entsprechende Pflege der Hint-Stammdaten erfolgt durch DP/AI. Ist für eine bestimmte When-Nummer kein Stammdaten-Eintrag vorhanden, bewirkt das Einfügen des Hint-Textes (%_hint...) im Select-Statement keine Änderung beim DB-Zugriff.If Hints actually needed will be during development, test or productive use. The corresponding maintenance of the Hint master data is done by DP / AI. Is for a certain When number no master data entry exists causes the insertion the hint text (% _hint ...) in the select statement no change in DB access.

Beispiel 1 (Standardfall):

Figure 00080002
Example 1 (standard case):
Figure 00080002

Figure 00090001
Figure 00090001

Beispiel 2: 2 Hints für ein Select innerhalb einer When-Nummer.Example 2: 2 hints for a select within a when number.

Falls in einem Select-Statement unterschiedliche Hints in Abhängigkeit von der Datenkonstellation eingesetzt werden müssen, wird zuerst das Macro get-hint wie oben beschrieben aufgerufen. Abhängig von der Datenkonstellation wird dann mit dem Macro get-hint-from-itab unter Angabe der entsprechenden Select- (1. Parameter) und laufenden Nummer (2. Parameter) der gewünschte Hint-Text bereitgestellt.If in a select statement different hints in dependence be used by the data constellation, first the macro called get-hint as described above. Depending on the data constellation is then with the macro get-hint-from-itab stating the appropriate Select (1st parameter) and sequential number (2nd parameter) provided the desired hint text.

Figure 00090002
Figure 00090002

Beispiel 3: mehrere Hints für mehrere Selects innerhalb einer When-NummerExample 3: several hints for many Selects within a when number

Falls innerhalb einer When-Nummer mehrere Selects (für unterschiedliche oder gleiche Tabellen) auftreten, wird zuerst das Macro get-hint wie oben beschrieben aufgerufen. Für jedes Select wird dann mit dem Macro get-hint-from-itab unter Angabe der entsprechenden Select- (1. Parameter) und laufenden Nummer (2. Parameter) der gewünschte Hint-Text bereitgestellt.If within a when number multiple selects (for different or the same Tables), first the macro get-hint as described above called. For each Select is then specified with the macro get-hint-from-itab the corresponding select (1st parameter) and consecutive number (2nd parameter) the desired one Hint text provided.

Figure 00100001
Figure 00100001

Claims (10)

System zur automatischen Optimierung der Anfragebearbeitung in Datenbank- bzw Datenbankmanagementsystemen (1) mit mindestens einer relationalen Datenbank (2), mindestens einem Server (3) und mindestens einem Client (4), der für Datenzugriffsanforderungen mit dem Server in Kommunikationsverbindung tritt, wobei das Datenbankmanagementsystem (1) einen Optimierer (5) aufweist, der Abläufe von Datenzugriffsanforderungen steuert und der Hints aus Anwendungen (6) des Clients (4) oder des Servers (3) für eine externe Steuerung des Optimierers (5) verwendet, dadurch gekennzeichnet, daß mindestens einer Anwendung (6) Speicherraum für eine Hint-Tabelle (7) zugeordnet ist und daß anstelle eines Hint in der Anwendung bzw. in einem Baustein einer Datenzugriffsanforderung ein Hint-Aufruf vorgesehen ist, durch welchen ein Hint aus der in dem Speicher gespeicherten Hinttabelle (7) zur externen Steuerung des Optimierers (5) aufgerufen wird.System for automatically optimizing request processing in database or database management systems ( 1 ) with at least one relational database ( 2 ), at least one server ( 3 ) and at least one client ( 4 ) communicating with the server for data access requests, the database management system ( 1 ) an optimizer ( 5 ) that controls operations of data access requests and hints from applications ( 6 ) of the client ( 4 ) or the server ( 3 ) for an external control of the optimizer ( 5 ), characterized in that at least one application ( 6 ) Storage space for a hint table ( 7 ) and that, instead of a hint in the application or in a block of a data access request, a hint call is provided, by means of which a hint is retrieved from the hint table stored in the memory (FIG. 7 ) for the external control of the optimizer ( 5 ) is called. System nach Anspruch 1, dadurch gekennzeichnet, daß der Hint-Aufruf eine in der Anwendung bzw. dem Datenzugriffsbaustein definierte Variable ist.System according to claim 1, characterized in that the hint call a defined in the application or the data access block Variable is. System nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß für unterschiedliche Anwendungen getrennte Hint-Tabellen (7) vorgesehen sind.System according to claim 1 or 2, characterized in that ge for different applications separated hint tables ( 7 ) are provided. System nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß eine Hint-Verwaltung (8) vorgesehen ist, welcher eine Master-Hint-Tabelle zugeordnet ist, die über die Hint-Verwaltung gepflegt wird, wobei die Hint-Tabelle (7) einer Anwendung (6) mindestens eine Teilmenge der Master-Hint-Tabelle (9) umfaßt.System according to one of Claims 1 to 3, characterized in that a hint management ( 8th ) associated with a master hint table maintained via the hint management, the hint table ( 7 ) of an application ( 6 ) at least a subset of the master hint table ( 9 ). System nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß die Hint-Tabelle (7) eine Anwendung (6) und/oder die Master-Hint-Tabelle (9) einer Hint-Verwaltung (8) während des laufenden Betriebs einer Anwendung (6) veränderbar sind.System according to one of Claims 1 to 4, characterized in that the hint table ( 7 ) an application ( 6 ) and / or the master hint table ( 9 ) of a hint administration ( 8th ) while an application is running ( 6 ) are changeable. System nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß die Hints einer Hint-Tabelle individuell aktivierbar und deaktivierbar sind.System according to one of claims 1 to 5, characterized that the Hints a hint table individually activated and deactivated are. System nach Anspruch 6, dadurch gekennzeichnet, daß die Hints über einstellbare Parameter aktivierbar und deaktivierbar sind, wobei die Parameter mindestens einen Parameter für einen Gültigkeitszeitraum eines Hints umfassen.System according to claim 6, characterized in that the hints via adjustable Parameters can be activated and deactivated, the parameters at least one parameter for a validity period a hint. System nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß die Hint-Verwaltung ein Dokumentationssystem aufweist, welches die zeitliche Entwicklung sowohl der Master-Hint-Tabelle (9) als auch der Hint-Tabellen (7) der Anwendungen (6) dokumentiert.System according to one of Claims 1 to 7, characterized in that the hint management comprises a documentation system which monitors the development over time of both the master hint table ( 9 ) as well as the hint tables ( 7 ) of applications ( 6 ). Verfahren zum Optimieren von Datenbankabfragen in einem Datenbankmanagementsystem nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß in den Programmcode einer Anwendung mindestens Hintaufruf integriert ist, durch welchen im Falle von Datenbankabfragen über die Anwendung zur Optimierung der Bearbeitung der Datenbankabfrage ein Hlnt aus einer außerhalb des Programmcodes gespeicherten, der Anwendung zugeordneten Hinttabelle aufgerufen und verarbeitet wird.Method for optimizing database queries in a database management system according to one of claims 1 to 8, characterized in that in integrated the program code of an application at least call is through which in the case of database queries over the Application for optimizing the processing of the database query Hlnt from an outside stored in the program code, the application associated hint table is called and processed. Verfahren nach Anspruch 9, dadurch gekennzeichnet, daß der Hintaufruf über eine in den Programmcode integrierte, definierte Hlntvariable erfolgt.Method according to claim 9, characterized in that that the Call back via a defined variable variable integrated in the program code takes place.
DE102006017076.8A 2006-04-10 2006-04-10 Automatic optimization of query processing in database systems Active DE102006017076B4 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102006017076.8A DE102006017076B4 (en) 2006-04-10 2006-04-10 Automatic optimization of query processing in database systems
PCT/EP2007/051296 WO2007115847A1 (en) 2006-04-10 2007-02-09 Automatic optimisation of request processing in databank systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102006017076.8A DE102006017076B4 (en) 2006-04-10 2006-04-10 Automatic optimization of query processing in database systems

Publications (2)

Publication Number Publication Date
DE102006017076A1 true DE102006017076A1 (en) 2007-10-11
DE102006017076B4 DE102006017076B4 (en) 2020-04-23

Family

ID=37908138

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102006017076.8A Active DE102006017076B4 (en) 2006-04-10 2006-04-10 Automatic optimization of query processing in database systems

Country Status (2)

Country Link
DE (1) DE102006017076B4 (en)
WO (1) WO2007115847A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6345266B1 (en) * 1998-12-23 2002-02-05 Novell, Inc. Predicate indexing for locating objects in a distributed directory
US20030182276A1 (en) * 2002-03-19 2003-09-25 International Business Machines Corporation Method, system, and program for performance tuning a database query
US20030236782A1 (en) * 1998-10-05 2003-12-25 Oracle International Corporation Dynamic generation of optimizer hints
US20050120000A1 (en) * 2003-09-06 2005-06-02 Oracle International Corporation Auto-tuning SQL statements
US20050144172A1 (en) * 2003-12-09 2005-06-30 Michael Kilian Methods and apparatus for generating a content address to indicate data units written to a storage system proximate in time

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040019587A1 (en) 2002-07-25 2004-01-29 You-Chin Fuh Method and device for processing a query in a database management system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030236782A1 (en) * 1998-10-05 2003-12-25 Oracle International Corporation Dynamic generation of optimizer hints
US6345266B1 (en) * 1998-12-23 2002-02-05 Novell, Inc. Predicate indexing for locating objects in a distributed directory
US20030182276A1 (en) * 2002-03-19 2003-09-25 International Business Machines Corporation Method, system, and program for performance tuning a database query
US20050120000A1 (en) * 2003-09-06 2005-06-02 Oracle International Corporation Auto-tuning SQL statements
US20050144172A1 (en) * 2003-12-09 2005-06-30 Michael Kilian Methods and apparatus for generating a content address to indicate data units written to a storage system proximate in time

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AMMAR,M.H.,et.al.: Using Hint Tables to Locate Resources in Distributed Systems. In: Proc.of Infocom '88. ISB 0-8186-0833-1.New Orleans,USA, März 1988,S.1050-1059; *
Hard Coding. (Online) Wikipedia, Wikimedia Foundation. Inc.,St. Petersburg,FL,USA,Versionsstand 31.03.2006,recherchiert am 19.10.06; *

Also Published As

Publication number Publication date
WO2007115847A1 (en) 2007-10-18
DE102006017076B4 (en) 2020-04-23

Similar Documents

Publication Publication Date Title
DE4218025C2 (en) Apparatus and method for automatically associating data storage devices in a computer system
EP0910829B1 (en) Database system
DE69934894T2 (en) METHOD AND DEVICE FOR OPTIONALLY ADJUSTING ACCESS TO APPLICATION FEATURES
DE69932465T2 (en) File distribution system and its method
DE112010004772T5 (en) A method and system for managing system management agent configurations in a distributed environment
EP0829046B1 (en) Method and system for setting up user programs as well as user computer in a computer net
DE10048942A1 (en) Software product maintaining method in client computer system, by downloading data required for software maintenance from local memory and another memory during execution of software maintenance at client system
EP2500823A1 (en) Operation of a data processing network with multiple geographically decentralised data centres
DE69723500T2 (en) Data quality management system
DE202021004340U1 (en) Restricted views for controlling access to information in a database system
DE102006017076B4 (en) Automatic optimization of query processing in database systems
DE102004007231B4 (en) Method for configuring an automation component of an automation system and corresponding automation system
EP3583520B1 (en) Method of operating a data storage system, computer program for implementing the method and data storage system operating according to the method
DE10039505A1 (en) Data file data storage method e.g. for computer systems, involves forming number of memory zones for data files having first zone and end zone, before storage of data in assigned memory zones
EP1285315B1 (en) Information processing system and method for operation thereof
DE102005010405B4 (en) System arrangement and method for automated application development with user guidance
EP1033647A2 (en) Method for porting a software system to other hardware platforms
DE19807436B4 (en) System and method for controlling and monitoring programs in a computer network
DE102019118757B4 (en) Method for establishing cache coherence in multi-core processors
DE19951756B4 (en) Data management method and computer program and system for executing it
EP2136303B1 (en) Method for controlling an automatic update of data views in a computer system
WO2015192830A1 (en) Client-server system and terminal
EP4006741A1 (en) Data processing device and method for managing data from a plurality of entities
DE102006037968B4 (en) Universal and extensible data management with observation and inter-process communication mechanisms
EP4246326A1 (en) Method, apparatus and system for real-time process monitoring

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
R012 Request for examination validly filed

Effective date: 20130109

R016 Response to examination communication
R016 Response to examination communication
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0016000000

R018 Grant decision by examination section/examining division
R081 Change of applicant/patentee

Owner name: LUFTHANSA SYSTEMS GMBH, DE

Free format text: FORMER OWNER: LRS LUFTHANSA REVENUE SERVICES GMBH, 22844 NORDERSTEDT, DE

Owner name: LUFTHANSA SYSTEMS GMBH & CO. KG, DE

Free format text: FORMER OWNER: LRS LUFTHANSA REVENUE SERVICES GMBH, 22844 NORDERSTEDT, DE

R082 Change of representative

Representative=s name: WSL PATENTANWAELTE PARTNERSCHAFT MBB, DE

R020 Patent grant now final
R081 Change of applicant/patentee

Owner name: LUFTHANSA SYSTEMS GMBH, DE

Free format text: FORMER OWNER: LUFTHANSA SYSTEMS GMBH & CO. KG, 65479 RAUNHEIM, DE