DE112015000218T5 - Verfahren, System und Computerprogramm zum Abtasten einer Mehrzahl von Speicherbereichen in einem Arbeitsspeicher nach einer spezifizierten Anzahl von Ergebnissen - Google Patents

Verfahren, System und Computerprogramm zum Abtasten einer Mehrzahl von Speicherbereichen in einem Arbeitsspeicher nach einer spezifizierten Anzahl von Ergebnissen Download PDF

Info

Publication number
DE112015000218T5
DE112015000218T5 DE112015000218.9T DE112015000218T DE112015000218T5 DE 112015000218 T5 DE112015000218 T5 DE 112015000218T5 DE 112015000218 T DE112015000218 T DE 112015000218T DE 112015000218 T5 DE112015000218 T5 DE 112015000218T5
Authority
DE
Germany
Prior art keywords
value
interval
memory
values
memory area
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
DE112015000218.9T
Other languages
English (en)
Other versions
DE112015000218B4 (de
Inventor
Garth Allen Dickie
Dmitry Letin
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 DE112015000218T5 publication Critical patent/DE112015000218T5/de
Application granted granted Critical
Publication of DE112015000218B4 publication Critical patent/DE112015000218B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • 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/248Presentation of query results
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Gemäß Ausführungsformen der vorliegenden Erfindung werden Verfahren, Systeme und computerlesbare Medien präsentiert zum Abtasten einer Mehrzahl von Speicherbereichen in einem Arbeitsspeicher nach einer spezifizierten Anzahl von Ergebnissen, wobei jeder Speicherbereich einem Intervall zugehörig ist, das erste und zweite Intervallwerte enthält, die einen Wertebereich für Werte in diesem Speicherbereich angeben. Die Techniken beinhalten Sortieren der ersten Intervallwerte in einer Reihenfolge, wobei die Reihenfolge der ersten Intervallwerte eine Abtastreihenfolge für die Mehrzahl von Speicherbereichen festlegt, Festlegen eines Ergebniswerts, wobei es sich bei dem Ergebniswert um eine obere Grenze oder eine untere Grenze handelt oder der Ergebniswert außerhalb der spezifizierten Anzahl von Ergebnissen liegt, und Untersuchen der sortierten ersten Intervallwerte und Abtasten von entsprechenden einzelnen Speicherbereichen in Reaktion auf Vergleichen des festgelegten Ergebniswerts mit dem ersten Intervallwert dieses Speicherbereichs. Bei einigen Ausführungsformen endet das Abtasten, wenn festgestellt wird, dass die spezifizierte Anzahl von Ergebnissen erreicht wurde und ein erster Intervallwert in einer Liste von sortierten ersten Intervallwerten größer ist als der festgelegte Ergebniswert.

Description

  • TECHNISCHES GEBIET
  • Ausführungsformen der vorliegenden Erfindung beziehen sich auf Verringern der rechentechnischen Arbeitsbelastung zur Bewertung von Abfragen und insbesondere auf Verringern der rechentechnischen Arbeitsbelastung durch Nutzen von Informationen in Zonenzuordnungen, um bedingtes Beenden von Tabellenabtastungen zu regeln.
  • ERLÄUTERUNG DER VERWANDTEN TECHNIK
  • Suchen nach Informationen unter Verwendung einer Abfrage kann ein Durchsuchen einer umfangreichen Datenbanktabelle zur Folge haben. Informationen, die in einer umfangreichen Datenbanktabelle gespeichert sind, werden üblicherweise nicht in sortierter Form vorgehalten wegen der hohen rechentechnischen Kosten, die mit dem Sortieren und Umorganisieren verbunden sind. Indexieren, bei dem eine Gruppe von Datenwerten einer Gruppe von Datensätzen zugeordnet werden, die sich auf diese Datenwerte beziehen, kann verwendet werden, um die Wirkung des Speicherns der Daten in einer sortierten Reihenfolge bereitzustellen, Jedoch kann bei verteilten Datenspeichern, die umfangreiche Datenbanktabellen speichern, eine Gruppe von Datensätzen über mehrere Speicherplatten aufgeteilt sein, und ein Übertragen eines Teils des Index, der einen gegebenen Datenwert den Datensätzen zuordnet, die diesen Datenwert betreffen, kann einen zusätzlichen Netzwerk-Aufwand erfordern, der zu einer geringen Latenz und einer erhöhten rechentechnischen Arbeitsbelastung führt.
  • Wenn eine Abfragebewertung Abtasten einer umfangreichen Tabelle erfordert, können einige Systeme zum Verwalten von Datenspeichern Metadaten über jeden Bereich des Tabellenspeichers vorhalten.
  • In der US-Patentschrift 8 572 091 wird offenbart, dass ein System, das einen skalierbaren Datenspeicherdienst realisiert, Tabellen in einem nichtrelationalen Datenspeicher im Auftrag von Dienst-Clients vorhalten kann. Siehe die Zusammenfassung, 1 bis 25, Spalte 1, Zeilen 5 bis 26, Spalte 45, Zeile 1 bis 67 und Ansprüche 1 bis 35.
  • Die US-Patentschrift 8 296 306 bezieht sich auf einen Algorithmus, der lediglich k Datenelemente, die die größten (oder kleinsten) Schlüsselwerte enthalten (d. h., die Top-k-Ergebnisse), aus einer Datenmenge in einer Zeitspanne abruft, die zu der Größe der Datenmenge direkt proportional ist. Siehe die Zusammenfassung, 1 bis 2, Spalte 2, Zeilen 5 bis 67, Spalte 3, Zeilen 1 bis 67 und Ansprüche 1 bis 14.
  • In der US-Patentschrift 8 239 404 wird eine Graph-Traversale beschrieben, die stark vernetzte Komponenten mit Eintritten, Ausstiegen und entsprechenden Kanten zum selben Zeitpunkt wirksam kennzeichnet. Eintritts- und Austrittsknoten können erkannt werden, indem jeder Knoten abgetastet wird, nachdem die stark vernetzten Komponenten gekennzeichnet wurden, ein Wiederaufgreifen dieser Knoten hat jedoch einen unerwünschten Aufwand zur Folge. Siehe die Zusammenfassung, 1 bis 4, Spalte 1, Zeilen 5 bis 67, Spalte 2, Zeilen 1 bis 5 und Ansprüche 1 bis 11.
  • In der US-Patentschrift 8 204 873 wird ein Verfahren zum Optimieren eines Abfrageausdrucks in einer Datenbank-Steuerungsroutine eines Datenbank-Servers offenbart. Siehe die Zusammenfassung, 1 bis 20, Spalte 1, Zeilen 5 bis 43, Spalte 12, Zeilen 1 bis 67 und Ansprüche 1 bis 15.
  • In der US-Patentschrift 8 010 766 werden ein Verfahren, ein Informationsverarbeitungssystem und ein computerlesbares Medium zum Verwalten von Tabellenabtastprozessen offenbart. Siehe die Zusammenfassung, 1 bis 10, Spalte 2, Zeilen 65 bis 67, Spalte 8, Zeilen 1 bis 67 und Ansprüche 1 bis 20.
  • In der US-Patentschrift 6 154 740 werden ein System und ein Verfahren zum Anzeigen einer sortierten Liste auf einer Anzeigeeinheit und ein Computer offenbart, der das System oder das Verfahren beinhaltet. Siehe die Zusammenfassung, 1 bis 3, Spalte 1, Zeilen 5 bis 67, Spalte 2, Zeilen 1 bis 47 und Ansprüche 1 bis 20.
  • In der US-Patentschrift 6 973 452 wird offenbart, dass ein umfangreicher Informationsraum in viele kleinere Informations-Speicherabschnitte unterteilt wird. Diese Speicherabschnitte werden mit statistischen Angaben über die Informationen, die sie enthalten, kommentiert. Wenn eine Suche nach Informationen eine Einschränkung enthält, die auf einem Wert beruht, kann der gewünschte Wertebereich mit den Wertebereichen aller Speicherabschnitte verglichen werden. Wenn der gewünschte Wertebereich außerhalb des Spektrums des Speicherabschnitts liegt, kann der Speicherabschnitt den gewünschten Wert nicht enthalten und muss bei der Suche nicht berücksichtigt werden.
  • In der US-Patentanmeldung 2013/0251235 wird ein System zum automatischen Verarbeiten und Sortieren von relevanten Dokumenten offenbart. Siehe die Zusammenfassung, 1 bis 5, Zeilen [0018] bis [0052], [0055] bis [0062] und Ansprüche 1 bis 38.
  • in der US-Patentanmeldung 2013/0046784 werden ein Verfahren und System zum Anpassen einer Folge von Symbolen an einen Regelsatz offenbart. Siehe die Zusammenfassung 1 bis 4, Zeilen [0005] bis [0007], [0044] bis [0050] und Ansprüche 1 bis 10.
  • Bei der US-Patentanmeldung 2012/0330954 kann ein System, das einen skalierbaren Datenspeicherdienst realisiert, Tabellen in einem nichtrelationalen Datenspeicher im Auftrag von Clients vorhalten. Siehe die Zusammenfassung, 1 bis 25, Zeilen [0001] bis [0003], [0170] bis [0178] und Ansprüche 1 bis 35.
  • In der US-Patentanmeldung 2012/0317128 werden ein Verfahren und eine Vorrichtung zum optimalen Verarbeiten von N Sortierungsanfragen bei einer Mehrbereichsabtastung offenbart, die enthalten: Zuweisen eines Puffers anhand einer ersten Anzahl von extrahierten Datensätzen, die in den Abfragen enthalten sind; Extrahieren erster Daten, die sich auf erste Attribute in einer ersten Liste beziehen, die in den Abfragen enthalten ist, und Speichern der extrahierten ersten Daten in dem Puffer; Extrahieren zweiter Daten, die sich auf die ersten Attribute beziehen, die nicht in der ersten Liste extrahiert wurden, die in den Abfragen enthalten sind; und Aktualisieren des Puffers, um den Abfragen zu entsprechen, indem die in dem Puffer gespeicherten Daten mit den zweiten Daten verglichen werden, wobei es sich bei den Abfragen um N Sortierungsabfragen bei einer Mehrbereichsabtastung für wenigstens einen Datensatz handelt, der anhand der ersten Attribute und der zweiten Attribute sortiert ist. Siehe die Zusammenfassung, 1 bis 7, Zeilen [0003] bis [0018], [0029] bis [0092] und Ansprüche 1 bis 20.
  • In der US-Patentanmeldung 2011/0082854 werden Verfahren und Systeme zur Abfrageoptimierung für ein Mehrmandanten-Datenbanksystem offenbart. Siehe die Zusammenfassung, 1 bis 9, Zeilen [0002] bis [0010], [0106] bis [0125] und Ansprüche 1 bis 45.
  • Weitere Dokumente, die von Interesse sind, sind nachfolgend aufgelistet: HERODOTOU et al.; ”A SQL-Tuning-Aware Query Optimizer”, Berichte der Stiftung VLDB, Bd. 3, Nr. 1, 13. bis 17. September 2010, Seiten 1 bis 12.
  • IP.COM et al.; ”Method And System of Restructuring Imperfect Loop Nest With Early Exits to Facilitate Locality Transformations”, IPCOM000232309D, Oktober 2013, Seiten 1 bis 7.
  • IP.COM et al.; ”System And Method For GROUP BY With IN-LIST Subquery Optimization”, IPCOM000229573D, 6. August 2013, Seiten 1 bis 6.
  • GRAEFE; ”Fast Loads and Fast Queries”, Springer-Verlag, Berlin, Heidelberg, DaWaK 2009, LNCS 5691, S. 111 bis 124.
  • KURZDARSTELLUNG
  • Gemäß einem ersten Aspekt wird ein durch einen Computer umgesetztes Verfahren zum Abtasten einer Mehrzahl von Speicherbereichen in einem Arbeitsspeicher nach einer spezifizierten Anzahl von Ergebnissen bereitgestellt, wobei jedem Speicherbereich ein Intervall zugehörig ist, das erste und zweite Intervallwerte enthält, die einen Wertebereich für Werte in diesem Speicherbereich angeben, wobei das durch einen Computer umgesetzte Verfahren aufweist: Sortieren der ersten Intervallwerte in eine Reihenfolge, wobei die Reihenfolge der ersten Intervallwerte eine Abtastreihenfolge für die Mehrzahl von Speicherbereichen festlegt; Festlegen eines Ergebniswerts, wobei es sich bei dem Ergebniswert um eine obere Grenze oder eine untere Grenze handelt oder der Ergebniswert außerhalb der spezifizierten Anzahl von Ergebnissen liegt; und Untersuchen der sortierten ersten Intervallwerte und gegebenenfalls Abtasten entsprechender einzelner Speicherbereiche in Reaktion auf Vergleichen des festgelegten Ergebniswerts mit dem ersten Intervallwert dieses Speicherbereichs.
  • Gemäß einem zweiten Aspekt wird ein System bereitgestellt, das aufweist: einen Arbeitsspeicher, der eine Mehrzahl von Speicherbereichen aufweist, wobei jedem Speicherbereich ein Intervall zugehörig ist, das erste und zweite Intervallwerte enthält, die einen Wertebereich für Werte in diesem Speicherbereich angeben; eine Netzwerk-Schnittstelle; und einen Prozessor, der eingerichtet ist zum: Sortieren der ersten Intervallwerte in eine Reihenfolge, wobei die Reihenfolge der ersten Intervallwerte eine Abtastreihenfolge für die Mehrzahl von Speicherbereichen festlegt; Festlegen eines Ergebniswerts, wobei es sich bei dem Ergebniswert um eine obere Grenze oder eine untere Grenze handelt oder der Ergebniswert außerhalb der spezifizierten Anzahl von Ergebnissen liegt; und Untersuchen der sortierten ersten Intervallwerte und gegebenenfalls Abtasten entsprechender einzelner Speicherbereiche in Reaktion auf Vergleichen des festgelegten Ergebniswerts mit dem ersten Intervallwert dieses Speicherbereichs.
  • Gemäß einem dritten Aspekt wird ein Computerprogrammprodukt bereitgestellt, um einem Benutzer Informationen bereitzustellen, das ein computerlesbares Speichermedium mit darin verkörpertem computerlesbaren Programmcode aufweist, wobei der computerlesbare Programmcode beim Ausführen durch einen Prozessor bewirkt, dass der Prozessor Folgendes ausführt: für eine Mehrzahl von Speicherbereichen im Arbeitsspeicher, wobei jedem Speicherbereich ein Intervall zugehörig ist, das erste und zweite Intervallwerte enthält, die einen Wertebereich für Werte in diesem Speicherbereich angeben, Sortieren der ersten Intervallwerte in eine Reihenfolge, wobei die Reihenfolge der ersten Intervallwerte eine Abtastreihenfolge für die Speicherbereiche festlegt; Festlegen eines Ergebniswerts, wobei es sich bei dem Ergebniswert um eine obere Grenze oder eine untere Grenze handelt oder der Ergebniswert außerhalb einer spezifizierten Anzahl von Ergebnissen liegt; und Untersuchen der sortierten ersten Intervallwerte und gegebenenfalls Abtasten entsprechender einzelner Speicherbereiche im Arbeitsspeicher nach der spezifizierten Anzahl von Ergebnissen in Reaktion auf Vergleichen des festgelegten Ergebniswerts mit dem ersten Intervallwert dieses Speicherbereichs.
  • Bei weiteren Ausführungsformen können die hier offenbarten Techniken Sortieren der zweiten Intervallwerte beinhalten.
  • Gemäß einer Ausführungsform wird eine Lösung zum frühzeitigen Beenden von Tabellenabtastungen von ungenau geordneten und/oder gruppierten Objekten unter Verwendung von nahezu geordneten Zuordnungen bereitgestellt.
  • KURZBESCHREIBUNG DER MEHREREN ZEICHNUNGSANSICHTEN
  • In den verschiedenen Figuren werden im Allgemeinen gleiche Bezugszeichen verwendet, um ähnliche Komponenten zu bezeichnen.
  • Ausführungsformen der vorliegenden Erfindung werden nachfolgend lediglich beispielhaft und unter Bezugnahme auf die folgenden Zeichnungen beschrieben, in denen:
  • 1 eine Darstellung einer beispielhaften Datenverarbeitungsumgebung zum Verwenden bei einer Ausführungsform der vorliegenden Erfindung ist;
  • 2A eine Darstellung eines Beispiels von Bereichen (Speicherabschnitten) eines Tabellenspeichers gemäß einer Ausführungsform der vorliegenden Erfindung ist;
  • 2B eine Darstellung eines Beispiels von Metadaten, die Bereichen des Tabellenspeichers entsprechen, gemäß einer Ausführungsform der vorliegenden Erfindung ist;
  • 3 ein Prozedur-Ablaufplan ist, der allgemein die Verwendung von Metadaten veranschaulicht, die einem Speicherbereich zugehörig sind, um zu ermitteln, ob der Speicherbereich abgetastet werden soll, gemäß einer Ausführungsform der vorliegenden Erfindung;
  • die 4A bis 4B ein spezifischerer Prozedur-Ablaufplan sind, der auf dem Ablaufplan von 3 beruht und die Weise veranschaulicht, wie Metadaten verwendet werden können, um bedingtes Beenden von Tabellenabtastungen gemäß einer Ausführungsform der vorliegenden Erfindung zu steuern;
  • 5 ein weiterer Prozedur-Ablaufplan ist, der eine Weise veranschaulicht, wie Metadaten, die Speicherbereichen zugehörig sind, aktualisiert werden können, wenn Datensätze in Speicherbereichen gemäß einer Ausführungsform der vorliegenden Erfindung hinzugefügt oder gelöscht werden;
  • 6 ein Beispiel eines Systems/einer Vorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung ist.
  • GENAUE BESCHREIBUNG
  • Datenspeicher-Abfragen können häufig eine Menge von Ergebniswerten sortieren und diese auf eine Teilmenge von Ergebniswerten beschränken. Typische Verfahren enthalten Abtasten von umfangreichen Datentabellen zum Finden von Ergebnissen in Reaktion auf eine Abfrage, Sortieren und/oder Zusammenführen der Ergebnisse und Verwerfen aller Ergebnisse außer beispielsweise einer Menge von Top-N-Ergebnissen, wobei N eine beliebige Ganzzahl, z. B. 50 ist.
  • Wenn eine umfangreiche Tabelle auf einer Platte gespeichert wird, kann sie möglicherweise so groß oder so fragmentiert sein, dass es zeitaufwändig wird, den Plattenkopf zum Durchsuchen der umfangreichen Tabelle zu vielen unterschiedlichen Plattenbereichen zu verschieben. Metadaten, die einem Bereich des Speichers entsprechen, können verwendet werden, um Tabellendaten zu kennzeichnen, die in dem Bereich des Speichers enthalten sind. Ein erster Intervallwert kann z. B. für jeden Bereich von Zeilen einen minimalen Datenwert für jede Spalte repräsentieren, und ein zweiter Intervallwert kann für jeden Bereich von Zeilen einen maximalen Datenwert für jede Spalte repräsentieren. Sowohl die ersten als auch die zweiten Intervallwerte repräsentieren Typen von Metadaten, die für zahlreiche Bereiche des Speichers festgelegt und (in Kombination mit zusätzlichen Typen von Informationen) außerdem als „Zonenzuordnungen” bezeichnet werden können. Die Verwendung von Zonenzuordnungen zum Kennzeichnen von bestimmten Datenbereichen in einem Speicherbereich gemäß Ausführungsform der vorliegenden Erfindung verringert die Platten-Abtastdauer und die rechentechnische Belastung. Es ist zu beachten, dass Minimalwerte und Maximalwerte der Zonenzuordnung möglicherweise konservativ sind. Mit anderen Worten, ein Minimalwert eines Eintrags der Zonenzuordnung kann möglicherweise kleiner sein als das aktuelle Minimum für den entsprechenden Speicherbereich von Daten (z. B. infolge des Löschens eines Datensatzes usw.), und ein Maximalwert eines Eintrags der Zonenzuordnung kann gleichfalls möglicherweise größer sein als das aktuelle Maximum für den entsprechenden Speicherbereich von Daten.
  • Bei Ausführungsformen der vorliegenden Erfindung werden Techniken zum Nutzen von Zonenzuordnungen bereitgestellt, um Abfragebewertungen beim Vorliegen einer spezifizierten Bedingung vorzeitig zu beenden. Durch Sortieren einer Liste von minimalen Datenwerten (die auch als erste Intervallwerte bezeichnet werden) von Zonenzuordnungen oder alternativ einer Liste von maximalen Datenwerten (die auch als zweite Intervallwerte bezeichnet werden) kann eine Tabellenabtastung möglicherweise beendet werden, z. B. das Lesen einer Tabelle unterbrochen werden, nachdem festgestellt wurde, dass alle Ergebnisse, die möglicherweise Teil einer Top-N-Sortierung sind, gefunden wurden. Daher können die hier offenbarten Techniken die rechentechnischen Anforderungen bei E/A-Operationen wie beispielsweise Lese/Schreib-Operationen vermindern. Bei bevorzugten Ausführungsformen werden die hier präsentierten Techniken bei Abfragen angewendet, die eine Top-N-Sortierung enthalten, d. h. eine Bedingung „ORDER BY”, der eine Bedingung „LIMIT” folgt.
  • In 1 ist eine beispielhafte Datenverarbeitungsumgebung zur Verwendung bei Ausführungsformen der vorliegenden Erfindung dargestellt. Die Umgebung enthält insbesondere ein oder mehrere Client- oder Endbenutzer-Systeme 100 und ein oder mehrere Server-Systeme 110 und 120. Das Host-Server-System 110 und der Informations-Server können voneinander entfernt angeordnet sein und über ein Netzwerk 130 Daten austauschen. Abfrage-Anforderungen, die vom Client-System 100 stammen, können zum Informations-Server 120 übertragen werden, um gespeicherte Daten in einer Datenbank-Speichereinheit 140 zu suchen. Das Netzwerk 130 kann durch eine beliebige Anzahl von geeigneten Datenübertragungsmedien umgesetzt werden (z. B. Weitbereichs-Netzwerk (WAN), Lokalbereichs-Netzwerk (LAN), Internet, Intranet usw.). Alternativ kann es sich bei den Server-Systemen 110 und 120 um lokale Systeme handeln, die über jedes geeignete lokale Datenübertragungsmedium Daten austauschen (z. B. Lokalbereichs-Netzwerk (LAN), festverdrahtete Verbindung, drahtlose Verbindung, Intranet usw.). Netzwerk-Schnittstelleneinheiten sind mit 112 und 122 gezeigt.
  • Client-Systeme 100 ermöglichen, dass Benutzer Dokumente (z. B. Dokumente für Dokument-Sammlungen, Dokumente zur Analyse usw.) an ein Informations-Server-System 120 zum Speichern in einer Datenbank-Speichereinheit übermitteln. Die hier erläuterten Dokumente (oder weitere Informationen) können einem vorhandenen Datenbank-Speicher als Speicherbereiche (die auch als Speicherabschnitte bezeichnet werden) hinzugefügt werden.
  • Eine Datenbank-Speichereinheit 140 kann Informationen zur Analyse speichern (z. B. Ergebnisse einer Suche nach Top-N-Ergebnissen usw.) und kann in jeder herkömmlichen oder anderen Datenbank oder Speichereinheit realisiert werden. Die Datenbank-Speichereinheit 140 kann lokal sein oder von dem Informations-Server 120 entfernt angeordnet sein und kann über jedes geeignete Datenübertragungsmedium (z. B. Lokalbereichs-Netzwerk (LAN), Weitbereichs-Netzwerk (WAN), Internet, festverdrahtete Verbindung, drahtlose Verbindung, Intranet usw.) Daten austauschen. Das Client-System 100 kann eine grafische Benutzeroberfläche (z. B. GUI usw.) oder eine andere Schnittstelle (z. B. Befehlsleitungs-Bestätigungen, Menü-Bildschirme usw.) darstellen, um Informationen von Benutzern anzufordern, die die gewünschten Dokumente und Analysen betreffen, und kann Berichte bereitstellen, die die Analyse von Ergebnissen enthalten (z. B. Textanalysen, Suchergebnisse, Profil-Bewertungszahlen usw.).
  • Eine Mehrzahl von Datenbank-Speichereinheiten 140 kann in einem Datenspeicher vorhanden sein. Ein Informations-Server 120 kann Informationen in der Datenbank-Speichereinheit 140 speichern und von dieser zum Host-Server 110 abrufen. Der Host-Server 110 empfängt Anforderungen von dem Client-System 100 und Antworten an das Client-System 100. Bei einer Ausführungsform kann der Raum des Arbeitsspeichers in der Datenbank-Speichereinheit 140 in mehrere Partitionen unterteilt sein, darunter eine primäre Partition zum Speichern von Benutzer-Informationen, eine Spiegel-Partition zum Speichern einer Sicherungskopie der primären Informationen, eine temporäre Partition zum Halten von Zwischenergebnissen für den Informations-Server 120 und eine Kern-Partition zum Halten von Informationen über das physische Layout von Informationen in der Datenbank-Speichereinheit 140.
  • In 2A wird eine Ausführungsform der vorliegenden Erfindung betrieben, indem ein umfangreicher Informationsraum 160 in mehrere kleinere Informationsbereiche 170 und 180 (die auch als „Speicherabschnitte” oder „Speicherbereiche” bezeichnet werden) unterteilt wird. Jeder Speicherabschnitt kann des Weiteren in mehrere aneinander grenzende Blöcke mit fester Größe oder Blöcke des Teil-Speicherabschnitts mit veränderlicher Größe unterteilt werden. Ein Vorteil der Verwendung von festen Größen besteht darin, dass bestimmte Berechnungen schneller und weniger komplex werden. Bei alternativen Ausführungsformen der Erfindung können feste Größen außerdem anhand der Größe oder anderer Charakteristiken der Gesamt-Datenbank dynamisch geändert werden. Veränderliche Blockgrößen können anhand beispielsweise eines Attribut-Typs dynamisch modifiziert werden. Wenn sich z. B. der minimale Datenwert (auch als erste Intervallwerte bezeichnet) und der maximale Datenwert (auch als zweite Intervallwerte bezeichnet) auf Zeitstempel-Daten beziehen, kann eine Größe des Speicherabschnitts verändert werden, so dass alle Daten für eine bestimmte Zeitperiode in einem Datenblock gespeichert werden. Bei einem Block handelt es sich um die kleinste Übertragungseinheit zwischen der Datenbank-Speichereinheit 140, die den vollständigen Informationsraum hält, und dem Informations-Server 120, der in der Lage ist, die Informationen zu untersuchen und zu manipulieren. Bei einer Ausführungsform kann ein Block eine Größe von 128 KByte haben, wobei andere Größen ebenfalls geeignet sind.
  • Bei einem Speicherabschnitt 170, 180 handelt es sich um eine zweckmäßige Einheit der Speicherzuweisung, so dass dann, wenn ein Informationsraum größer wird, sein Wachstum in Einheiten von Speicherabschnitten quantisiert ist. Während der Adressenraum in einem Speicherabschnitt durchgehend ist (d. h. keine Leerstellen), kann ein Informationsraum 160 nicht durchgängige Speicherabschnitte enthalten, da keine Forderung dahingehend besteht, dass eine spätere Zuweisung eines Speicherabschnitts einen Adressenbereich erzeugen sollte, der eine feste Beziehung zu dem Adressenbereich einer früheren Zuweisung aufweist.
  • In 2B werden bei einer Ausführungsform der vorliegenden Erfindung Speicherabschnitte mit statistischen Angaben (z. B. Metadaten) über die Informationen kommentiert, die in den Speicherabschnitten enthalten sind, und diese Informationen können als Einträge in einer nahezu geordneten Zuordnungstabelle oder Liste 200 gespeichert werden. Wie in 2B gezeigt besitzt eine nahezu geordnete Zuordnungstabelle 200 eine Struktur, die eine Tabellenkennung 210, einen Spaltenindex 220, einen minimalen Datenwert 230, einen maximalen Datenwert 240 und eine Speicherabschnitt-Kennung 250 aufweist. Mehrere Einträge von Metadaten sind bei 260(1) bis 260(N) gezeigt. Die Tabellenkennung 210 bezeichnet eindeutig einen Informationsraum, der beispielsweise einer relationalen Datenbanktabelle entsprechen kann. Bei einer Ausführungsform handelt es sich um einen numerischen 4-Byte-Wert, der eine relationalen Datenbanktabelle eindeutig kennzeichnet. Der Spaltenindex 220 kennzeichnet eindeutig eine bestimmte Klasse von Informationen in dem Informationsraum, der durch die Tabellenkennung 210 gekennzeichnet ist. Bei einer Ausführungsform handelt es sich bei dem Spaltenindex 220 um einen numerischen 2-Byte-Wert, der eine Spalte in der relationalen Tabelle bezeichnet, die durch die Tabellenkennung 210 gekennzeichnet ist. Bei einer weiteren Ausführungsform kann der Spaltenindexwert 220 der Reihenfolge entsprechen, in der Spalten in der relationalen Tabelle definiert werden.
  • Bei einer Ausführungsform der Erfindung kann es sich bei dem minimalen Datenwert 230 und dem maximalen Datenwert 240 um 8-Byte-Größen handeln, die verschiedene Typen von Datenwerten halten können, darunter Datumangaben, Uhrzeitangaben, Zeitangaben, ganzzahlige Werte usw. Die tatsächlichen Typen von Daten, die durch den minimalen Datenwert und den maximalen Datenwert gehalten werden, sind in der Definition der Spalte spezifiziert, die durch den Spaltenindex 220 bezeichnet wird. Bei einer Ausführungsform kann es sich bei der Speicherabschnitt-Kennung 250 möglicherweise um einen numerischen 2-Byte-Wert handeln, der einen bestimmten Speicherabschnitt in dem Informationsraum bezeichnet, der durch die Tabellenkennung 210 bezeichnet wird. Bei größeren Speicherpartitionen würden entweder 4-Byte-Speicherabschnitt-Kennungen oder größere Speicherabschnitte verwendet werden.
  • Der minimale Datenwert 230 und der maximale Datenwert 240 entsprechen den minimalen und maximalen Datenwerten für bestimmte Arten von Informationen in einem Speicherabschnitt. Wenn eine Abfragebewertung für Informationen eine Beschränkung enthält, die auf einem Wert beruht, kann der Wert mit den Metadaten verglichen werden, die dem Abschnitt zugehörig sind, z. B. der minimale Datenwert jedes Speicherabschnitts, um zu ermitteln, ob der Speicherabschnitt durchsucht werden sollte. Diese Techniken werden nachfolgend in Verbindung mit den 3 und 4 beschrieben.
  • Zonenzuordnungen nutzen üblicherweise einen kleinen Betrag des Plattenspeicherraums, können gemeinsam mit den entsprechenden Daten angeordnet sein, die sie beschreiben, führen einen geringen Betrag von rechentechnischer Latenz in das System ein und können ohne Erfahrungen in Bezug auf eine technisch anspruchsvolle Datenbank-Administration vorgehalten werden. Es ist zu beachten, dass das Konzept von Zonenzuordnungen nicht auf die speziellen Typen von Metadaten-Informationen beschränkt ist, die in 2 gezeigt sind. Zusätzliche Typen von Metadaten-Informationen, die zum Kennzeichnen des Bereichs des Speichers (Speicherabschnitt) verwendet werden, fallen selbstverständlich in den Umfang der hier offenbarten Ausführungsformen.
  • 3 stellt einen allgemeinen Überblick über Ausführungsformen der vorliegenden Erfindung bereit. Die Operation 310 tastet eine Mehrzahl von Speicherbereichen im Arbeitsspeicher nach einer spezifizierten Anzahl von Ergebnissen ab, wobei jedem Speicherbereich ein Intervall zugehörig ist, das erste und zweite Intervallwerte enthält, die einen Wertebereich für Werte in diesem Speicherbereich angeben. In der Operation 320 werden erste Intervallwerte in einer Reihenfolge sortiert, wobei die Reihenfolge der ersten Intervallwerte eine Abtastreihenfolge für die Mehrzahl von Speicherbereichen festlegt, z. B. in aufsteigender oder absteigender Reihenfolge. In der Operation 330 wird ein Ergebniswert festgelegt, wobei es sich bei dem Ergebniswert um eine obere Grenze oder eine untere Grenze handelt oder der Ergebniswert liegt außerhalb der spezifizierten Anzahl von Ergebnissen. In der Operation 340 werden die sortierten ersten Intervallwerte untersucht, und in Reaktion auf Vergleichen des festgelegten Ergebniswerts mit dem ersten Intervallwert dieses Speicherbereichs werden entsprechende einzelne Speicherbereiche abgetastet.
  • In den 4A bis 4B ist ein beispielhafter Ablaufplan einer genaueren Reihe von Operationen gezeigt, die in dem Ablaufplan von 3 bereitgestellt werden. Es ist klar, dass die hier bereitgestellten Techniken alternative Reihenfolgen von einer oder mehreren Operationen umfassen können, die in den 4A bis 4B gezeigt sind. Beispielsweise können andere Reihenfolgen von Operationen auftreten, um dasselbe Ergebnis zu erreichen, und können durch die hier eingeschlossenen Techniken umfasst werden.
  • Ausführungsformen der vorliegenden Erfindung können auf Abfragen angewendet werden, die eine Top-N-Sortierung enthalten (z. B. über eine Bedingung „ORDER BY”, die mit einer Bedingung „LIMIT N” verknüpft ist). Top-N-Sortierungen nutzen einen Algorithmus zur partiellen Sortierung zum Sortieren eines Array von m Elementen, so dass die Top-N-Ergebnisse die kleinsten Werte von m Elementen, wenn sie sortiert sind, in aufsteigender Reihenfolge enthalten. Im Allgemeinen enthalten Top-N-Sortierungen eine Teilmenge von Elementen das Array von m Elementen, vorausgesetzt, dass die Anzahl von Elementen m größer ist als die Anzahl von Top-N-Elementen. Zwar sparen Algorithmen zum partiellen Sortieren einen Großteil des Aufwands ein, der dem Sortieren zugehörig ist, wenn lediglich beste Ergebnisse gewünscht sind, derartige Algorithmen reduzieren jedoch nicht die Arbeitsbelastung bei E/A-Operationen wie z. B. Lesen/Schreiben.
  • Ausführungsformen der vorliegenden Erfindung können außerdem auf Anfragen angewendet werden, die eine Operation Gruppenbildung enthalten, der eine Top-N-Sortierung folgt (z. B. über Bedingungen „GROUP BY”, „ORDER BY” und/oder „LIMIT N”, wobei die Reihenfolge durch eine beliebige Teilmenge der Gruppenbildungs-Spalten festgelegt wird), wenn die zusammengeführten Datenstrukturen wie bei einer Top-N-Sortierung vorgehalten werden.
  • Ausführungsformen der vorliegenden Erfindung können außerdem Ausführen einer Gruppenbildung unter Verwendung einer Datenstruktur mit Top-N-Sortierung umfassen, bei der die besten N Gruppen beibehalten werden. Eine Abfrage kann z. B. eine Operation Gruppenbildung an einer oder mehreren Spalten ausführen, z. B. „SELECT ... GROUP BY A, B”. Die Ergebnisse der Operation Gruppenbildung können sortiert werden, so dass die Sortierungsschlüssel eine Teilmenge der Gruppenbildungsschlüssel darstellen, z. B. „ORDER BY A”, „ORDER BY B” oder „ORDER BY A, B”. Die Ergebnisse können schließlich wie bei „LIMIT 10” eingeschränkt werden. (Neue Datensätze können gruppiert werden, indem eine vorhandene Gruppe gesucht wird, zu der sie gehören, oder indem eine neue Gruppe erzeugt wird). Gruppen können anhand eines oder mehrerer Sortierungsschlüssel gekennzeichnet werden (z. B. Übereinstimmung mit einem oder mehreren Sortierungsschlüsseln), und eine spezifizierte Anzahl von Ergebnissen weist verschiedene Gruppen auf (beispielsweise wird es sich im Allgemeinen bei einer spezifizierten Anzahl von Ergebnissen um eine spezifizierte Anzahl von verschiedenen Gruppen handeln.) Ähnlich wie bei einer Top-N-Sortierung ohne Operation „GROUP BY” kann ein Abtasten von Speicherbereichen in Fällen vermieden werden, bei denen bei einer aufsteigenden Sortierung ein Minimalwert eines Speicherbereichs einen aktuellen ungünstigsten Gruppenbildungsschlüssel in der Top-N-Datenstruktur übersteigt, oder bei einer absteigenden Sortierung, bei der ein Maximalwert eines Speicherbereichs kleiner ist als ein aktueller ungünstigster Gruppenbildungsschlüssel in der Datenstruktur mit Top-N-Sortierung.
  • Es ist außerdem klar, dass Zonenzuordnungen nicht auf einen einzelnen ersten Intervallwert oder einen einzelnen zweiten Intervallwert beschränkt sein sollen, sondern mehrere Intervalle enthalten können, von denen jedes einem Minimalwert und einem Maximalwert für einen bestimmten Typ von Daten entspricht.
  • In 4A wird in der Operation 410 eine Abfrage-Anforderung empfangen. In der Operation 420 wird ermittelt, ob gegebenenfalls Metadaten (z. B. eine Zonenzuordnung) für jeden Speicherbereich erzeugt wurden und aktuell sind. In der Operation 425 werden Zonenzuordnungen erzeugt/aktualisiert, falls nicht bereits vorhanden. In der Operation 430 werden Speicherbereiche/Speicherabschnitte, die für die Abfrage relevant sind (abgetastet werden sollen) festgelegt, und es wird eine Liste gebildet/erzeugt, die Metadaten enthält, die diese relevanten Speicherbereiche kennzeichnen. In der Operation 440 kann diese Liste von Bereichen vor dem Ausführen von E/A-Operationen unter Verwendung der Spalte, bei der es sich um den primären Sortierungsschlüssel für die Top-N-Sortierung handelt, in aufsteigender oder absteigender Reihenfolge sortiert werden. Wenn beispielsweise beim Erzeugen einer Liste von Speicherbereichen, die zu verarbeiten sind, bekannt ist, dass ein Speicherbereich Datensätze mit Spaltenwerten zwischen 100 und 200 enthält (wie z. B. in Metadaten der Zonenzuordnung angegeben), kann dann, wenn eine Abfrage mit Bereichswerten bewertet wird, die außerhalb des bekannten Bereichs liegen (z. B. eine Abfrage mit einem Wert von 500), bei der Bewertung der gesamte Speicherbereich vom Abtasten ausgeschlossen werden. Wie hier erläutert werden in Zonenzuordnungen beispielsweise für jeden Bereich von Zeilen ein minimaler Datenwert und ein maximaler Datenwert für jede Spalte gespeichert. Daher wird durch die Reihenfolge der Zonenzuordnungsdaten in der sortierten Liste die Reihenfolge der Tabellenabtastung festgelegt. Die in dem Informationsraum enthaltenen Daten müssen in Bezug auf die Sortierungsspalte nicht geordnet, teilweise geordnet oder selektiert sein.
  • Wenn bei einer Top-N-Sortierung kleine Werte bevorzugt sind (z. B. eine aufsteigende Sortierung), kann die Liste von Speicherbereichen nach minimalen Datenwerten sortiert sein (d. h. erste Intervallwerte), und Bereiche ohne kleine Werte werden an das Ende der Liste verschoben. Wenn bei einer Top-N-Sortierung große Werte bevorzugt sind (z. B. eine absteigende Sortierung), kann die Liste von Speicherbereichen nach maximalen Datenwerten sortiert sein (d. h. zweite Intervallwerte), und Bereiche ohne große Werte werden an das Ende der Liste verschoben
  • Bei der Operation 450 von 4B (Fortsetzung der Operation 440 von 4A) wird ein Speicherbereich ausgewählt, der dem ersten Eintrag in der sortierten Liste entspricht. Bei der Operation 455 wird ein ausgewählter Speicherbereich auf der Grundlage einer Abfrage verarbeitet. Bei der Operation 460 wird ein Ergebniswert x oder ungünstigster Wert x (wenn angenommen wird, dass wenigstens N Ergebnisse vorhanden sind) der Werte in der Top-N-Sortierung festgelegt. Zur Vereinfachung wird angemerkt, dass bei diesem Schritt angenommen wird, dass beim Verarbeiten eines einzelnen Speicherbereichs die N besten Ergebnisse um wenigstens N Werte erweitert werden. Wenn das nicht der Fall ist, werden zusätzliche Speicherbereiche verarbeitet, bis diese Bedingung erfüllt ist. Bei der Operation 462 wird ein minimaler Datenwert eines Bereichs, min(R1) eines ersten Eintrags der sortierten Liste festgelegt. Die Operation 462 stellt einen Bedingungsausdruck zum Vergleichen eines Ergebniswerts x mit dem minimalen Datenwert eines Speicherbereichs bereit. Wenn beim Verarbeiten einer Top-N-Sortierung der N-te Wert x ist (ein aktueller „ungünstigster” Wert), müssen Bereiche, die einen minimalen Datenwert enthalten, der größer ist als x, (bei einer aufsteigenden Sortierung) nicht abgetastet werden. Wenn diese Bedingung nicht erfüllt ist, wird bei der Operation 470 der nächste Eintrag der sortierten Liste ausgewählt. Bei der Operation 475 wird der Speicherbereich auf der Grundlage der Abfrage verarbeitet. Bei der Operation 480 wird der ungünstigste Wert x aktualisiert. Diese Reihe von Operationen wird wiederholt, bis die spezifizierte Bedingung erfüllt ist. Wenn diese Bedingung erfüllt ist, gibt es keine zusätzlichen Werte, die mit den Top-N-Ergebnissen überlappen. Wenn der N-te Wert einer Top-N-Suche x ist und der minimale Datenwert für einen Bereich min(R1) größer ist als der Wert von x, kann der gesamte Speicherbereich verworfen werden.
  • Nachdem ein Speicherbereich R1 gefunden wurde, so dass der minimale Datenwert von R1 größer ist als der ungünstigste Wert x einer Top-N-Sortierung, werden darüber hinaus durch Sortieren der Liste von ausgewählten Speicherbereichen nach minimalen Datenwerten alle nachfolgenden Bereiche R2, R3 usw. ebenfalls minimale Datenwerte enthalten, die größer als x sind. Folglich kann das Abtasten frühzeitig beendet und das Lesen von Daten unterbrochen werden, wie nachfolgend unter Bezugnahme auf Gleichung 1 und in der Operation 465 gezeigt wird. Wenn min(R1) ≥ x, (Gl. 1) dann min(R2) ≥ min(R1) ≥ x
  • Bei einem Speicherbereich mit einem minimalen Datenwert, der x übersteigt, gibt es keine Ergebnisse innerhalb der Top-N-Ergebnisse, und deswegen kann der gesamte Speicherbereich verworfen werden, da er nicht in die Suche eingeschlossen werden muss. Nachdem ein Speicherbereich in der Liste verworfen wurde, können darüber hinaus alle nachfolgenden Speicherbereiche in der Liste verworfen werden (vorausgesetzt, dass die Liste von Speicherbereichen sortiert wurde). In vielen Fällen wird das ein frühzeitiges Beenden einer Tabellenabtastung ermöglichen, wenn ein Punkt erreicht wird, an dem keiner der verbleibenden Bereiche möglicherweise einen Wert hält, der eine Top-N-Sortierung übersteht. Für kleine Werte N sind die hier präsentierten Techniken wirkungsvoll beim Vermindern des E/A-Aufwands, der minimal erforderlich ist, um eine Anfrage zu beantworten, was einen erheblichen Einfluss auf die Leistungsfähigkeit hat.
  • Es ist zu beachten, dass bei Fällen, bei denen mehrere Sortierungsschlüssel vorhanden sind, der oben genannte Vergleich (z. B. Gl. 1) gilt – ein Eintrag der Zonenzuordnung mit einem Wert x kann nicht automatisch verworfen werden, da ein Sortierungsschlüssel mit geringerer Priorität (z. B. ein zweiter Sortierungsschlüssel) festlegen kann, dass der Eintrag eingeschlossen werden soll. Jedoch bei Fällen, bei denen ein einzelner Sortierungsschlüssel verwendet wird, kann das Vergleichen verbessert werden, wie durch Gl. 2 gezeigt ist. Wenn min(R1) ≥ x, (Gl. 2) dann min(R2) ≥ min(R1) ≥ x
  • Das aktuelle ungünstigste Ergebnis kann außerdem als „Ergebniswert” bezeichnet werden. Zwar repräsentiert 4 den Ergebniswert als einen aktuellen ungünstigsten Wert einer Top-N-Sortierung, d. h. eine obere Grenze bei einer aufsteigenden Sortierung und eine untere Grenze bei einer absteigenden Sortierung, es ist jedoch zu beachten, dass Ausführungsformen der vorliegenden Erfindung außerdem möglicherweise Werte außerhalb der spezifizierten Anzahl von Ergebnissen enthalten. Zu Werten, die außerhalb der spezifizierten Anzahl von Ergebnissen liegen, gehören Werte, die größer sind als die aktuelle obere Grenze, sowie Werte, die kleiner sind als die aktuelle untere Grenze. Bei einer oberen Grenze handelt es sich um einen Maximalwert der Werte der Top-N-Sortierung. Bei einer unteren Grenze handelt es sich um einen Minimalwert der Werte der Top-N-Sortierung.
  • Außerdem ist zu beachten, dass der Ergebniswert im Allgemeinen mit der Zeit besser wird, wenn das Abtasten fortschreitet (wenn es sich z. B. bei dem Ergebniswert um einen minimalen Wert handelt, kann sich der Ergebniswert weiter vermindern, wenn das Abtasten fortschreitet, und ein neuer minimaler Wert wird gekennzeichnet). Ein Verbessern von Ergebniswerten ermöglicht, dass noch mehr Daten ausgelassen werden, wenn das Abtasten fortschreitet, und deswegen wird die rechentechnische Arbeitsbelastung von E/A-Operationen weiter verringert.
  • Ausführungsformen der vorliegenden Erfindung stellen eine Rückmeldung von einem Algorithmus der Top-N-Sortierung zu der E/A-Schicht bereit, um die rechentechnische Arbeitsbelastung zu vermindern. Die oben beschriebene Entscheidung für ein frühzeitiges Beenden ermöglicht, dass zugehörige E/A-Operationen angehalten werden, und stellt daher eine Form der Rückmeldung an die E/A-Schicht bereit. Ein Sortieren der Liste von Einträgen der Zonenzuordnung stellt eine Optimierung bereit, sobald festgelegt wurde, ein frühzeitiges Beenden einer Top-N-Sortierung Elementen auszuführen, wobei eine zugehörige rechentechnische Arbeitsbelastung von E/A-Operationen vermieden werden kann.
  • Wenn bei einer Abfrage ein umfangreicher Informationsraum nach Werten in einem spezifizierten Bereich abgetastet wird, wird somit gemäß Ausführungsformen der vorliegenden Erfindung eine Liste von Zonenzuordnungsdaten, die jedem Speicherbereich zugehörig ist, erzeugt, sortiert und untersucht, um zu ermitteln, ob die Speicherbereiche möglicherweise Werte in dem spezifizierten Bereich der Top-N-Sortierung enthalten könnte. Lediglich Bereiche, die Werte in dem spezifizierten Bereich enthalten, werden abgetastet; andere Bereiche müssen nicht berücksichtigt werden. Die hier beschriebenen Techniken ermöglichen ein wesentliches Verringern des Zeitumfangs, der zum Abtasten eines umfangreichen Informationsraums erforderlich ist.
  • Die hier dargestellten Techniken ermöglichen außerdem eine Vorhersage einer bestmöglichen frühen Schätzung von Top-N-Ergebnissen. Wenn z. B. ein erster Speicherbereich einen entsprechenden Eintrag der Zonenzuordnung enthält, der einen Wertebereich von 1 bis 5 angibt, und ein zweiter Speicherbereich einen entsprechenden Eintrag der Zonenzuordnung enthält, der einen Wertebereich von 3 bis 20 angibt, fallen relevante Daten möglicherweise mit höherer Wahrscheinlichkeit in den ersten Bereich (wenn angenommen wird, dass eine aufsteigende Sortierung verwendet wird), und dieser Bereich würde zuerst gelesen werden. Demzufolge ermöglicht das Nutzen von sortierten Metadaten, dass relevante Ergebnisse optimal gekennzeichnet werden.
  • Bei anderen Ausführungsformen können die hier dargestellten Techniken verwendet werden, um ein optimales frühzeitiges Beenden einer Tabellenabtastung zu erreichen, wenn es sich bei einer nachgelagerten Operation um eine Operation Grand Aggregate Min(Column) oder Max(Column) handelt; dabei handelt es sich um einen entarteten Fall einer Top-N-Sortierung, wobei der Grenzwert 1 ist und die ausgewählte Spalte der Sortierungsschlüssel ist.
  • In diesem Fall kann die Operation zum teilweisen Sortieren zu einer Operation entarten oder durch eine Operation ersetzt werden, die lediglich einen Datensatz aufbewahrt, z. B. den Datensatz mit dem minimalen Wert des Sortierungsschlüssels oder den Datensatz mit dem maximalen Wert des Sortierungsschlüssels. Bei einer Operation, die den Datensatz mit dem minimalen Wert des Sortierungsschlüssels aufbewahrt, kann jeder Speicherbereich übersprungen werden, dessen minimaler Wert, der durch den entsprechenden Eintrag der Zonenzuordnung angegeben wird, höher ist als der Sortierungsschlüssel. (Alternativ kann dann, wenn bei einer Operation der Datensatz mit dem maximalen Wert des Sortierungsschlüssels aufbewahrt wird, jeder Speicherbereich übersprungen werden, dessen maximaler Wert kleiner ist als der Sortierungsschlüssel.) Diese Optimierung kann selbst dann wirkungsvoll sein, wenn die Daten teilweise oder vollständig ungeordnet sind und sehr wenige Speicherbereiche bei dem anfänglichen Prozess des Bewertens der Zonenzuordnungen ausgeschlossen werden. Wenn ein einziger Sortierungsschlüssel vorhanden ist, kann die Operation beendet werden, sobald ein Wert gefunden wurde, der kleiner ist als der minimale Wert jedes verbleibenden Eintrags der Zonenzuordnung oder gleich diesem ist. Wenn mehrere Sortierungsschlüssel vorhanden sind, kann die Operation beendet werden, sobald ein Wert gefunden wurde, der kleiner ist als der minimale Wert jedes verbleibenden Eintrags der Zonenzuordnung.
  • Bei nochmals weiteren Ausführungsformen gibt es bei schwach organisierten Spalten, bei denen min(region)–max(region) nahezu den gesamten Bereich der Spalte bei jedem Bereich darstellt, trotzdem eine bestimmte Varianz bei den Endpunkten. Daher erscheinen die wenigen kleinsten Werte wahrscheinlich lediglich in wenigen Speicherbereichen. Diese Speicherbereiche werden zuerst abgetastet, um einen hinreichend kleinen „Ergebniswert” auszuwählen, der die verbleibenden Speicherbereiche ausschließt. Daher liefert die hier bereitgestellte Technik für einen ausreichend kleinen Wert N bei einer Top-N-Sortierung ein gutes Ergebnis.
  • Ausführungsformen der vorliegenden Erfindung sind nicht auf einen bestimmten Typ von Datenverarbeitungsumgebung beschränkt. Ausführungsformen der vorliegenden Erfindung können beispielsweise auf ein System angewendet werden, das mehrere Computer oder Prozesse aufweist, von denen jeder eine Top-N-Sortierung unabhängig ausführen kann, um eine lokale Liste von Top-N-Ergebnissen zu erzeugen. Alle unabhängigen Listen können zusammengelegt werden, so dass die Top-N-Ergebnisse nach dem Zusammenlegen aufbewahrt werden. Somit kann in diesem Zusammenhang jeder Computer oder Prozess eine Liste von Top-N-Ergebnissen unabhängig erzeugen, und sie können unabhängig voneinander eine Top-N-Sortierung frühzeitig beenden.
  • Alternativ werden Ausführungsformen der vorliegenden Erfindung außerdem auf Systeme angewendet, bei denen mehrere Computer zusammenwirken können, um einen globalen Ergebniswert vorzuhalten, wobei der globale Ergebniswert einem aktuellen globalen ungünstigsten Ergebniswert (z. B. einem globalen minimalen Wert oder einem globalen maximalen Wert) von einer Mehrzahl von Top-N-Sortierungen entspricht, die durch eine Mehrzahl von Computern ausgeführt werden. Demzufolge kann jeder Computer seine entsprechende Abtastliste reduzieren und/oder festlegen, um auf der Grundlage dieses globalen Ergebniswerts eine Top-N-Sortierung frühzeitig zu beenden. Es sollte außerdem beachtet werden, dass es beim Abtasten einer kleinen Anzahl von zusätzlichen Speicherbereichen keine nennenswerte Einbuße bei der Leistungsfähigkeit gibt. Deswegen kann der globale Ergebniswert asynchron berechnet werden oder kann unregelmäßig aktualisiert werden, so dass diese Optimierung keinen Synchronisationspunkt in das System einführt oder diesen erfordert.
  • 5 ist ein verallgemeinerter Ablaufplan einer Prozedur zum Aktualisieren von Einträgen der Zonenzuordnung infolge des Hinzufügens oder Löschens von Datensätzen in einem Speicherbereich. Wenn beim Löschen eines Datensatzes aus einem Informationsraum dieser Datensatz einen Spaltenwert enthält, der den minimalen Wert für alle Spalten in dem Speicherabschnitt des Datensatzes darstellt, kann der neue minimale Wert für diese Spalte in diesem Speicherabschnitt tatsächlich größer sein als der in dem Eintrag der Zonenzuordnung aufgezeichnete minimale Wert. In ähnlicher Weise kann, wenn dieser Datensatz einen Spaltenwert enthält, der den maximalen Wert für alle Spalten in dem Speicherabschnitt des Datensatzes darstellt, der neue maximale Wert für diese Spalte in diesem Speicherabschnitt tatsächlich kleiner sein als der in dem Eintrag der Zonenzuordnung aufgezeichnete maximale Wert. Mit anderen Worten, ein Löschen eines Datensatzes kann die Wirkung des Einengens des Wertebereichs für Spalten in einem Speicherabschnitt haben. In ähnlicher Weise kann ein Erzeugen eines Datensatzes die Wirkung des Erweiterns des Wertebereichs für Spalten in einem Speicherabschnitt haben.
  • In der Operation 510 von 5 wird ein Datensatz hinzugefügt oder gelöscht, In der Operation 520 wird ermittelt, ob der hinzugefügte oder gelöschte Datensatz einen Spaltenwert enthält, der den minimalen Wert für alle Spalten in dem Speicherabschnitt des Datensatzes darstellt, und/oder ob der hinzugefügte oder gelöschte Datensatz einen Spaltenwert enthält, der den maximalen Wert für alle Spalten in dem Speicherabschnitt des Datensatzes darstellt. In der Operation 530 wird die Zonenzuordnung aktualisiert, um den neuen minimalen Wert wiederzugeben (der beispielsweise zumindest auf den Wert abgesenkt ist, der in dem hinzugefügten Datensatz spezifiziert ist, oder angehoben ist, um den niedrigsten Wert in dem Speicherbereich wiederzugeben) und/oder um den neuen maximalen Wert wiederzugeben (der beispielsweise zumindest auf den Wert angehoben ist, der in dem hinzugefügten Datensatz spezifiziert ist, oder abgesenkt ist, um den höchsten Wert in dem Speicherbereich wiederzugeben). Bei weiteren Ausführungsformen müssen Zonenzuordnungen möglicherweise nicht aktualisiert werden, damit sie Datensatz-Löschvorgänge wiedergeben, da Zonenzuordnungen im Allgemeinen in einer herkömmlichen Weise verwendet werden.
  • In 6 kann eine beispielhafte Ausführungsform eines Informationsservers 120 eine Netzwerk-Schnittstelle 112, einen Prozessor 620 und einer Arbeitsspeicher 630 aufweisen. Die Netzwerk-Schnittstelle 112 ist so eingerichtet, dass sie beispielsweise einen Netzwerk-Datenaustausch über ein Netzwerk 130 ermöglicht, um einen Datenaustausch zwischen dem Informationsserver 120 und dem Host-Server 110 bezüglich Abfrage-Anforderungen vom Client-System 100 zu erleichtern wie in 1 gezeigt.
  • Der Prozessor 620 kann durch einen oder mehrere Mikroprozessoren oder Mikrosteuereinheiten verkörpert werden und führt computerlesbare Programmbefehle aus, die im Arbeitsspeicher 630 gespeichert sind, um die Operationen auszuführen, die oben in Verbindung mit den 1 bis 5 beschrieben wurden.
  • Der Arbeitsspeicher 630 kann computerlesbare Speichermedien aufweisen, die mit Software codiert sind, die computerlesbare Programmbefehle aufweist, und wenn die Software durch den Prozessor 620 ausgeführt wird, ist der Prozessor funktionsmäßig in der Lage, die Operationen auszuführen, die hier in Verbindung mit der Erzeugung von Zonenzuordnungen, Sortierung und Bewertungs-Logikschaltung 365 beschrieben wurden.
  • Server-Systeme 110 und 120 und Client-Systeme 100 können durch alle herkömmlichen oder andere Computersysteme umgesetzt sein, die vorzugsweise mit einer Anzeige oder einem Monitor, einer Basis (die z. B. wenigstens einen Prozessor, einen oder mehrere Arbeitsspeicher und/oder interne oder externe Netzwerk-Schnittstellen oder Datenübertragungseinheiten (z. B. Modem, Netzwerk-Karten usw.) enthält) und einer handelsüblichen oder kundenspezifischen Software (z. B. Server/Datenübertragungs-Software, Modul, Browser/Schnittstellen-Software usw.) ausgestattet sind.
  • Alternativ können ein oder mehrere Client-Systeme 100 Dokumente analysieren, wenn sie als eigenständige Einheit betrieben werden. Bei einer eigenständigen Betriebsart speichert das Client-System die Daten oder hat auf diese Zugriff (z. B. Datenbank-Speichereinheit 140) und enthält Module, um Abfrage-Anforderungen an den Host-Server 110 zu formulieren und/oder zu senden. Die grafische Benutzeroberfläche (z. B. GUI usw.) oder andere Schnittstellen (z. B. Befehlsleitungs-Bestätigungen, Menü-Bildschirme usw.) fordern Informationen von einem entsprechenden Benutzer an, die die gewünschten Dokumente und Analysen betreffen, und können Berichte bereitstellen, die Analyseergebnisse enthalten.
  • Ein Modul kann ein oder mehrere Module oder Einheiten zum Ausführen der zahlreichen Funktionen von Ausführungsformen der vorliegenden Erfindung enthalten, die hier beschrieben wurden. Die verschiedenen Module (z. B. Logik-Modul 635 usw.) können in jeder Kombination von einer beliebigen Anzahl von Software/und/oder Hardware-Modulen oder Einheiten umgesetzt werden und können sich im Arbeitsspeicher 630 des Informationsservers 120 für ein Ausführen durch den Prozessor 620 befinden.
  • Es ist klar, dass die oben beschriebenen und in den Zeichnungen dargestellten Ausführungsformen lediglich einige wenige von den vielen Arten zum Umsetzen von Ausführungsformen repräsentieren.
  • Die Umgebung von Ausführungsformen der vorliegenden Erfindung kann jede Anzahl von Computer- oder anderen Datenverarbeitungssystemen (z. B. Client- oder Endbenutzer-Systeme, Server-Systeme usw.) und Datenbanken oder andere Datenablagen enthalten, die in jeder gewünschten Weise angeordnet sind, wobei die Ausführungsformen der vorliegenden Erfindung bei jedem gewünschten Typ von Datenverarbeitungsumgebung (z. B. Cloud-Datenverarbeitung, Client-Server, Netzwerk-Datenverarbeitung, Mainframe, eigenständige Systeme usw.) angewendet werden können. Die Computer- oder anderen Datenverarbeitungssysteme, die bei Ausführungsformen der vorliegenden Erfindung eingesetzt werden, können durch jede Anzahl von beliebigen Personal Computern oder anderen Typen von Computer- oder Datenverarbeitungssystemen (z. B. Desktop, Laptop, PDA, Mobileinheiten usw.) umgesetzt werden und können jedes handelsübliche Betriebssystem und jede Kombination aus handelsüblicher und kundenspezifischer Software enthalten (z. B. Browser-Software, Datenübertragungs-Software, Server-Software, Profil-Erzeugungsmodul, Profil-Vergleichsmodul usw.). Diese Systeme können alle Typen von Monitoren und Eingabe-Einheiten (z. B. Tastatur, Maus, Spracherkennung usw.) zum Eingeben und/oder Betrachten von Informationen enthalten.
  • Es sollte klar sein, dass die Software (z. B. Logik 635) der Ausführungsformen der vorliegenden Erfindung in jeder gewünschten Computersprache umgesetzt werden kann und durch einen Fachmann auf dem Gebiet der Computertechnik anhand von Funktionsbeschreibungen entwickelt werden könnte, die in der Spezifikation und den in den Zeichnungen dargestellten Ablaufplänen enthalten sind. Des Weiteren beziehen sich hier erfolgte Bezugnahmen von Software, die verschiedene Funktionen ausführt, im Allgemeinen auf Computersysteme oder Prozessoren, die diese Funktionen softwaregesteuert ausführen. Die Computersysteme von Ausführungsformen der vorliegenden Erfindung können alternativ durch jeden Typ von Hardware und/oder anderer Verarbeitungs-Schaltungsanordnungen umgesetzt sein.
  • Die verschiedenen Funktionen der Computer- und anderer Verarbeitungssysteme können in beliebiger Weise auf jede Anzahl von Software- und/oder Hardware-Modulen oder Einheiten, Verarbeitungs- oder Computersysteme und/oder Schaltungsanordnungen verteilt sein, wobei die Computer- oder Verarbeitungssysteme lokal oder voneinander entfernt angeordnet sein können und über jedes geeignete Datenübertragungsmedium (z. B. LAN, WAN, Intranet, Internet, Festverdrahtung, Modem-Verbindung, drahtlos usw.) Daten austauschen können. Beispielsweise können die Funktionen von Ausführungsformen der vorliegenden Erfindung in beliebiger Weise unter den verschiedenen Endbenutzer/Client- und Server-Systemen und/oder allen anderen dazwischenliegenden Verarbeitungseinheiten verteilt sein. Die Software und die oben beschriebenen und in den Ablaufplänen dargestellten Algorithmen können so modifiziert werden, dass die hier beschriebenen Funktionen erreicht werden. Außerdem können die Funktionen in den Ablaufplänen oder der Beschreibung in einer beliebigen Reihenfolge ausgeführt werden, die eine gewünschte Operation realisiert.
  • Die Software von Ausführungsformen der vorliegenden Erfindung (z. B. Software, die der Logik 365 entspricht, usw.) kann auf einem nichtflüchtigen durch einen Computer nutzbaren Medium (z. B. magnetische oder optische Medien, magnetooptische Medien, Computer-Disketten, CD-ROM, DVD, Speichereinheiten usw.) einer stationären oder tragbaren Vorrichtung oder Einheit eines Programmprodukts zur Verwendung mit eigenständigen Systemen oder Systemen, die durch ein Netzwerk oder andere Datenverarbeitungsmedien verbunden sind, verfügbar sein.
  • Das Datenübertragungsnetzwerk kann durch eine beliebige Anzahl von Datenübertragungsnetzwerken beliebigen Typs umgesetzt sein (z. B. LAN, WAN, Internet, Intranet, VPN usw.). Die Computer- oder anderen Verarbeitungssysteme von Ausführungsformen der vorliegenden Erfindung können alle herkömmlichen oder andere Datenübertragungseinheiten enthalten, um über das Netzwerk über alle herkömmlichen oder andere Protokolle Daten auszutauschen. Der Computer oder andere Verarbeitungssysteme können jeden Verbindungstyp (z. B. leitungsgestützt, drahtlos usw.) zum Zugreifen auf das Netzwerk nutzen. Lokale Datenübertragungsmedien können durch alle geeigneten Datenübertragungsmedien (z. B. Lokalbereichsnetzwerk (LAN), Festverdrahtung, Drahtlosverbindung, Intranet usw.) umgesetzt werden.
  • Das System kann eine beliebige Anzahl aller herkömmlichen oder anderer Datenbanken, Datenspeicher oder Speicherstrukturen (z. B. Dateien, Datenbanken, Datenstrukturen, Daten- oder andere Ablagen usw.) zum Speichern von Informationen nutzen, (z. B. Datenbank-Speichereinheit 140, Zonenzuordnungen, Top-N-Ergebnisse usw.). Das Datenbank-System kann durch eine beliebige Anzahl aller herkömmlichen oder anderer Datenbanken, Datenspeicher oder Speicherstrukturen (z. B. Dateien, Datenbanken, Datenstrukturen, Daten- oder andere Ablagen usw.) zum Speichern von Informationen umgesetzt werden, (z. B. Datenbank-Speichereinheit 140, Zonenzuordnungen, Top-N-Ergebnisse usw.). Das Datenbank-System kann in den Server- und/oder Client-Systemen enthalten oder mit diesen verbunden sein. Das Datenbank-System und/oder Speicherstrukturen können sich entfernt von oder lokal zu den Computer- oder anderen Verarbeitungssystemen befinden und können alle gewünschten Daten speichern.
  • Ausführungsformen der vorliegenden Erfindung können eine beliebige Anzahl von Benutzeroberflächen jedes Typs (z. B. Grafische Benutzeroberfläche (GUI), Befehlsleitung, Bestätigung usw.) zum Erhalten oder Bereitstellen von Informationen nutzen (z. B. Abfrage-Anforderungen vom Client 100, Top-N-Ergebnisse usw.), wobei die Schnittstelle beliebige Informationen enthalten kann, die in beliebiger Weise angeordnet sind. Die Schnittstelle kann eine beliebige Anzahl aller Typen von Eingabe- oder Betätigungsmechanismen enthalten (z. B. Schaltflächen, Symbole, Felder, Kästchen, Verweise usw.), die an beliebigen Positionen angeordnet sind, um Informationen einzugeben oder anzuzeigen und gewünschte Aktionen über alle geeigneten Eingabeeinheiten auszulösen (z. B. Maus, Tastatur usw.). Die Schnittstellen-Bildschirme können jede geeignete Betätigungseinrichtung (z. B. Links, Tabs usw.) zum beliebigen Navigieren zwischen den Bildschirmen enthalten.
  • Der Bericht kann alle Informationen enthalten, die in beliebiger Weise angeordnet sind, und kann auf der Grundlage von Regeln oder anderen Kriterien konfigurierbar sein, um gewünschte Informationen einem Benutzer bereitzustellen (z. B. Textanalysen, Profil-Bewertungszahlen, demografische Informationen, die den Autor des Dokuments betreffen, usw.).
  • Die Ausführungsformen der vorliegenden Erfindung sind nicht auf die speziellen Aufgaben oder Algorithmen beschränkt, die oben beschrieben wurden.
  • Die hier verwendete Terminologie dient lediglich dem Zweck des Beschreibens bestimmter Ausführungsformen und soll die Erfindung nicht einschränken. Die hier verwendeten Singular-Formen „ein” und „der/die/das” sollen ebenso die Plural-Formen einschließen, falls im Kontext nicht ausdrücklich anders angegeben. Es ist ferner klar, dass die Ausdrücke „weist auf”, „aufweisend”, „enthält”, „enthaltend”, „hat”, „mit” und dergleichen bei Verwendung in dieser Spezifikation das Vorhandensein von festgestellten Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen und/oder Komponenten spezifiziert, jedoch nicht das Vorhandensein oder das Hinzufügen von einem oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen, Komponenten und/oder deren Gruppen ausschließt.
  • Die entsprechenden Strukturen, Materialien, Wirkungen und Ersetzungen aller Mittel oder Schritte plus Funktionselemente in den nachfolgenden Ansprüchen sollen gegebenenfalls alle Strukturen, Materialien oder Wirkungen zum Ausführen der Funktion in Kombination mit anderen beanspruchten Elementen, die speziell beansprucht werden, enthalten. Die Beschreibung der vorliegenden Erfindung wurde für Zwecke der Erläuterung und Beschreibung dargestellt, es ist jedoch nicht vorgesehen, dass sie in der offenbarten Form für die Erfindung erschöpfend oder einschränkend sein soll. Viele Modifikationen und Variationen werden einem Fachmann offensichtlich erscheinen, ohne vom Umfang und Erfindungsgeist der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung am besten zu erläutern und um Nichtfachleute zu befähigen, die Erfindung zu verstehen, da verschiedene Ausführungsformen mit zahlreichen Modifikationen für die vorgesehene praktische Verwendung geeignet sind.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden für Zwecke der Erläuterung dargestellt, es ist jedoch nicht vorgesehen, dass sie für die offenbarten Ausführungsformen erschöpfend oder einschränkend sein sollen. Viele Modifikationen und Variationen werden einem Fachmann offensichtlich erscheinen, ohne vom Umfang und Erfindungsgeist der beschriebenen Ausführungsformen abzuweichen. Die hier verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder die technische Verbesserung gegenüber Technologien, die am Markt vorhanden sind, am besten zu erläutern oder um andere Fachleute zu befähigen, die hier offenbarten Ausführungsformen zu verstehen.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein oder mehrere computerlesbare Speichermedien enthalten, auf denen sich computerlesbare Programmbefehle befinden, um zu bewirken, dass ein Prozessor Aspekte der vorliegenden Erfindung ausführt.
  • Bei dem computerlesbaren Speichermedium kann es sich um eine materielle Einheit handeln, die Befehle zum Verwenden durch eine Befehlsausführungseinheit halten und speichern kann. Bei dem computerlesbaren Speichermedium kann es sich beispielsweise um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination der Vorhergehenden handeln, ist jedoch nicht darauf beschränkt. Eine nicht erschöpfende Liste von spezielleren Beispielen des computerlesbaren Speichermediums enthält Folgendes: eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen löschbaren programmierbaren Festwertspeicher (EPROM oder Flash-Speicher), einen statischen Direktzugriffsspeicher (SRAM), einen tragbaren Compactdisk-Festwertspeicher (CD-ROM), eine digitale Versatile-Disk (DVD), einen Speicherstick, eine Diskette (Floppy Disk), eine mechanisch codierte Einheit wie beispielsweise Lochkarten oder erhabene Strukturen in einer Nut, in denen Befehle aufgezeichnet sind, oder jede geeignete Kombination des Vorhergehenden. Ein hier verwendetes computerlesbares Speichermedium sollte nicht so ausgelegt werden, dass es sich dabei per se um vergängliche Signale handelt wie beispielsweise Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Hohlleiter oder andere Übertragungsmedien ausbreiten (z. B. Lichtimpulse, die ein Lichtwellenleiterkabel durchlaufen) oder elektrische Signale, die durch eine Leitung übertragen werden.
  • Computerlesbare Programmbefehle, die hier beschrieben werden, können von einem computerlesbaren Speichermedium zu betreffenden Datenverarbeitungs/Verarbeitungs-Einheiten oder über ein Netzwerk, z. B. das Internet, ein Lokalbereichsnetz, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk zu einem externen Computer oder einer externen Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupfer-Übertragungskabel, Lichtwellenleiter, drahtlose Übertragungen, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerk-Adapterkarte oder eine Netzwerk-Schnittstelle in jeder Datenverarbeitungs/Verarbeitungs-Einheit empfängt computerlesbare Programmbefehle von dem Netzwerk und leitet die computerlesbaren Programmbefehle zum Speichern in einem computerlesbaren Speichermedium in der betreffenden Datenverarbeitungs/Verarbeitungs-Einheit weiter.
  • Bei computerlesbaren Programmbefehlen zum Ausführen von Operationen der vorliegenden Erfindung kann es sich um Assembler-Befehle, Befehle mit Befehlssatz-Architektur (ISA), Maschinenbefehle, maschinenabhängige Befehle, Mikrocode, Firmware-Befehle, Zustandseinstellungsdaten oder Quellencode bzw. Objektcode handeln, die in jeder Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, darunter eine objektorientierte Programmiersprache wie Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie etwa die Programmiersprache ”C” oder ähnliche Programmiersprachen. Die computerlesbaren Programmbefehle können nur auf dem Computer eines Benutzers, teilweise auf dem Computer eines Benutzers, als ein eigenständiges Software-Paket, teilweise auf dem Computer eines Benutzers und teilweise auf einem fernen Computer oder nur auf dem fernen Computer oder Server ausgeführt werden. In dem zuletzt genannten Szenario kann der ferne Computer mit dem Computer des Benutzers durch jeden Netzwerktyp verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer (z. B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden. Bei einigen Ausführungsformen können elektronische Schaltungsanordnungen, darunter beispielsweise eine programmierbare logische Schaltungsanordnung, vor Ort programmierbare Gate-Arrays (FPGA) oder programmierbare Logik-Arrays (PLA) die computerlesbaren Programmbefehle ausführen, indem Zustandsinformationen der computerlesbaren Programmbefehle genutzt werden, um die elektronische Schaltungsanordnung zu personalisieren, um Aspekte der vorliegenden Erfindung auszuführen.
  • Aspekte der vorliegen den Erfindung werden hier unter Bezugnahme auf Ablaufplan Darstellungen und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaltbildern durch computerlesbare Programmbefehle umgesetzt werden können.
  • Diese computerlesbaren Programmbefehle können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu bilden, so dass Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, erzeugen. Diese computerlesbaren Programmbefehle können außerdem in einem computerlesbaren Speichermedium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, so dass das computerlesbare Speichermedium mit darin gespeicherten Befehlen einen Herstellungsgegenstand aufweist, der Befehle enthält, die Aspekte der Funktion/Wirkung umsetzen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind.
  • Die computerlesbaren Programmbefehle können außerdem in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um eine Reihe von Funktionsschritten zu bewirken, die auf dem Computer, der anderen programmierbaren Datenverarbeitungsvorrichtung oder der anderen Einheit ausgeführt werden sollen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer, der anderen programmierbaren Vorrichtung oder der anderen Einheit ausgeführt werden, die Funktionen/Wirkungen, die in dem Block oder Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, umsetzen.
  • Der Ablaufplan und die Blockdarstellungen in den Figuren veranschaulichen die Architektur, Funktionalität und Operation von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder in Blockdarstellungen ein Modul, Segment oder Abschnitt von Befehlen repräsentieren, der einen oder mehrere ausführbare Befehle zum Umsetzen der spezifizierten logischen Funktion(en) aufweist. Bei einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen möglicherweise nicht in der in den Figuren angegebenen Reihenfolge auftreten. Zum Beispiel können zwei Blöcke, die nacheinander gezeigt sind, tatsächlich im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können gelegentlich in Abhängigkeit von der beteiligten Funktionalität in der umgekehrten Reihenfolge ausgeführt werden. Es ist außerdem zu beachten, dass jeder Block in den Blockdarstellungen und/oder Ablaufplan-Darstellungen und Kombinationen von Blöcken in den Blockdarstellungen und/oder der Ablaufplan-Darstellung durch Systeme, die auf spezieller Hardware beruhen, die die spezifizierten Funktionen oder Wirkungen ausführen, oder Kombinationen aus spezieller Hardware und Computerbefehlen umgesetzt werden können.

Claims (22)

  1. Durch einen Computer umgesetztes Verfahren zum Abtasten einer Mehrzahl von Speicherbereichen in einem Arbeitsspeicher nach einer spezifizierten Anzahl von Ergebnissen, wobei jeder Speicherbereich einem Intervall zugehörig ist, das erste und zweite Intervallwerte enthält, die einen Wertebereich für Werte im diesem Speicherbereich angeben, wobei das durch einen Computer umgesetzte Verfahren aufweist: Sortieren der ersten Intervallwerte in eine Reihenfolge, wobei die Reihenfolge der ersten Intervallwerte eine Abtastreihenfolge für die Mehrzahl von Speicherbereichen festlegt; Festlegen eines Ergebniswerts, wobei es sich bei dem Ergebniswert um eine obere Grenze oder eine untere Grenze handelt oder der Ergebniswert außerhalb der spezifizierten Anzahl von Ergebnissen liegt; und Untersuchen der sortierten ersten Intervallwerte und gegebenenfalls Abtasten entsprechender einzelner Speicherbereiche in Reaktion auf Vergleichen des festgelegten Ergebniswerts mit dem ersten Intervallwert dieses Speicherbereichs.
  2. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei das Abtasten entsprechender einzelner Speicherbereiche beinhaltet: Festlegen eines anfänglichen ersten Intervallwerts, der dem Vergleich nicht genügt, und beim Abtasten Weglassen der entsprechenden einzelnen Speicherbereiche, die dem anfänglichen ersten Intervallwert und nachfolgenden ersten Intervallwerten in den sortierten ersten Intervallwerten entsprechen.
  3. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei die spezifizierte Anzahl von Ergebnissen einer aufsteigenden Sortierung zugehörig ist und wobei der erste Intervallwert für jeden Speicherbereich einen minimalen Wert für diesen Speicherbereich enthält, und wobei das Abtasten entsprechender einzelner Speicherbereiche beinhaltet: Abtasten einzelner Speicherbereiche in Reaktion auf die Tatsache, dass der festgelegte Ergebniswert größer ist als der erste Intervallwert dieses Speicherbereichs.
  4. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei die Anzahl von Ergebnissen einer absteigenden Sortierung zugehörig ist und der zweite Intervallwert für jeden Speicherbereich einen Maximalwert für diesen Speicherbereich enthält, und wobei das Abtasten entsprechender einzelner Speicherbereiche beinhaltet: Abtasten einzelner Speicherbereiche in Reaktion auf die Tatsache, dass der festgelegte Ergebniswert kleiner ist als der zweite Intervallwert dieses Speicherbereichs.
  5. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, das ferner ein Beenden des Abtastens aufweist, wenn festgestellt wird, dass der erste Intervallwert eines Speicherbereichs in der Liste von sortierten ersten Intervallwerten bei einer aufsteigenden Sortierung größer ist als der festgelegte Wert.
  6. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, das ferner aufweist: Hinzufügen oder Löschen eines Datensatzes in einem Speicherbereich; Ermitteln, ob der hinzugefügte oder gelöschte Datensatz einen ersten Intervallwert, bei dem es sich um den Minimalwert für den Speicherbereich handelt, oder einen zweiten Intervallwert enthält, bei dem es sich um den Maximalwert für den Speicherbereich handelt; und Aktualisieren des ersten Intervallwerts oder des zweiten Intervallwerts, um einen neuen Minimalwert oder einen neuen Maximalwert wiederzugeben.
  7. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, das ferner eine Operation Gruppenbildung aufweist, wobei Gruppen anhand eines oder mehrerer Sortierungsschlüssel gekennzeichnet werden und wobei es sich bei der spezifizierten Anzahl von Ergebnissen um eine spezfizierte Anzahl unterschiedlicher Gruppen handelt.
  8. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, das ferner aufweist: Festlegen eines globalen Ergebniswerts, wobei der globale Ergebniswert einen Minimalwert einer Mehrzahl von Ergebniswerten repräsentiert, die durch eine Mehrzahl von Computern festgelegt sind; und Beenden des Abtastens, wenn festgestellt wird, dass der erste Intervallwert eines Speicherbereichs in der liste von sortierten ersten Intervallwerten bei einer aufsteigenden Sortierung größer ist als der festgelegte globale Ergebniswert.
  9. System, das aufweist: einen Arbeitsspeicher, der eine Mehrzahl von Speicherbereichen aufweist, wobei jeder Speicherbereich einem Intervall zugehörig ist, das erste und zweite Intervallwerte enthält, die einen Wertebereich für Werte in diesem Speicherbereich angeben; eine Netzwerk-Schnittstelle; und einen Prozessor, der eingerichtet ist zum: Sortieren der ersten Intervallwerte in einer Reihenfolge, wobei die Reihenfolge der ersten Intervallwerte eine Abtastreihenfolge für die Mehrzahl von Speicherbereichen festlegt; Festlegen eines Ergebniswerts, wobei es sich bei dem Ergebniswert um eine obere Grenze oder eine untere Grenze handelt oder der Ergebniswert außerhalb einer spezifizierten Anzahl von Ergebnissen liegt; und Untersuchen der sortierten ersten Intervallwerte und gegebenenfalls Abtasten entsprechender einzelner Speicherbereiche im Arbeitsspeicher nach der spezifizierten Anzahl von Ergebnissen in Reaktion auf Vergleichen des festgelegten Ergebniswerts mit dem ersten Intervallwert dieses Speicherbereichs.
  10. System nach Anspruch 9, wobei der Prozessor eingerichtet ist zum Festlegen eines anfänglichen ersten Intervallwerts, der dem Vergleich nicht genügt, und beim Abtasten Weglassen der entsprechenden einzelnen Speicherbereiche, die dem anfänglichen ersten Intervallwert und nachfolgenden ersten Intervallwerten in den sortierten ersten Intervallwerten entsprechen.
  11. System nach Anspruch 9, wobei die spezifizierte Anzahl von Ergebnissen einer aufsteigenden Sortierung zugehörig ist und der erste Intervallwert für jeden Speicherbereich einen Minimalwert für diesen Speicherbereich enthält, und wobei der Prozessor zum Abtasten einzelner Speicherbereiche in Reaktion auf die Tatsache eingerichtet ist, dass der festgelegte Ergebniswert größer ist als der erste Intervallwert dieses Speicherbereichs.
  12. System nach Anspruch 9, wobei die Anzahl von Ergebnissen einer absteigenden Sortierung zugehörig ist und der zweite Intervallwert für jeden Speicherbereich einen Maximalwert für diesen Speicherbereich enthält, und wobei der Prozessor zum Abtasten einzelner Speicherbereiche in Reaktion auf die Tatsache eingerichtet ist, dass der festgelegte Ergebniswert kleiner ist als der zweite Intervallwert dieses Speicherbereichs.
  13. System nach Anspruch 9, wobei der Prozessor so eingerichtet ist, dass er das Abtasten beendet, wenn festgestellt wird, dass der erste Intervallwert eines Speicherbereichs in der Liste von sortierten ersten Intervallwerten bei einer aufsteigenden Sortierung größer ist als der festgelegte Wert.
  14. System nach Anspruch 9, wobei der Prozessor eingerichtet ist zum: Hinzufügen oder Löschen eines Datensatzes in einem Speicherbereich; Ermitteln, ob der hinzugefügte oder gelöschte Datensatz einen ersten Intervallwert, bei dem es sich um den Minimalwert für den Speicherbereich handelt, oder einen zweiten Intervallwert enthält, bei dem es sich um den Maximalwert für den Speicherbereich handelt; und Aktualisieren des ersten Intervallwerts oder des zweiten Intervallwerts, um einen neuen Minimalwert oder einen neuen Maximalwert wiederzugeben.
  15. System nach Anspruch 9, wobei der Prozessor so eingerichtet ist, dass er eine Operation Gruppenbildung ausführt, wobei Gruppen auf der Grundlage eines oder mehrerer Sortierungsschlüssel gekennzeichnet sind und es sich bei der spezifizierten Anzahl von Ergebnissen um eine spezifizierte Anzahl unterschiedlicher Gruppen handelt.
  16. System nach Anspruch 9, wobei der Prozessor eingerichtet ist zum: Festlegen eines globalen Ergebniswerts, wobei der globale Ergebniswert einen Minimalwert einer Mehrzahl von Ergebniswerten repräsentiert, die durch eine Mehrzahl von Computern festgelegt sind; und Beenden des Abtastens, wenn festgestellt wird, dass der erste Intervallwert eines Speicherbereichs in der Liste von sortierten ersten Intervallwerten bei einer aufsteigenden Sortierung größer ist als der festgelegte globale Wert.
  17. Computerprogrammprodukt zum Bereitstellen von Informationen für einen Benutzer, das ein computerlesbares Speichermedium mit darauf verkörpertem computerlesbaren Programmcode aufweist, wobei der computerlesbare Programmcode beim Ausführen durch einen Prozessor bewirkt, dass der Prozessor Folgendes ausführt: für eine Mehrzahl von Speicherbereichen im Arbeitsspeicher bei jedem Speicherbereich, der einem Intervall zugehörig ist, das erste und zweite Intervallwerte enthält, die einen Wertebereich für Werte in diesem Speicherbereich angeben, Sortieren der ersten Intervallwerte in eine Reihenfolge, wobei die Reihenfolge der ersten Intervallwerte eine Abtastreihenfolge für die Speicherbereiche festlegt; Festlegen eines Ergebniswerts, wobei es sich bei dem Ergebniswert um eine obere Grenze oder eine untere Grenze handelt oder der Ergebniswert außerhalb einer spezifizierten Anzahl von Ergebnissen liegt; und Untersuchen der sortierten ersten Intervallwerte und gegebenenfalls Abtasten entsprechender einzelner Speicherbereiche im Arbeitsspeicher nach der spezifizierten Anzahl von Ergebnissen in Reaktion auf Vergleichen des festgelegten Ergebniswerts mit dem ersten Intervallwert dieses Speicherbereichs.
  18. Computerprogrammprodukt nach Anspruch 17, wobei der computerlesbare Programmcode ferner so eingerichtet ist, dass er bewirkt, dass der Prozessor einen anfänglichen ersten Intervallwert festlegt, der den Vergleich nicht erfüllt, und bei dem Abtasten die entsprechenden einzelnen Speicherbereiche, die dem anfänglichen ersten Intervallwert und nachfolgenden ersten Intervallwerten in den sortierten ersten Intervallwerten entsprechen, weglässt.
  19. Computerprogrammprodukt nach Anspruch 17, wobei die spezifizierte Anzahl von Ergebnissen einer aufsteigenden Sortierung zugehörig ist und der erste Intervallwert für jeden Speicherbereich einen Minimalwert für diesen Speicherbereich enthält, und wobei der computerlesbare Programmcode ferner so eingerichtet ist, dass er bewirkt, dass der Prozessor einzelne Speicherbereiche in Reaktion auf die Tatsache abtastet, dass der festgelegte Ergebniswert größer ist als der erste Intervallwert für diesen Speicherbereich.
  20. Computerprogrammprodukt nach Anspruch 17, wobei die Anzahl von Ergebnissen einer absteigenden Sortierung zugehörig ist und der zweite Intervallwert für jeden Speicherbereich einen Maximalwert für diesen Speicherbereich enthält, und der computerlesbare Programmcode ferner so eingerichtet ist, dass er bewirkt, dass der Prozessor einzelne Speicherbereiche in Reaktion auf die Tatsache abtastet, dass der festgelegte Ergebniswert kleiner ist als der zweite Intervallwert dieses Speicherbereichs.
  21. Computerprogrammprodukt nach Anspruch 17, wobei der computerlesbare Programmcode ferner so eingerichtet ist, dass er bewirkt, dass der Prozessor das Abtasten beendet, wenn festgestellt wird, dass der erste Intervallwert eines Speicherbereichs in der Liste von sortierten ersten Intervallwerten bei einer ansteigenden Sortierung größer ist als der festgelegte Wert.
  22. Computerprogramm, das ein Programmcodemittel aufweist, das so eingerichtet ist, dass es das Verfahren nach einem der Ansprüche 1 bis 8 auszuführt, wenn das Programm auf einem Computer abläuft.
DE112015000218.9T 2014-02-25 2015-01-30 Verfahren, System und Computerprogramm zum Abtasten einer Mehrzahl von Speicherbereichen in einem Arbeitsspeicher nach einer spezifizierten Anzahl von Ergebnissen Active DE112015000218B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/189,095 2014-02-25
US14/189,095 US10108649B2 (en) 2014-02-25 2014-02-25 Early exit from table scans of loosely ordered and/or grouped relations using nearly ordered maps
PCT/IB2015/050704 WO2015128756A1 (en) 2014-02-25 2015-01-30 A method, system and computer program for scanning a plurality of storage regions within memory for a specified quantity of results

Publications (2)

Publication Number Publication Date
DE112015000218T5 true DE112015000218T5 (de) 2016-08-18
DE112015000218B4 DE112015000218B4 (de) 2022-11-17

Family

ID=53882411

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015000218.9T Active DE112015000218B4 (de) 2014-02-25 2015-01-30 Verfahren, System und Computerprogramm zum Abtasten einer Mehrzahl von Speicherbereichen in einem Arbeitsspeicher nach einer spezifizierten Anzahl von Ergebnissen

Country Status (6)

Country Link
US (3) US10108649B2 (de)
JP (1) JP6336096B2 (de)
CN (1) CN106030579B (de)
DE (1) DE112015000218B4 (de)
GB (1) GB2538670B (de)
WO (1) WO2015128756A1 (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10489365B2 (en) 2013-03-14 2019-11-26 Oracle International Corporation Predicate offload of large objects
US10642837B2 (en) 2013-03-15 2020-05-05 Oracle International Corporation Relocating derived cache during data rebalance to maintain application performance
US10528590B2 (en) * 2014-09-26 2020-01-07 Oracle International Corporation Optimizing a query with extrema function using in-memory data summaries on the storage server
US10108649B2 (en) 2014-02-25 2018-10-23 Internatonal Business Machines Corporation Early exit from table scans of loosely ordered and/or grouped relations using nearly ordered maps
US9953065B2 (en) 2015-02-13 2018-04-24 International Business Machines Corporation Method for processing a database query
US10331645B2 (en) 2015-08-17 2019-06-25 International Business Machines Corporation Data-partitioning for processing loosely ordered relations
US10089353B2 (en) 2015-10-29 2018-10-02 International Business Machines Corporation Approximate string matching optimization for a database
US9442694B1 (en) 2015-11-18 2016-09-13 International Business Machines Corporation Method for storing a dataset
US9519676B1 (en) 2015-12-13 2016-12-13 International Business Machines Corporation Updating of in-memory synopsis metadata for inserts in database table
US9633072B1 (en) 2016-01-27 2017-04-25 International Business Machines Corporation MIN/MAX query with synopsis guided scan order
US10262033B2 (en) 2016-03-18 2019-04-16 International Business Machines Corporation Method for query execution planning
US10360240B2 (en) 2016-08-08 2019-07-23 International Business Machines Corporation Providing multidimensional attribute value information
US10311057B2 (en) 2016-08-08 2019-06-04 International Business Machines Corporation Attribute value information for a data extent
US10929400B2 (en) 2016-10-26 2021-02-23 International Business Machines Corporation Self-optimizing value range synopsis in analytical databases
US10884704B2 (en) 2017-09-21 2021-01-05 International Business Machines Corporation Sorting a table in analytical databases
JP6556799B2 (ja) * 2017-09-26 2019-08-07 株式会社東芝 検索装置、プログラム、データベースシステム、および検索方法
US11086876B2 (en) 2017-09-29 2021-08-10 Oracle International Corporation Storing derived summaries on persistent memory of a storage device
CN109582696B (zh) * 2018-10-09 2023-07-04 北京奥星贝斯科技有限公司 扫描任务的生成方法及装置、电子设备
US11200234B2 (en) 2019-06-14 2021-12-14 Oracle International Corporation Non-disruptive dynamic ad-hoc database catalog services
US10990596B2 (en) 2019-06-14 2021-04-27 Oracle International Corporation Non-disruptive referencing of special purpose operators for database management systems
US11144527B2 (en) * 2020-01-14 2021-10-12 International Business Machines Corporation Optimizing database table scans in the presence of ordered data
CN111259062B (zh) * 2020-01-15 2023-08-01 山东省电子口岸有限公司 一种能够保证分布式数据库全表查询语句结果集顺序的方法和装置
US11880405B2 (en) 2021-03-16 2024-01-23 International Business Machines Corporation Method for searching similar images in an image database using global values of a similarity measure for discarding partitions of the image database

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69032576T2 (de) * 1990-02-27 1999-04-15 Oracle Corp Dynamische Optimierung eines einzelnen relationalen Zugriffs
US5845113A (en) * 1992-10-27 1998-12-01 International Business Machines Corporation Method for external sorting in shared-nothing parallel architectures
US5956706A (en) * 1997-05-09 1999-09-21 International Business Machines Corporation Method and system for limiting the cardinality of an SQL query result
US6003036A (en) * 1998-02-12 1999-12-14 Martin; Michael W. Interval-partitioning method for multidimensional data
US6154740A (en) 1998-05-20 2000-11-28 Lucent Technologies, Inc. System and method for displaying a sorted list by determining sort points in a key field
US6487546B1 (en) * 1998-08-27 2002-11-26 Oracle Corporation Apparatus and method for aggregate indexes
US6360214B1 (en) * 1998-12-16 2002-03-19 Microsoft Corporation Automatic database statistics creation
US6546382B1 (en) * 1999-11-03 2003-04-08 Oracle Corporation Finding the TOP N values through the execution of a query
US6694324B1 (en) * 1999-12-16 2004-02-17 Ncr Corporation Determination of records with a specified number of largest or smallest values in a parallel database system
US6622138B1 (en) * 2000-09-06 2003-09-16 Oracle International Corporation Method and apparatus for optimizing computation of OLAP ranking functions
US6748392B1 (en) * 2001-03-06 2004-06-08 Microsoft Corporation System and method for segmented evaluation of database queries
US6795817B2 (en) * 2001-05-31 2004-09-21 Oracle International Corporation Method and system for improving response time of a query for a partitioned database object
US6907422B1 (en) * 2001-12-18 2005-06-14 Siebel Systems, Inc. Method and system for access and display of data from large data sets
US6973452B2 (en) * 2003-05-19 2005-12-06 Netezza Corporation Limiting scans of loosely ordered and/or grouped relations using nearly ordered maps
US20040249827A1 (en) * 2003-06-05 2004-12-09 International Business Machines Corporation System and method of retrieving a range of rows of data from a database system
US8825629B2 (en) * 2003-09-06 2014-09-02 Oracle International Corporation Method for index tuning of a SQL statement, and index merging for a multi-statement SQL workload, using a cost-based relational query optimizer
US20050076018A1 (en) * 2003-10-07 2005-04-07 Neidecker-Lutz Burkhard K. Sorting result buffer
US20070078826A1 (en) * 2005-10-03 2007-04-05 Tolga Bozkaya Analytic enhancements to model clause in structured query language (SQL)
US7243001B2 (en) * 2004-06-15 2007-07-10 Amazon Technologies, Inc. Time-based warehouse movement maps
US8315980B2 (en) * 2005-02-22 2012-11-20 Oracle International Corporation Parallel execution of window functions
US20060212429A1 (en) * 2005-03-17 2006-09-21 Microsoft Corporation Answering top-K selection queries in a relational engine
US7831620B2 (en) * 2006-08-31 2010-11-09 International Business Machines Corporation Managing execution of a query against a partitioned database
US8010766B2 (en) 2006-10-12 2011-08-30 International Business Machines Corporation Increasing buffer locality during multiple table access operations
WO2008078770A1 (ja) * 2006-12-27 2008-07-03 Dai Nippon Printing Co., Ltd. 力学量センサおよびその製造方法
US7756889B2 (en) * 2007-02-16 2010-07-13 Oracle International Corporation Partitioning of nested tables
US20080256037A1 (en) 2007-04-12 2008-10-16 Sihem Amer Yahia Method and system for generating an ordered list
CN101329676B (zh) * 2007-06-20 2010-04-14 华为技术有限公司 一种数据并行抽取方法、装置和数据库系统
US7966343B2 (en) * 2008-04-07 2011-06-21 Teradata Us, Inc. Accessing data in a column store database based on hardware compatible data structures
US7831590B2 (en) * 2007-08-31 2010-11-09 Teradata Us, Inc. Techniques for partitioning indexes
US20090063458A1 (en) * 2007-08-31 2009-03-05 International Business Machines Corporation method and system for minimizing sorting
US8620888B2 (en) * 2007-12-06 2013-12-31 Oracle International Corporation Partitioning in virtual columns
US7987164B2 (en) * 2008-01-09 2011-07-26 Oracle International Corporation Method and system for speeding up rebuild of user-defined indexes during partition maintenance operations in the database systems
US8046394B1 (en) * 2008-11-25 2011-10-25 Teradata Us, Inc. Dynamic partitioning for an ordered analytic function
US8234292B2 (en) * 2008-12-11 2012-07-31 Teradata Us, Inc. System, method, and computer-readable medium for optimizing processing of queries featuring maximum or minimum equality conditions in a parallel processing system
US8078825B2 (en) * 2009-03-11 2011-12-13 Oracle America, Inc. Composite hash and list partitioning of database tables
US8140517B2 (en) * 2009-04-06 2012-03-20 International Business Machines Corporation Database query optimization using weight mapping to qualify an index
CN101620617B (zh) * 2009-07-28 2011-07-13 中兴通讯股份有限公司 日志文件的查询和处理的方法及装置
US8204873B2 (en) 2009-08-26 2012-06-19 Hewlett-Packard Development Company, L.P. System and method for query expression optimization
US8706715B2 (en) 2009-10-05 2014-04-22 Salesforce.Com, Inc. Methods and systems for joining indexes for query optimization in a multi-tenant database
US8135667B2 (en) * 2009-12-31 2012-03-13 Teradata Us, Inc. System, method, and computer-readable medium that facilitate in-database analytics with supervised data discretization
US9094691B2 (en) * 2010-03-15 2015-07-28 Mediatek Singapore Pte. Ltd. Methods of utilizing tables adaptively updated for coding/decoding and related processing circuits thereof
US8239404B2 (en) 2010-06-10 2012-08-07 Microsoft Corporation Identifying entries and exits of strongly connected components
US8601038B2 (en) * 2010-10-08 2013-12-03 Hasso-Plattner-Institut Fur Softwaresystemtechnik Gmbh Available-to-promise on an in-memory column store
US9087094B2 (en) * 2011-04-25 2015-07-21 Microsoft Technology Licensing, Llc Processing records in dynamic ranges
US9507816B2 (en) * 2011-05-24 2016-11-29 Nintendo Co., Ltd. Partitioned database model to increase the scalability of an information system
KR101238381B1 (ko) 2011-06-07 2013-02-28 엔에이치엔(주) 다중범위 스캔에서의 n 정렬 질의를 최적으로 처리하기 위한 방법 및 장치
US8595267B2 (en) 2011-06-27 2013-11-26 Amazon Technologies, Inc. System and method for implementing a scalable data storage service
US8572091B1 (en) 2011-06-27 2013-10-29 Amazon Technologies, Inc. System and method for partitioning and indexing table data using a composite primary key
US20130013605A1 (en) * 2011-07-08 2013-01-10 Stanfill Craig W Managing Storage of Data for Range-Based Searching
US9064000B1 (en) * 2011-07-19 2015-06-23 Foundationdb, Llc Operations over nested relationships using operators
US8909672B2 (en) 2011-08-17 2014-12-09 Lsi Corporation Begin anchor annotation in DFAs
US8515927B2 (en) * 2011-09-02 2013-08-20 Bbs Technologies, Inc. Determining indexes for improving database system performance
US8812516B2 (en) * 2011-10-18 2014-08-19 Qualcomm Incorporated Determining top N or bottom N data values and positions
US8296306B1 (en) 2011-11-28 2012-10-23 Korea Advanced Institute Of Science And Technology Linear-time top-k sort method
US20130251235A1 (en) 2012-03-20 2013-09-26 Cashscan Corp. System for high speed processing of currency notes and slot tickets
US20140025626A1 (en) * 2012-04-19 2014-01-23 Avalon Consulting, LLC Method of using search engine facet indexes to enable search-enhanced business intelligence analysis
US9251155B1 (en) * 2012-05-04 2016-02-02 Paraccel Llc Maintaining sort order of data in databases
US9430550B2 (en) * 2012-09-28 2016-08-30 Oracle International Corporation Clustering a table in a relational database management system
US8996544B2 (en) * 2012-09-28 2015-03-31 Oracle International Corporation Pruning disk blocks of a clustered table in a relational database management system
US10210175B2 (en) * 2012-09-28 2019-02-19 Oracle International Corporation Techniques for lifecycle state management and in-database archiving
US9747313B2 (en) * 2012-12-19 2017-08-29 Sap Se Timeline index for managing temporal data
US9378243B1 (en) * 2012-12-31 2016-06-28 Teradata Us, Inc. Predicate-based range set generation
US9110949B2 (en) * 2013-02-11 2015-08-18 Oracle International Corporation Generating estimates for query optimization
US9330130B1 (en) * 2013-02-28 2016-05-03 Ca, Inc. Get row index of record in dynamic data table
US9372889B1 (en) * 2013-04-04 2016-06-21 Amazon Technologies, Inc. Incremental statistics update
US9489411B2 (en) * 2013-07-29 2016-11-08 Sybase, Inc. High performance index creation
US9659039B2 (en) * 2013-09-20 2017-05-23 Oracle International Corporation Maintaining staleness information for aggregate data
CN103500224B (zh) * 2013-10-18 2016-03-16 税友软件集团股份有限公司 一种数据写入方法及装置、数据读取方法及装置
US10108649B2 (en) 2014-02-25 2018-10-23 Internatonal Business Machines Corporation Early exit from table scans of loosely ordered and/or grouped relations using nearly ordered maps
US10331645B2 (en) 2015-08-17 2019-06-25 International Business Machines Corporation Data-partitioning for processing loosely ordered relations

Also Published As

Publication number Publication date
GB2538670B (en) 2017-06-14
US20190018872A1 (en) 2019-01-17
CN106030579A (zh) 2016-10-12
GB2538670A (en) 2016-11-23
US20150242506A1 (en) 2015-08-27
JP6336096B2 (ja) 2018-06-06
US11194780B2 (en) 2021-12-07
CN106030579B (zh) 2020-12-22
US10108651B2 (en) 2018-10-23
US10108649B2 (en) 2018-10-23
JP2017511517A (ja) 2017-04-20
DE112015000218B4 (de) 2022-11-17
WO2015128756A1 (en) 2015-09-03
US20150242452A1 (en) 2015-08-27
GB201616054D0 (en) 2016-11-02

Similar Documents

Publication Publication Date Title
DE112015000218B4 (de) Verfahren, System und Computerprogramm zum Abtasten einer Mehrzahl von Speicherbereichen in einem Arbeitsspeicher nach einer spezifizierten Anzahl von Ergebnissen
DE69934102T2 (de) System und verfahren zur model-mining von komplexen informationtechnologiesystemen
DE112020000749T5 (de) Indexerstellung für sich entwickelnde umfangreiche Datensätze in Hybriden Transaktions- und Analysenverarbeitungssystemen mit mehreren Mastern
DE102016105472A1 (de) Speicherebenenverteilung und parallele Zuordnung auf Blockebene bei Dateisystemen
DE112018003081T5 (de) Optimieren von benutzerzufriedenheit beim schulen eines kognitiven hierarchischen speicherverwaltungssystems
DE202017007212U1 (de) System zur inkrementellen Clusterwartung einer Tabelle
DE202016005239U1 (de) Graph-basierte Abfragen
DE112020003820T5 (de) Erkennung von Anomalien und Abweichungen unter Verwendung eines domänenindizierten Einschränkungs-Repository
DE102007037646B4 (de) Computerspeichersystem und Verfahren zum Indizieren, Durchsuchen und zur Datenwiedergewinnung von Datenbanken
DE102016105526A1 (de) Schnelles mehrschichtiges Indexieren mit Unterstützung für dynamische Aktualisierung
DE112006001378T5 (de) Automatische Verwaltung einer Speicherzugriffssteuerung
DE202015009874U1 (de) Implementierung semistrukturierter Daten als ein Datenbankelement erster Klasse
DE202010018481U1 (de) Asynchroner verteilter Objekt-Upload für replizierte Assoziativspeichercluster
DE10231161A1 (de) Domain-spezifisches wissensbasiertes Metasuchsystem und Verfahren zum Verwenden desselben
DE112013000725T5 (de) Überwachen von Inhaltsablagen, Identifizieren von falsch klassifizierten Inhaltsobjekten und Vorschlagen einer Neuklassifizierung
DE112019004387T5 (de) Unterteilen eines wissensgraphen
DE112018000456T5 (de) Verwalten von umfangreichen Zuordnungsgruppen unter Verwendung von optimierten Bitmap-Darstellungen
DE102005032744A1 (de) Indexextraktion von Dokumenten
DE112018005076T5 (de) Erstellen einer rangfolge von dokumenten auf grundlage ihres semantischen reichtums
DE112020000227T5 (de) Maschinelles lernen eines computermodells auf grundlage von korrelationenvon trainingsdaten mit leistungstrends
DE112019001480T5 (de) Automatisches Optimieren der Ressourcennutzung in einemZieldatenbankverwaltungssystem zum Erhöhen der Arbeitslastleistung
DE112020000554T5 (de) Verfahren zum zugreifen auf datensätze eines stammdatenverwaltungssystems
DE112018001290T5 (de) Verfahren zum Schätzen der Löschbarkeit von Datenobjekten
DE112020003596B4 (de) Datenbank-Tuning unter Verwendung eines föderierten maschinellen Lernsystems eines Centerless-Netzwerks
DE112021000338B4 (de) Auslagern der statistikerfassung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0016000000

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final