Efficiency in processing queries directed to static data sets
First Claim
1. A computer readable storage medium carrying one or more sequences of instructions causing a server to process queries directed to a static data set already stored in the form of a plurality of tables in a data warehouse, wherein each table contains a corresponding set of columns and a corresponding set of rows, wherein each data item is stored in one row of the table with each row of the table being uniquely identified by a corresponding row identifier not formed based on said plurality of data items, wherein execution of said one or more sequences of instructions by one or more processors contained in said server causes said server to perform the actions of:
- receiving a plurality of queries directed to said static data set stored in said data warehouse, wherein each of said plurality of queries contains a set of conditions, wherein processing of said plurality of queries requires retrieval of at least some portions of said static data set matching said set of conditions from said data warehouse;
identifying a plurality of conditions commonly occurring in said received plurality of queries, wherein each of said plurality of conditions occurs more number of times in said plurality of queries than conditions not included in said plurality of conditions;
determining which of said plurality of conditions match which of said data items in said static data set by retrieving and inspecting said static data set stored in the form of said plurality of tables in said data warehouse,wherein a match for a condition is determined to be present when a data item retrieved from said data warehouse has a first value for the same column as the condition, and applying said comparison operation on said first value and said comparison value produces a true result;
maintaining a match data external to said static data set, said match data indicating which of said plurality of conditions match which data items in said static data set according to said determining, wherein said match data contains the row identifiers uniquely identifying the matching data items;
receiving a query containing a first condition included in said plurality of conditions;
examining said match data maintained external to said static data set to determine a first set of row identifiers maintained associated with said first condition in said match data, wherein said static data set is not examined to determine said first set of row identifiers;
retrieving from said data warehouse only a first set of data items uniquely identified by said first set of row identifiers based on said examining, wherein only said first set of data items matching said first condition received in said query are retrieved without having to inspect again said static data set stored in said data warehouse based on said match data maintained external to said static data set, wherein said examining is performed in response to receiving said query; and
generating a response to said query, said response containing said first set of data items retrieved from said data warehouse after receiving said query,wherein said identifying, said determining and said maintaining are performed before said query is received such that said response can be generated quickly after receiving said query.
0 Assignments
0 Petitions
Accused Products
Abstract
Data is maintained indicating which conditions match which data items (e.g., rows) of a data set (e.g., table(s) in a database). When a query is later received, the maintained data is quickly examined to determine the matching data items, thereby enhancing the throughput performance in processing queries directed to the data set.
-
Citations
14 Claims
-
1. A computer readable storage medium carrying one or more sequences of instructions causing a server to process queries directed to a static data set already stored in the form of a plurality of tables in a data warehouse, wherein each table contains a corresponding set of columns and a corresponding set of rows, wherein each data item is stored in one row of the table with each row of the table being uniquely identified by a corresponding row identifier not formed based on said plurality of data items, wherein execution of said one or more sequences of instructions by one or more processors contained in said server causes said server to perform the actions of:
-
receiving a plurality of queries directed to said static data set stored in said data warehouse, wherein each of said plurality of queries contains a set of conditions, wherein processing of said plurality of queries requires retrieval of at least some portions of said static data set matching said set of conditions from said data warehouse; identifying a plurality of conditions commonly occurring in said received plurality of queries, wherein each of said plurality of conditions occurs more number of times in said plurality of queries than conditions not included in said plurality of conditions; determining which of said plurality of conditions match which of said data items in said static data set by retrieving and inspecting said static data set stored in the form of said plurality of tables in said data warehouse, wherein a match for a condition is determined to be present when a data item retrieved from said data warehouse has a first value for the same column as the condition, and applying said comparison operation on said first value and said comparison value produces a true result; maintaining a match data external to said static data set, said match data indicating which of said plurality of conditions match which data items in said static data set according to said determining, wherein said match data contains the row identifiers uniquely identifying the matching data items; receiving a query containing a first condition included in said plurality of conditions; examining said match data maintained external to said static data set to determine a first set of row identifiers maintained associated with said first condition in said match data, wherein said static data set is not examined to determine said first set of row identifiers; retrieving from said data warehouse only a first set of data items uniquely identified by said first set of row identifiers based on said examining, wherein only said first set of data items matching said first condition received in said query are retrieved without having to inspect again said static data set stored in said data warehouse based on said match data maintained external to said static data set, wherein said examining is performed in response to receiving said query; and generating a response to said query, said response containing said first set of data items retrieved from said data warehouse after receiving said query, wherein said identifying, said determining and said maintaining are performed before said query is received such that said response can be generated quickly after receiving said query. - View Dependent Claims (2, 3, 4)
-
-
5. A method of processing queries directed to a static data set stored in the form of a plurality of tables in on a storage server, wherein each table contains a corresponding set of columns and a corresponding set of rows, wherein each data item is stored in one row of the table, said static data set containing a plurality of data items which are unlikely to change, wherein each data item is uniquely identified by a corresponding one of a plurality of row identifiers not formed based on said plurality of data items, said method comprising:
-
receiving a plurality of queries directed to said static data set stored in said storage server, wherein each of said plurality of queries contains a set of conditions, wherein processing of said plurality of queries requires retrieval of at least some portions of said static data set matching said set of conditions from said storage server; identifying a plurality of conditions commonly occurring in said received plurality of queries, wherein each of said plurality of conditions occurs more number of times in said plurality of queries than conditions not included in said plurality of conditions; determining which of said plurality of conditions match which of said data items in said static data set by examining retrieving and inspecting said static data set stored in the form of said plurality of tables in said storage server, wherein a match for a condition is determined to be present when a data item retrieved from said storage server has a first value for the same column as the condition, and applying said comparison operation on said first value and said comparison value produces a true result; maintaining a match data external to said static data set to indicate which of said plurality of conditions match which of said plurality of data items in said static data set according to said determining, wherein said match data contains the row identifiers uniquely identifying the matching data items; receiving a query containing a first condition included in said plurality of conditions, wherein said query is received after said maintaining; examining said match data maintained external to said data set to determine a first set of individual row identifiers matching said first condition received in said query, without having to inspect again said static data set stored in said storage server, wherein said first set of row identifiers are contained in said plurality of row identifiers; retrieving from said storage server only a first set of data items uniquely identified by said first set of row identifiers based on said examining, wherein only said first set of data items matching said first condition received in said query are retrieved without having to inspect again said static data set stored in said storage server based on said match data maintained external to said static data set, wherein said examining is performed in response to receiving said query; and generating a response to said query, said response containing said first set of data items identified by said first set of row identifiers and retrieved from said storage server after receiving said query. - View Dependent Claims (6, 7, 8, 9)
-
-
10. A computing system comprising:
-
a database storage to store a data set containing a plurality of data items; a database client to send a plurality of transaction requests to be performed on said data set; a database server to receive each of said plurality of transaction requests and to accordingly alter said data set stored in said data storage; a data warehouse to store said data set in the form of a static data set in a plurality of tables after said data set is determined to not require further alterations, wherein each table contains a corresponding set of columns and a corresponding set of rows, wherein each data item is stored in one row of the table, with each row of the table being uniquely identified by a corresponding row identifier; a warehouse client to send a plurality of queries to be performed on said static data set; and a warehouse server being operable to; receive a subset of said plurality of queries containing a corresponding set of conditions, wherein processing of said subset of said plurality of queries requires retrieval of at least some portions of said static data set matching said set of conditions from said data warehouse; identify a plurality of conditions commonly occurring in said received subset of said plurality of queries, wherein each of said plurality of conditions occurs more number of times in said subset of plurality of queries than conditions not included in said plurality of conditions; determine which of said plurality of conditions match which of said plurality of data items in said static data set by examining said static data set in said data warehouse, wherein a match for a condition is determined to be present when a data item retrieved from said data warehouse has a first value for the same column as the condition, and applying said comparison operation on said first value and said comparison value produces a true result; maintain a match data external to said static data set, said match data indicating which of said plurality of conditions match which of said plurality of data items in said static data set according to said determining, wherein said match data contains the row identifiers uniquely identifying the matching data items; receive a query contained in said plurality of queries, wherein said query contains a first condition included in said plurality of conditions; examine said match data to determine, without having to inspect again said static data stored in said data warehouse, a first set of data items contained in said static data set and matching said first condition; retrieve from said data warehouse only said first set of data items in said static data set from said data warehouse based on said examine, wherein only said first set of data items matching said first condition received in said query are retrieved without having to inspect again said static data set stored in said data warehouse based on said match data maintained external to said static data set, wherein said examining is performed in response to receiving said query; and generate a response to said query, said response containing said first set of data items retrieved from said data warehouse after receiving said query. - View Dependent Claims (11, 12, 13, 14)
-
Specification