Methods and apparatus implementing a technique for incrementally maintaining pre-computed aggregate views. In general, the technique includes: receiving a pre-computed aggregate view derived from one or more base tables. The pre-computed aggregate view including a pre-computed aggregate table and a view definition. The view definition including aggregation functions that can be any combination of sum, sum distinct, count(*), count distinct, min, and max. The view definition further including expressions that may be nullable. The technique includes receiving changes to the base table, the changes being non-minimal. The technique includes analyzing the view definition, including the type of aggregation functions and the nullability and data type of columns and expressions in the view definition, to reduce or eliminate the use of information in base tables in order to define the incremental modifications to the pre-computed aggregate table.
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims benefit of U.S. Provisional Application No. 60/221,599, filed Jul. 28, 2000, which is incorporated herein by reference in its entirety.
A method and system for efficiently identifying materialized view candidates for queries filters materialized views using certain criteria, using the materialized view signatures. This filtering rejects some of the unqualified materialized views prior to the performance of the query rewrite matching algorithm, resulting in a group of materialized view candidates. The query rewrite matching algorithm is then performed on the materialized view candidates. By first filtering the materialized views based on their signatures, the number of materialized views on which the query rewrite matching algorithm is performed is significantly reduced, improving performance.
The present invention provides the ability to alternatively update or insert a row into a table. This functionality is accomplished by merging a source table with a destination table such that the rows in the combined table are classified as an update row or an insert row. An identifier is inserted into each row to indicate its class. Examination of the identifier allows the row to be correctly inserted into the destination table or correctly updated in the destination table.
A method for synchronizing data on a first device with data at a second device, includes: determining a pre-image of the data on the first device according to a filter after a previous synchronization with the data at the second device; determining a current image of the data at the second device according to the filter; determining a delta of the current image, where the delta comprises data that exists in the current image and has changed since the previous synchronization; instructing the first device to delete data that exists in the pre-image but not in the current image; and instructing the first device to UPSERT a union of the data that exists in the delta and the data that exists in the current image but not the pre-image. This is efficient in time and bandwidth resources while also providing consistent data integrity.