System And Method For Processing Database Queries
AssigneeParAccel LLC
InventorsRichard L. Cole, Yijou Chen, William J. McKenna, Sergei Perfilov, Aman Sinha, Eugene Szedenits, JR.
Life of this patent
Estimating the term…
Abstract
A system and/or method are implemented to process queries to a database. In particular, the processing of queries to the database is enhanced by enhancing the determination of join orders of tables implicated in queries. Join orders between relatively large numbers of tables are determined by dividing the set of tables to be ordered into a plurality of subsets of tables, and ordering the individual subsets of tables.
Claims20
A system configured to process queries to a database, the system comprising:
- a database server that provides database services to one or more client processing platforms, the database server comprising one or more processors configured to execute one or more computer program modules, the computer program modules comprising:
- a query reception module configured to receive a database query from at least one of the one or more client processing platforms, wherein the query implicates a set of tables associated with the database that must be joined to satisfy the query;
- a model module configured to assemble a classification model that represents relationships between the tables in the set of tables that must be joined to satisfy the query;
- a subset module configured to divide the set of tables into a plurality of subsets of tables based on the classification model, with each subset comprising one or more of the tables in the set of tables;
- an intermediate join module configured to generate subset join orders that separately order the tables within the individual subsets of tables;
- and
- a final join module configured to generate a final join order that orders the subset join orders, thereby ordering all of the tables in the set, wherein generating the final join order comprises comparing an estimated cost for two or more possible final join orders.
A method of processing queries to a database, the method comprising:
- receiving, from a client processing platform, a database query at a database server, wherein the query implicates a set of tables associated with the database that must be joined to satisfy the query, and wherein the database server comprising one or more processors configured to execute one or more computer program modules;
- implementing one or more computer program modules executed on the database server to assemble a classification model that represents relationships between the tables in the set of tables that must be joined to satisfy the query;
- implementing one or more computer program modules executed on the database server to divide the set of tables into a plurality of subsets of tables based on the classification model, with each subset comprising one or more of the tables in the set of tables;
- implementing one or more computer program modules executed on the database server to generate subset join orders that separately order the tables within the individual subsets of tables;
- and
- implementing one or more computer program modules executed on the database server to generate a final join order that orders the subset join orders, thereby ordering all of the tables in the set, wherein generating the final join order comprises comparing an estimated cost for two or more possible final join orders.
A system configured to process queries to a database, the system comprising:
- a database server that provides database services to one or more client processing platforms, the database server comprising one or more processors configured to execute one or more computer program modules, the computer program modules comprising:
- a query reception module configured to receive a database query from at least one of the one or more client processing platforms, wherein the query implicates a set of tables associated with the database that must be joined to satisfy the query;
- a model module configured to assemble a classification model that represents relationships between the tables in the set of tables that must be joined to satisfy the query;
- a subset module configured to divide the set of tables into a plurality of subsets of tables based on the classification model, with each subset comprising one or more of the tables in the set of tables;
- an intermediate join module configured to generate subset join orders that separately order the tables within the individual subsets of tables, wherein the intermediate join module is further configured such that the subset join order generated for a given subset of tables is based on information related to tables in the set of tables that are not included in the given subset of tables;
- and
- a final join module configured to generate a final join order by ordering the subset join orders.
A method of processing queries to a database, the method comprising:
- receiving, from a client processing platform, a database query at a database server, wherein the query implicates a set of tables associated with the database that must be joined to satisfy the query, and wherein the database server comprising one or more processors configured to execute one or more computer program modules;
- implementing one or more computer program modules executed on the database server to assemble a classification model that represents relationships between the tables in the set of tables that must be joined to satisfy the query;
- implementing one or more computer program modules executed on the database server to divide the set of tables into a plurality of subsets of tables based on the classification model, with each subset comprising one or more of the tables in the set of tables;
- implementing one or more computer program modules executed on the database server to generate subset join orders that separately order the tables within the individual subsets of tables, wherein the generation of a subset join order for a given subset of tables is based on information related to tables in the set of tables that are not included in the given subset of tables;
- and
- implementing one or more computer program modules executed on the database server to generate a final join order by ordering the subset join orders.
Dependencies are inferred from the claim text.