WO2006071830A1 - System and method for adaptive query identification and acceleration - Google Patents

System and method for adaptive query identification and acceleration Download PDF

Info

Publication number
WO2006071830A1
WO2006071830A1 PCT/US2005/046984 US2005046984W WO2006071830A1 WO 2006071830 A1 WO2006071830 A1 WO 2006071830A1 US 2005046984 W US2005046984 W US 2005046984W WO 2006071830 A1 WO2006071830 A1 WO 2006071830A1
Authority
WO
WIPO (PCT)
Prior art keywords
signature
queries
statements
query
data
Prior art date
Application number
PCT/US2005/046984
Other languages
French (fr)
Inventor
Phillip I. Rosengard
Original Assignee
Raytheon Company
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 Raytheon Company filed Critical Raytheon Company
Priority to EP05855527A priority Critical patent/EP1828939A1/en
Priority to CA002591206A priority patent/CA2591206A1/en
Priority to JP2007548569A priority patent/JP2008525897A/en
Priority to AU2005322096A priority patent/AU2005322096B2/en
Publication of WO2006071830A1 publication Critical patent/WO2006071830A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/2454Optimisation of common expressions
    • 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/284Relational databases
    • G06F16/285Clustering or classification
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99937Sorting

Definitions

  • the present invention relates to computers and computer software. More specifically, the present invention relates to database management systems and methods.
  • COTS Commercial off the shelf
  • database software engine cache management systems generally utilize LRU (Least Recently Used) and other database cache management techniques that attempt to maximize actively accessed data references in a database cache.
  • LRU Least Recently Used
  • database cache management algorithms are generally sub-optimal with respect to query throughput. Efforts to improve query throughput have included increases in the size of cache. However, this approach is limited by the amount of overhead (locks, latches and pointers) associated with data in cache. This overhead limits the speed of a central processing unit in a retrieval of the data.
  • the system is adapted to analyze a plurality of data queries and provide a metric with respect thereto. The system then orders the queries based on the metric to improve a performance parameter of the system or estimate an execution time with respect to the query.
  • the system includes code for analyzing a signature of each of the queries, comparing the signature to a calibrated signature and providing a signature score in response thereto.
  • the system further includes code for estimating an execution time of at least one of the queries.
  • the signature may be a cluster of statements in an appropriate language such as SQL (standard query language).
  • the signature maybe a set of features extracted from a plurality of statements.
  • User queries are optimally sequenced to maximize database cache hits prior to submission of the query to a conventional commercial off-the-shelf (COTS) database engine.
  • COTS commercial off-the-shelf
  • each user query is identified for its similarity to other queued queries, in a data reference and SQL language sense, and the predicted execution time thereof. The predicted execution time can be used to filter queries that exceed a database cache window size.
  • Query identification is based upon the generation of query signatures.
  • a query signature has two major components: data references and SQL statements. The signatures are generated using a single pass, beginning to end, parsing of the SQL query into data references and statements.
  • Data reference aliases i.e., those references with different symbolic names
  • data constants are filtered from the data reference signature, as they have no bearing on database cache hits or misses.
  • the query data references then are entered as elements into an n-vector space.
  • the 'n' vector space is created using the database schema (contains all table and table element symbolic names and is COTS database engine independent) put in lexicographic order.
  • the n-vector space is the data reference signature component used for query similarity identification.
  • many standard mathematical techniques can be used to measure similarity: Euclidean distance, Boolean, covariance, cross- correlation, etc.
  • Query SQL statement signatures can be generated using an ordered set of statements.
  • An ordered statement set consists of the list of SQL statements, functions, or conditional operators, generated by the beginning to end query parser. The list then becomes the SQL statement signature component and can be compared to other queries using cross-correlation.
  • queries queued for the database engine can be re-sequenced based on similarity from most similar to least similar.
  • more cache hits should be generated over time than a random sequence of queries (since a random sequence will de-correlate the hit/miss ratio to some mean, while an ordered set will tend to increase the nit/miss ratio above the mean).
  • queries that exceed the database cache window can be grouped for batch operation based on similarity, thus optimizing database cache hits.
  • Fig. 1 is a simplified block diagram of an illustrative implementation of a data management system in accordance with the teachings of the present invention.
  • Fig. 2 is a flow diagram of an illustrative implementation of a periodic query metric method in accordance with the teachings of the present invention.
  • Fig. 3 is a flow diagram of an illustrative implementation of a real time query time estimation and acceleration method in accordance with the teachings of the present invention.
  • Fig. 1 is a simplified block diagram of an illustrative implementation of a data management system in accordance with the teachings of the present invention.
  • the data management system 10 of the present invention includes a user interface 12, a web server 14, an application server 16, a database server 22 and a database 26.
  • the database 26 is stored on a fixed medium such as a hard disk.
  • the database server 22 has cache memory 24.
  • the user interface 12, web server 14, application server 16, and database server 22 are implemented in software adapted to run on the central processing unit (CPU) of a general purpose computer (not shown).
  • the application server 16 is shown with a process 18 which optimizes the performance of the system 10 and outputs query execution time as discussed more fully below.
  • Query signature and execution times are recorded by process 18 in storage 20.
  • performance optimization and query execution time are effected in software on the CPU via periodic query metrics and real time query time estimation and acceleration.
  • Fig. 2 is a flow diagram of an illustrative implementation of a periodic query metric method in accordance with the teachings of the present invention.
  • the method 100 includes the steps of initialization (102) and creating a query data attribute vector space (104).
  • database schema is queried to ascertain a list of table attribute names.
  • the step 104 provides an ordered vector space of data attributes, e.g., lexicographic ordering of all data attribute names to form an ordered space Q * A of dimension I x N, where 'N' is the number of data attributes in the data base schema.
  • the method 100 optionally creates a query data attribute extent vector space Q * E using attribute extent and database cache window size data supplied by a step 110 of creating database files.
  • the query data attribute extent vector space Q * E is the extent of all data attributes in the ordered vector space of data attributes (Q A ) expressed as a 1 x N vector with each vector element containing the extent (length) of the data attribute.
  • the ordered vector space of data attributes Q * A and the query data attribute extent vector space Q * E are fed to a query calibration database 120.
  • query calibration is performed using randomly ordered queries
  • Qi . . . Q N in a suitable language, such as SQL (Standard Query Language), provided from a pre-defined query library.
  • SQL Standard Query Language
  • 'N' is the number of queries in the library.
  • Each query is executed, its' run time recorded; and its' signature generated as described in the following steps.
  • a lexical analysis of each procedural query Qj is performed. This analysis is performed by first creating a signature for each query (Qj, where 'i' ranges from 1 to N) and outputting SQL and data attribute components to the query calibration database 120.
  • each Q; signature is a set of lexically extracted SQL and data attribute components formed as key features using principal component analysis (PCA).
  • each query Qj is executed without using cache and the uncached execution time is recorded and stored in the query calibration database 120.
  • the uncached execution time is the query execution time when none of the data attributes are present in the database engine cache.
  • each query Qj is retrieved using cache and the cached execution time is stored in the query calibration database 120.
  • the cached execution time is the query execution time when referenced data attributes are present in the database engine cache.
  • this process is repeated for all N queries.
  • a principal component analysis is performed using the signature components and the ordered vector space of data attributes Q * A from the query calibration database 120.
  • PCA involves an ordinal based feature extraction and classification of SQL query lexical structure and referenced data attributes. This step need only be performed at system initialization or when a pre-defined query is added or modified. Pre-defined queries are calibrated at system initialization or re-calibrated when modified to adapt to SQL, data attribute reference, or COTS data base engine or operating system changes.
  • time estimate coefficients are created and ETQ (estimated time for query) coefficients are stored in the query calibration database 120.
  • the ETQ coefficients are used in a linear or non-linear time estimate model to predict execution time of a query based on lexical SQL and data attribute features.
  • a similarity score is calculated for each query Qj.
  • the similarity score is a measure of the similarity between Q 1 and all other queries. If, at step 134, all pre-defined metrics are complete the periodic query analysis is ended at 136.
  • Fig. 3 is a flow diagram of an illustrative implementation of a real time query time estimation and acceleration method in accordance with the teachings of the present invention.
  • the real time query time estimation and acceleration method 200 includes an initialization step 202 and a step 204 at which real time input queries Q R J, . . . , Q RN are received.
  • the system waits T c milliseconds for 'j' queries where 'j' is the total number of queries collected, and 'i' is the 0 to j index of collected real-time queries.
  • 'T 0 milliseconds' is the time allocated to collect queries from a FIFO input queue of randomly sequenced queries and where 'j' queries are collected in T c milliseconds.
  • each real time query signature Q R is compared to each calibrated signature. If each real time query signature Q RJ is equal to each calibrated signature, then, at step 216, the signature score is obtained from the query calibration database 120. If not, then at step 214, pre-defined query signatures are obtained from the query calibration database 120 and the closest pre-defined pQic match to Q R j, where pQic is k th member of the pre-defined queries in the query calibration data base. In any case, at step 216, the signature score is obtained from the query calibration database 120.
  • the execution time is estimated using signature and ETQ coefficients from the query calibration database 120.
  • the closest query calibration data base signature score to Q R is defines a unique pre-defined query, pQj ⁇ .
  • the signature and ETQ coefficients of PQ K are used for Q R in further processing.
  • the system ascertains whether the estimated time for each real time query Q R1 is less than the data base cache window time.
  • the data base cache window time is is usually measured in minutes and is a function of two computer parameters: (1) allocated main memory, and (2) secondary (disk) storage access time.
  • each real time query is associated to a most similarly ordered list query and put in the list using a similarity score and list position information supplied by an ordered query execution list 228. If at step 230 all the queries are not ordered, then at step 232, T is indexed and the next query is optimally ordered and the system returns to step 208 to perform another lexical analysis on the subject query.
  • each ordered query 'Q 01 ' is issued to the database engine from the ordered query execution list 228 and the routine 200 ends at step 242.
  • each real time query is moved to a long query queue at steps 222 and 224 (Fig. 3 (a)) and the system check the long query queue for a non-empty state at step 244 in Fig. 3(b). If the queue is not empty, then the routine 200 ends at step 242.
  • step 248 the next long query from the long query execution list 224 is issued to the database engine and the routine 200 ends at step 242. If not, then the routine 200 ends at step 242.
  • the present invention applies system identification techniques, such as feature extraction and cluster analysis, to SQL queries, correlates the query signature to execution time, and uses the query signature as an input to a control system to adaptively and intelligently sequence queries to maximize database cache performance. For example, if:
  • a feature is a cluster or feature set extraction of SQL statements. For example:
  • Sig Qi ⁇ da, ..., dii ⁇ data references and ⁇ s ⁇ , ..., Sy ⁇ SQL statements [2]
  • Sig Q 2 ⁇ ji, ..., d 2 k ⁇ data references and ⁇ s 2 i, ..., s 2 i ⁇ SQL statements [3]
  • Sj ⁇ sdo_gid, sdo_xl, sdo_yl, cities_sdogeom, a.sdo_gid gidl, cities_sdoindex a, window_sdoindex b, b.sdo_gid, [area of interest id], a.sdo_code, b.sdo_code, sdo_gid, gidl, sdo_xl, Xmin, Xmax, sdo_yl, Ymin, Ymax ⁇
  • SQL uses symbol overloading, for more concise expressions one may need to substitute the real data reference for the overloaded symbol prior to classification algorithm.
  • Sd ⁇ sdo_gid, sdo_xl, sdo_yl, cities_sdogeom, a.sdo_gid gidl, cities_sdoindex a, window_sdoindex b, b.sdo_gid, a.sdo_code, b.sdo_code, sdo_gid, gidl, sdo_xl , sdo yl ⁇
  • Sd ⁇ sdo_gid, sdo xl, sdo_yl, cities_sdogeom, cities_sdogeom.sdo_gid gidl , window_sdoindex .sdo_gid, cities_sdoindex .sdo_code, window_sdoindex.sdo_code, sdo_gid, gidl , sdo_xl, sdo_yl ⁇
  • Sd ⁇ sdo_gid, sdo_xl, sdo_yl, cities_sdogeom, cities_sdogeom.sdo_gid gidl , window_sdoindex.sdo_gid, cities_sdoindex.sdo_code, wi ⁇ dow_sdoindex.sdo_code ⁇
  • Data reference space is created by lexicographically ordering all the data attribute names in the data base schema.
  • the order of the space, 'N" is determined by the total number of data attribute names.
  • the next step in the feature extraction process is to take the SQL key features and group them by principal component for time estimation and signatures (e.g., number of JOIN, or other, statements; depth of statement nesting, etc.)
  • principal component for time estimation and signatures e.g., number of JOIN, or other, statements; depth of statement nesting, etc.
  • Sd ⁇ sdo_gid, sdo_xl, sdo_yl , cities_sdogeom, cities_sdogeom.sdo_gid gidl, window_sdoindex.sdo_gid, eities_sdoindex.sdo_code, window_sdoindex.sdo_code ⁇
  • Table I illustrates the data attributes found by lexical analysis of SQL procedure Sd.
  • Table II illustrates a 'complete" data reference space when the data base schema is used.
  • Table I data attributes are a subset of Table II.
  • Table II also illustrates how SQL procedure Sd uses elements of the data reference space.
  • Data reference space comparison for the signature data reference vector can roaches including:
  • SQL (non-data) program is classified with a light weight computational approach.
  • a single pass lexical parser with no reliance on intermediate format SQL for program classification may be used.
  • Table III shows an illustrative set of standard SQL statements, functions and operators:
  • WHERE sdo_gid gidl AND sdo_xl BETWEEN Xrnin AND Xmax AND sdo_yl BETWEEN Yrnin AND Ymax;
  • Table IV shows another single pass lexical analyzer approach to SQL classification with the creation of a statement list in order encountered (right side of table) and an ordered vector for statements (left side of table); both of these can be used as SQL statement signature vectors for principal component extraction:

Abstract

A data management system and method. The system is adapted to analyze a plurality of data queries and provide a metric with respect thereto. The system then orders the queries based on the metric to improve a performance parameter of the system or estimate an execution time with respect to the query. In a more specific implementation, the system includes code for analyzing a signature of each of the queries, comparing the signature to a calibrated signature and providing a signature score in response thereto. The system further includes code for estimating an execution time of at least one of the queries. The signature may be a cluster of statements in an appropriate language such as SQL (standard query language). As an alternative, the signature maybe a set of features extracted from a plurality of statements.

Description

SYSTEM AND METHOD FOR ADAPTIVE QUERY IDENTIFICATION AND ACCELERATION
BACKGROUND OF THE INVENTION
Field of the Invention:
The present invention relates to computers and computer software. More specifically, the present invention relates to database management systems and methods.
Description of the Related Art:
Commercial off the shelf (COTS) database software engine cache management systems generally utilize LRU (Least Recently Used) and other database cache management techniques that attempt to maximize actively accessed data references in a database cache. These conventional database caching algorithms generally have no knowledge of the next query and its data references. As such, conventional database cache management algorithms are generally sub-optimal with respect to query throughput. Efforts to improve query throughput have included increases in the size of cache. However, this approach is limited by the amount of overhead (locks, latches and pointers) associated with data in cache. This overhead limits the speed of a central processing unit in a retrieval of the data.
Hence, a need exists in the art for a system or method for an improved database retrieval and cache management scheme to reduce the execution time per query and thereby improve overall throughput on a given hardware/software platform.
SUMMARY OF THE INVENTION
The need in the art is addressed by the data management system and method of the present invention. In a most general sense, the system is adapted to analyze a plurality of data queries and provide a metric with respect thereto. The system then orders the queries based on the metric to improve a performance parameter of the system or estimate an execution time with respect to the query.
In a more specific implementation, the system includes code for analyzing a signature of each of the queries, comparing the signature to a calibrated signature and providing a signature score in response thereto. The system further includes code for estimating an execution time of at least one of the queries. The signature may be a cluster of statements in an appropriate language such as SQL (standard query language). As an alternative, the signature maybe a set of features extracted from a plurality of statements.
User queries are optimally sequenced to maximize database cache hits prior to submission of the query to a conventional commercial off-the-shelf (COTS) database engine. To achieve optimal sequencing, each user query is identified for its similarity to other queued queries, in a data reference and SQL language sense, and the predicted execution time thereof. The predicted execution time can be used to filter queries that exceed a database cache window size. Query identification is based upon the generation of query signatures. A query signature has two major components: data references and SQL statements. The signatures are generated using a single pass, beginning to end, parsing of the SQL query into data references and statements. Data reference aliases (i.e., those references with different symbolic names) and data constants are filtered from the data reference signature, as they have no bearing on database cache hits or misses. The query data references then are entered as elements into an n-vector space. The 'n' vector space is created using the database schema (contains all table and table element symbolic names and is COTS database engine independent) put in lexicographic order. The n-vector space is the data reference signature component used for query similarity identification. As an n-vector, many standard mathematical techniques can be used to measure similarity: Euclidean distance, Boolean, covariance, cross- correlation, etc.
Query SQL statement signatures can be generated using an ordered set of statements. An ordered statement set consists of the list of SQL statements, functions, or conditional operators, generated by the beginning to end query parser. The list then becomes the SQL statement signature component and can be compared to other queries using cross-correlation.
Using the data reference and SQL statement signatures (from the query identification process), queries queued for the database engine can be re-sequenced based on similarity from most similar to least similar. Thus, statistically, more cache hits should be generated over time than a random sequence of queries (since a random sequence will de-correlate the hit/miss ratio to some mean, while an ordered set will tend to increase the nit/miss ratio above the mean). Further, queries that exceed the database cache window (measured in windows) can be grouped for batch operation based on similarity, thus optimizing database cache hits. BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 is a simplified block diagram of an illustrative implementation of a data management system in accordance with the teachings of the present invention.
Fig. 2 is a flow diagram of an illustrative implementation of a periodic query metric method in accordance with the teachings of the present invention. Fig. 3 is a flow diagram of an illustrative implementation of a real time query time estimation and acceleration method in accordance with the teachings of the present invention.
DESCRIPTION OF THE INVENTION
Illustrative embodiments and exemplary applications will now be described with reference to the accompanying drawings to disclose the advantageous teachings of the present invention.
While the present invention is described herein with reference to illustrative embodiments for particular applications, it should be understood that the invention is not limited thereto. Those having ordinary skill in the art and access to the teachings provided herein will recognize additional modifications, applications, and embodiments within the scope thereof and additional fields in which the present invention would be of significant utility.
Fig. 1 is a simplified block diagram of an illustrative implementation of a data management system in accordance with the teachings of the present invention. As shown in Fig. 1, in the illustrative embodiment, the data management system 10 of the present invention includes a user interface 12, a web server 14, an application server 16, a database server 22 and a database 26. Typically, the database 26 is stored on a fixed medium such as a hard disk. In accordance with conventional teachings, the database server 22 has cache memory 24. The user interface 12, web server 14, application server 16, and database server 22 are implemented in software adapted to run on the central processing unit (CPU) of a general purpose computer (not shown). In accordance with the present teachings, the application server 16 is shown with a process 18 which optimizes the performance of the system 10 and outputs query execution time as discussed more fully below. Query signature and execution times are recorded by process 18 in storage 20. In accordance with the present teachings, performance optimization and query execution time are effected in software on the CPU via periodic query metrics and real time query time estimation and acceleration.
Fig. 2 is a flow diagram of an illustrative implementation of a periodic query metric method in accordance with the teachings of the present invention. As shown in Fig. 2(a) the method 100 includes the steps of initialization (102) and creating a query data attribute vector space (104). At step 106, database schema is queried to ascertain a list of table attribute names. The step 104 provides an ordered vector space of data attributes, e.g., lexicographic ordering of all data attribute names to form an ordered space Q* A of dimension I x N, where 'N' is the number of data attributes in the data base schema.
Next, at step 108, if data is available, the method 100 optionally creates a query data attribute extent vector space Q* E using attribute extent and database cache window size data supplied by a step 110 of creating database files. The query data attribute extent vector space Q* E is the extent of all data attributes in the ordered vector space of data attributes (Q A) expressed as a 1 x N vector with each vector element containing the extent (length) of the data attribute. The ordered vector space of data attributes Q*A and the query data attribute extent vector space Q* E are fed to a query calibration database 120. At step 1 12, query calibration is performed using randomly ordered queries
Qi, . . . QN in a suitable language, such as SQL (Standard Query Language), provided from a pre-defined query library. Where 'N' is the number of queries in the library.
Each query is executed, its' run time recorded; and its' signature generated as described in the following steps.
Next, at step 116, a lexical analysis of each procedural query Qj is performed. This analysis is performed by first creating a signature for each query (Qj, where 'i' ranges from 1 to N) and outputting SQL and data attribute components to the query calibration database 120. As discussed more fully below, each Q; signature is a set of lexically extracted SQL and data attribute components formed as key features using principal component analysis (PCA).
Next, at step 122, each query Qj is executed without using cache and the uncached execution time is recorded and stored in the query calibration database 120. The uncached execution time is the query execution time when none of the data attributes are present in the database engine cache.
Then, at step 124, each query Qj is retrieved using cache and the cached execution time is stored in the query calibration database 120. The cached execution time is the query execution time when referenced data attributes are present in the database engine cache. Per step 126, this process is repeated for all N queries. Next, as illustrated in Fig. 2(b), at step 128, a principal component analysis is performed using the signature components and the ordered vector space of data attributes Q* A from the query calibration database 120. PCA involves an ordinal based feature extraction and classification of SQL query lexical structure and referenced data attributes. This step need only be performed at system initialization or when a pre-defined query is added or modified. Pre-defined queries are calibrated at system initialization or re-calibrated when modified to adapt to SQL, data attribute reference, or COTS data base engine or operating system changes.
At step 130, time estimate coefficients are created and ETQ (estimated time for query) coefficients are stored in the query calibration database 120. The ETQ coefficients are used in a linear or non-linear time estimate model to predict execution time of a query based on lexical SQL and data attribute features.
Next, at step 132 a similarity score is calculated for each query Qj. The similarity score is a measure of the similarity between Q1 and all other queries. If, at step 134, all pre-defined metrics are complete the periodic query analysis is ended at 136.
Fig. 3 is a flow diagram of an illustrative implementation of a real time query time estimation and acceleration method in accordance with the teachings of the present invention. The real time query time estimation and acceleration method 200 includes an initialization step 202 and a step 204 at which real time input queries QRJ, . . . , QRN are received.
Next, at step 206, the system waits Tc milliseconds for 'j' queries where 'j' is the total number of queries collected, and 'i' is the 0 to j index of collected real-time queries. 'T0 milliseconds' is the time allocated to collect queries from a FIFO input queue of randomly sequenced queries and where 'j' queries are collected in Tc milliseconds.
Then, at step 208, a lexical analysis is performed on each real time query QR;. At step 212, each real time query signature QR; is compared to each calibrated signature. If each real time query signature QRJ is equal to each calibrated signature, then, at step 216, the signature score is obtained from the query calibration database 120. If not, then at step 214, pre-defined query signatures are obtained from the query calibration database 120 and the closest pre-defined pQic match to QRj, where pQic is kth member of the pre-defined queries in the query calibration data base. In any case, at step 216, the signature score is obtained from the query calibration database 120. At step 218, the execution time is estimated using signature and ETQ coefficients from the query calibration database 120. The closest query calibration data base signature score to QR; is defines a unique pre-defined query, pQj<. , the signature and ETQ coefficients of PQK are used for QR in further processing. Then, at step 220, the system ascertains whether the estimated time for each real time query QR1 is less than the data base cache window time. The data base cache window time is is usually measured in minutes and is a function of two computer parameters: (1) allocated main memory, and (2) secondary (disk) storage access time. If so, then, at step 226, each real time query is associated to a most similarly ordered list query and put in the list using a similarity score and list position information supplied by an ordered query execution list 228. If at step 230 all the queries are not ordered, then at step 232, T is indexed and the next query is optimally ordered and the system returns to step 208 to perform another lexical analysis on the subject query.
If all the 'j' queries are ordered, then at step 234 an ordered list query count is initialized. See Fig. 3(b). At steps 236, 238 and 240, each ordered query 'Q01' is issued to the database engine from the ordered query execution list 228 and the routine 200 ends at step 242.
If estimated time for each real time query QR, is not less than the data base cache window time, then each real time query is moved to a long query queue at steps 222 and 224 (Fig. 3 (a)) and the system check the long query queue for a non-empty state at step 244 in Fig. 3(b). If the queue is not empty, then the routine 200 ends at step 242.
If the long query queue is found empty at step 244, then at step 246 the routine
200 checks for whether the ordered query execution has completed, i.e., i=j. If so, at step 248 the next long query from the long query execution list 224 is issued to the database engine and the routine 200 ends at step 242. If not, then the routine 200 ends at step 242.
In the illustrative embodiment, the present invention applies system identification techniques, such as feature extraction and cluster analysis, to SQL queries, correlates the query signature to execution time, and uses the query signature as an input to a control system to adaptively and intelligently sequence queries to maximize database cache performance. For example, if:
Query Queue - (Qi1 Q2, Q3, Q4), [1] Where query data parameters for Qi and Q4 are similar (Qi - Q4), then Q1, Q4, Q2, Q3 is a more database cache efficient sequence with respect to execution time.
In this application, a feature is a cluster or feature set extraction of SQL statements. For example:
Sig Qi = {da, ..., dii} data references and {sπ, ..., Sy} SQL statements [2] Sig Q2 = {άji, ..., d2k} data references and {s2i, ..., s2i} SQL statements [3]
They can be quickly and easily compared using standard mathematical techniques, e.g., cross-correlation.
I Sig (Ql) n (Sig(Ql), Sig(Q2) ..., Sig(Qn)} | = vl [4]
I Sig (Q2) n (SIg(Ql), Sig(Q2) ..., Sig(Qn)} | = v2 [5]
where 'vl' is a signature vector for Ql and 'v2' is a signature vector for Q2
An approach to generate these vectors with data reference feature set extraction is set forth below. Consider the following as a feature extracted sample SQL data set:
Sj = {sdo_gid, sdo_xl, sdo_yl, cities_sdogeom, a.sdo_gid gidl, cities_sdoindex a, window_sdoindex b, b.sdo_gid, [area of interest id], a.sdo_code, b.sdo_code, sdo_gid, gidl, sdo_xl, Xmin, Xmax, sdo_yl, Ymin, Ymax}
[6]
It should be noted that:
1. One may want to filter out constant data references as these references are not cached.
2. SQL uses symbol overloading, for more concise expressions one may need to substitute the real data reference for the overloaded symbol prior to classification algorithm.
3. One may want to filter out multiple data references to shorten the feature set to only unique references.
4. One may want to keep multiple data references to develop "histogram" for median and mode analysis. This is illustrated below:
Feature extraction with pre-processing step 1 applied - Delete Constants
Sd = {sdo_gid, sdo_xl, sdo_yl, cities_sdogeom, a.sdo_gid gidl, cities_sdoindex a, window_sdoindex b, b.sdo_gid, a.sdo_code, b.sdo_code, sdo_gid, gidl, sdo_xl , sdo yl }
[7]
Feature extraction with pre-processing step 2 applied - Delete symbol name overload
Sd = {sdo_gid, sdo xl, sdo_yl, cities_sdogeom, cities_sdogeom.sdo_gid gidl , window_sdoindex .sdo_gid, cities_sdoindex .sdo_code, window_sdoindex.sdo_code, sdo_gid, gidl , sdo_xl, sdo_yl }
[8]
Feature extraction with pre-processing step 3 applied — Eliminate Multiple References
Sd = {sdo_gid, sdo_xl, sdo_yl, cities_sdogeom, cities_sdogeom.sdo_gid gidl , window_sdoindex.sdo_gid, cities_sdoindex.sdo_code, wiπdow_sdoindex.sdo_code}
[9]
Next, data set vectors are created. In the illustrative embodiment, general approaches are considered:
(1) Ordered set across data reference space: Data reference space is created by lexicographically ordering all the data attribute names in the data base schema. The order of the space, 'N", is determined by the total number of data attribute names.
Once the data reference space has been created two variants may be used to create a data attribute signature vector:
(a) Count only unique data reference instances (b) Count multiple data reference instances
The next step in the feature extraction process is to take the SQL key features and group them by principal component for time estimation and signatures (e.g., number of JOIN, or other, statements; depth of statement nesting, etc.)
Sd = {sdo_gid, sdo_xl, sdo_yl , cities_sdogeom, cities_sdogeom.sdo_gid gidl, window_sdoindex.sdo_gid, eities_sdoindex.sdo_code, window_sdoindex.sdo_code}
[10]
Sd = {sdo_gid, sdo_xl, sdo_yl, cities__sdogeom, cities_sdogeom.sdo_gid gidl,
\vindow_sdoindex.sdo_gid, cities_sdoindex.sdo_code, window_sdoindex.sdo_code, sdo_gid, gidl, sdo_xl, sdo_yl }
[H]
II. Table I illustrates the data attributes found by lexical analysis of SQL procedure Sd. Table II illustrates a 'complete" data reference space when the data base schema is used. Table I data attributes are a subset of Table II. Table II also illustrates how SQL procedure Sd uses elements of the data reference space.
Table I
Figure imgf000012_0001
Table Il
Figure imgf000013_0001
Data reference space comparison for the signature data reference vector can roaches including:
1. Mean vector and variance-covariance matrix
2. Cross-correlation of data histogram
3. Cross-correlation of ordered vectors
4. Euclidean distance measures - "dot" product
SQL Procedure Classification:
In accordance with the present teachings, SQL (non-data) program is classified with a light weight computational approach. For example, a single pass lexical parser with no reliance on intermediate format SQL for program classification may be used. Table III shows an illustrative set of standard SQL statements, functions and operators:
Table III
Figure imgf000015_0001
The following is an illustrative SQL classification procedure:
SELECT sdo_gid, sdo_xl, sdo_yl FROM cities_sdogeom, (SELECT a.sdo_gid gidl FROM cities_sdoindex a, windo\v_sdoindex b
WHERE b.sdo_gid = [area of interest id] AND a.sdo_code = b.sdo_code)
WHERE sdo_gid = gidl AND sdo_xl BETWEEN Xrnin AND Xmax AND sdo_yl BETWEEN Yrnin AND Ymax;
Table IV shows another single pass lexical analyzer approach to SQL classification with the creation of a statement list in order encountered (right side of table) and an ordered vector for statements (left side of table); both of these can be used as SQL statement signature vectors for principal component extraction:
Table IV
Figure imgf000017_0001
In Table IV, 'value' shows frequency of statement occurrence. These values can be grouped into principal components as noted earlier for use in generation of ETQ model coefficients. Those skilled in the art will appreciate one can use a dot product, or histogram comparisons for correlation.
Thus, the present invention has been described herein with reference to a particular embodiment for a particular application. Those having ordinary skill in the art and access to the present teachings will recognize additional modifications applications and embodiments within the scope thereof.
It is therefore intended by the appended claims to cover any and all such applications, modifications and embodiments within the scope of the present invention. Accordingly,
WHAT IS CLAIMED IS:

Claims

CLAIMSWHAT IS CLAIMED IS:
1. A data management system comprising: first means for analyzing a plurality of data queries and providing a metric with respect thereto and second means for ordering said queries based on said metric to improve a performance parameter of said system.
2. The invention of Claim 1 wherein said first means includes means for analyzing a signature of each of said queries.
3. The invention of Claim 2 wherein said signature is a cluster of statements.
4. The invention of Claim 3 wherein said statements are standard query language (SQL) statements.
5. The invention of Claim 2 wherein said signature is a set of features extracted from said a plurality of statements.
6. The invention of Claim 5 wherein said statements are standard query language (SQL) statements.
7. The invention of Claim 2 wherein said first means includes means for comparing said signature to a calibrated signature and providing a signature score in response thereto.
8. The invention of Claim 7 further including means responsive to said score for estimating an execution time of at least one of said queries.
9. A data management system comprising: first means for analyzing plurality of data queries and second means responsive to said first means for estimating an execution time of a query.
10. The invention of Claim 9 wherein said First means includes means for analyzing a signature of each of said queries.
1 1. The invention of Claim 10 wherein said signature is a cluster of statements.
12. The invention of Claim 11 wherein said statements are standard query language (SQL) statements.
13. The invention of Claim 10 wherein said signature is a set of features extracted from said a plurality of statements.
14. The invention of Claim 13 wherein said statements are standard query language (SQL) statements.
15. The invention of Claim 10 wherein said first means includes means for comparing said signature to a calibrated signature and providing a signature score in response thereto.
16. The invention of Claim 15 further including means responsive to said score for ordering said queries to minimize a metric with respect thereto.
17. The invention of Claim 16 wherein said metric is execution time.
18. A data management system comprising: a database; a processor coupled to said database; a communications interface for supplying a plurality of queries to said database via said processor; and software running on said processor for analyzing a plurality of said queries and organizing said queries to optimize a performance parameter with respect to a retrieval thereof.
19. The invention of Claim 18 wherein said software includes code for analyzing a signature of each of said queries.
20. The invention of Claim 19 wherein said signature is a cluster of statements.
21. The invention of Claim 20 wherein said statements are standard query language (SQL) statements.
22. The invention of Claim 19 wherein said signature is a set of features extracted from said a plurality of statements.
23. The invention of Claim 22 wherein said statements are standard query language (SQL) statements.
24. The invention of Claim 19 wherein said software includes code for comparing said signature to a calibrated signature and providing a signature score in response thereto.
25. The invention of Claim 24 further including code responsive to said score for ordering said queries to minimize a metric with respect thereto.
26. The invention of Claim 25 wherein said metric is execution time.
27. A data management method including the steps of: analyzing a plurality of data queries and providing a metric with respect thereto and ordering said queries based on said metric to improve a performance parameter thereof.
PCT/US2005/046984 2004-12-23 2005-12-22 System and method for adaptive query identification and acceleration WO2006071830A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP05855527A EP1828939A1 (en) 2004-12-23 2005-12-22 System and method for adaptive query identification and acceleration
CA002591206A CA2591206A1 (en) 2004-12-23 2005-12-22 System and method for adaptive query identification and acceleration
JP2007548569A JP2008525897A (en) 2004-12-23 2005-12-22 System and method for adaptive query identification and acceleration
AU2005322096A AU2005322096B2 (en) 2004-12-23 2005-12-22 System and method for adaptive query identification and acceleration

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/021,687 2004-12-23
US11/021,687 US7596560B2 (en) 2004-12-23 2004-12-23 System and method for adaptive query identification and acceleration

Publications (1)

Publication Number Publication Date
WO2006071830A1 true WO2006071830A1 (en) 2006-07-06

Family

ID=36283055

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2005/046984 WO2006071830A1 (en) 2004-12-23 2005-12-22 System and method for adaptive query identification and acceleration

Country Status (6)

Country Link
US (1) US7596560B2 (en)
EP (1) EP1828939A1 (en)
JP (1) JP2008525897A (en)
AU (1) AU2005322096B2 (en)
CA (1) CA2591206A1 (en)
WO (1) WO2006071830A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008074528A1 (en) * 2006-12-19 2008-06-26 International Business Machines Corporation Method and system for reducing difference in the time of retrieval of data retrieved from different sources
CN107885865A (en) * 2017-11-22 2018-04-06 星环信息科技(上海)有限公司 A kind of cost optimization device and the method and its equipment of cost estimation
WO2019199466A1 (en) * 2018-04-13 2019-10-17 Microsoft Technology Licensing, Llc Computation reuse in analytics job service

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7822769B2 (en) * 2006-08-31 2010-10-26 Rivet Software, Inc. Analysis of financial and business information based on interactive data
US9747349B2 (en) * 2006-10-30 2017-08-29 Execue, Inc. System and method for distributing queries to a group of databases and expediting data access
US20080235182A1 (en) * 2007-03-23 2008-09-25 Baranczyk Shawn J Isolating Database Queries for Performance Processing
US9355129B2 (en) * 2008-10-14 2016-05-31 Hewlett Packard Enterprise Development Lp Scheduling queries using a stretch metric
US8365174B2 (en) * 2008-10-14 2013-01-29 Chetan Kumar Gupta System and method for modifying scheduling of queries in response to the balancing average stretch and maximum stretch of scheduled queries
US8204900B2 (en) * 2009-05-21 2012-06-19 Bank Of America Corporation Metrics library
CN104714972B (en) * 2013-12-17 2018-06-22 中国银联股份有限公司 Database divides table foundation and querying method
KR102213674B1 (en) 2014-02-17 2021-02-08 삼성전자주식회사 All-in-one data storage device having internal hardware filter and method thereof
US10346358B2 (en) * 2014-06-04 2019-07-09 Waterline Data Science, Inc. Systems and methods for management of data platforms
US9767168B2 (en) 2014-11-21 2017-09-19 Red Hat, Inc. Federation optimization using ordered queues
US11829362B2 (en) * 2018-05-15 2023-11-28 Oracle International Corporation Automatic database query load assessment and adaptive handling
US11474978B2 (en) * 2018-07-06 2022-10-18 Capital One Services, Llc Systems and methods for a data search engine based on data profiles
WO2020181319A1 (en) * 2019-03-08 2020-09-17 Alertness CRC Ltd Sleep disorder data fidelity management system
CN113326246A (en) * 2020-02-28 2021-08-31 华为技术有限公司 Method, device and system for estimating performance of database management system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619692A (en) * 1995-02-17 1997-04-08 International Business Machines Corporation Semantic optimization of query order requirements using order detection by normalization in a query compiler system
US6026391A (en) * 1997-10-31 2000-02-15 Oracle Corporation Systems and methods for estimating query response times in a computer system
US6466931B1 (en) * 1999-07-30 2002-10-15 International Business Machines Corporation Method and system for transparently caching and reusing query execution plans efficiently
US20030172059A1 (en) * 2002-03-06 2003-09-11 Sybase, Inc. Database system providing methodology for eager and opportunistic property enforcement
US20040158551A1 (en) * 2003-02-06 2004-08-12 International Business Machines Corporation Patterned based query optimization

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02171858A (en) * 1988-12-26 1990-07-03 Hitachi Ltd Processing time predicting system for relational data base system
JPH03108036A (en) * 1989-09-20 1991-05-08 Fujitsu Ltd Performance estimating method for data base management system
US5412806A (en) * 1992-08-20 1995-05-02 Hewlett-Packard Company Calibration of logical cost formulae for queries in a heterogeneous DBMS using synthetic database
JPH10283371A (en) * 1997-04-04 1998-10-23 Nec Corp Data base device
US6023695A (en) * 1997-10-31 2000-02-08 Oracle Corporation Summary table management in a computer system
US6023696A (en) * 1997-10-31 2000-02-08 Oracle Corporation Summary table query routing
US6938035B2 (en) * 2001-10-03 2005-08-30 International Business Machines Corporation Reduce database monitor workload by employing predictive query threshold
JP4223228B2 (en) * 2002-04-26 2009-02-12 三菱電機株式会社 Database search apparatus and search method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619692A (en) * 1995-02-17 1997-04-08 International Business Machines Corporation Semantic optimization of query order requirements using order detection by normalization in a query compiler system
US6026391A (en) * 1997-10-31 2000-02-15 Oracle Corporation Systems and methods for estimating query response times in a computer system
US6466931B1 (en) * 1999-07-30 2002-10-15 International Business Machines Corporation Method and system for transparently caching and reusing query execution plans efficiently
US20030172059A1 (en) * 2002-03-06 2003-09-11 Sybase, Inc. Database system providing methodology for eager and opportunistic property enforcement
US20040158551A1 (en) * 2003-02-06 2004-08-12 International Business Machines Corporation Patterned based query optimization

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008074528A1 (en) * 2006-12-19 2008-06-26 International Business Machines Corporation Method and system for reducing difference in the time of retrieval of data retrieved from different sources
CN107885865A (en) * 2017-11-22 2018-04-06 星环信息科技(上海)有限公司 A kind of cost optimization device and the method and its equipment of cost estimation
CN107885865B (en) * 2017-11-22 2019-12-10 星环信息科技(上海)有限公司 Cost optimizer and cost estimation method and equipment
US11023466B2 (en) 2017-11-22 2021-06-01 Transwarp Technology (Shanghai) Co., Ltd. Cost-based optimizer, and cost estimation method and device thereof
WO2019199466A1 (en) * 2018-04-13 2019-10-17 Microsoft Technology Licensing, Llc Computation reuse in analytics job service
US11068482B2 (en) 2018-04-13 2021-07-20 Microsoft Technology Licensing, Llc Computation reuse in analytics job service

Also Published As

Publication number Publication date
AU2005322096A1 (en) 2006-07-06
US20060155697A1 (en) 2006-07-13
CA2591206A1 (en) 2006-07-06
US7596560B2 (en) 2009-09-29
EP1828939A1 (en) 2007-09-05
AU2005322096B2 (en) 2010-08-12
JP2008525897A (en) 2008-07-17

Similar Documents

Publication Publication Date Title
AU2005322096B2 (en) System and method for adaptive query identification and acceleration
US11238039B2 (en) Materializing internal computations in-memory to improve query performance
US10204135B2 (en) Materializing expressions within in-memory virtual column units to accelerate analytic queries
US10387411B2 (en) Determining a density of a key value referenced in a database query over a range of rows
Singh et al. Probabilistic data structures for big data analytics: A comprehensive review
CN110874488A (en) Stream data frequency counting method, device and system based on mixed differential privacy and storage medium
JP2015099586A (en) System, apparatus, program and method for data aggregation
EP2160677A2 (en) System and method for measuring the quality of document sets
US7895171B2 (en) Compressibility estimation of non-unique indexes in a database management system
US7149735B2 (en) String predicate selectivity estimation
KR20060050800A (en) Analyzing operational and other data from search system or the like
JP3798719B2 (en) Apparatus and method for determining database clustering factor using block level sampling
JP2008225575A (en) Computer load estimation system and method
US20070027843A1 (en) Separating uploads into aggregate and raw data storage
CN112541074A (en) Log analysis method, device, server and storage medium
Ding et al. Scsl: Optimizing matching algorithms to improve real-time for content-based pub/sub systems
Kazi et al. Web object prefetching: Approaches and a new algorithm
JP2006323575A (en) Document retrieval system, document retrieval method, document retrieval program and recording medium
CN111771195A (en) Stream processing apparatus and data stream processing method
US8140520B2 (en) Embedding densities in a data structure
US20230409573A1 (en) Adaptive data prefetch
Temgire et al. Review on web prefetching techniques
Hu et al. MCF: Towards Window-Based Multiple Cuckoo Filter in Stream Computing
Lang et al. Accelerating high-dimensional nearest neighbor queries
CN115145949A (en) Database cache query method, device, equipment and storage medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2005322096

Country of ref document: AU

ENP Entry into the national phase

Ref document number: 2591206

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 2007548569

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2005855527

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2005322096

Country of ref document: AU

Date of ref document: 20051222

Kind code of ref document: A