Autonomic refresh of a materialized query table in a computer database
View Patent ↗A method autonomically refreshes a materialized query table (MQT) in a computer database to improve database performance and utility. In preferred embodiments, the query optimizer autonomically initiates a refresh of MQT depending on an estimated time for the query to access the base tables. In other preferred embodiments, the query optimizer estimates the time for the query to access the base tables and compares it to the estimated time to refresh the MQT to determine whether to refresh the MQT and run the query over the MQT rather than the base tables.
1. An apparatus comprising:
at least one processor;
a memory coupled to the at least one processor;
a database residing in the memory having data;
a query optimizer residing in the memory that parses a query to identify a base table of the database with a materialized query table (MQT) in deferred maintenance; and
wherein the query optimizer autonomically determines whether to update the MQT or execute the query over the base table by estimating a time to execute the query over the base table corresponding to the MQT, estimating a time to update the MQT, comparing the estimated time to update the MQT and the estimated time to execute the query over the base table; and
wherein the query optimizer updates the MQT where the estimated time to update the MQT is less than the time to execute the query over the base table; and executes the query over the updated MQT.
2. The apparatus of claim 1 wherein the query optimizer considers a time of trigger events to estimate the time to refresh the MQT.
3. The apparatus of claim 1 wherein the query optimizer considers results stored in a staging table to estimate the time to refresh the MQT.
4. A program product comprising:
a query optimizer that parses a query to identify a base table with a materialized query table (MQT), wherein the query optimizer autonomically determines whether to update the MQT or execute the query over the base table by estimating a time to execute the query over the base table corresponding to the MQT, estimating a time to update the MQT, comparing the estimated time to update the MQT and the estimated time to execute the query over the base table, wherein the query optimizer updates the MQT where the estimated time to update the MQT is less than the time to execute the query; and executes the query over the updated MQT; and
non-transitory computer-recordable media bearing the query optimizer.
5. The program product of claim 4 wherein the query optimizer considers a time of trigger events to estimate the time to refresh the MQT.
6. The program product of claim 4 wherein the query optimizer considers results stored in a staging table to estimate the time to refresh the MQT.
7. An apparatus comprising:
at least one processor;
a memory coupled to the at least one processor;
a database residing in the memory having data;
a query optimizer residing in the memory that parses a query to identify a base table of the database with a materialized query table (MQT), meaning the refresh of the MQT has been deferred;
wherein the query optimizer autonomically determines whether to update the MQT or execute the query over the base table by estimating a time to execute the query over the base table corresponding to the MQT, estimating a time to update the MQT, comparing the estimated time to update the MQT and the estimated time to execute the query over the base table;
wherein the query optimizer updates the MQT since the estimated time to update the MQT is less than the time to execute the query over the base table; and executes the query over the updated MQT;
wherein the query optimizer considers a time of trigger events to estimate the time to refresh the MQT; and
wherein the query optimizer considers results stored in a staging table to estimate the time to refresh the MQT.