Accessing data from asynchronously maintained index
First Claim
1. A method comprising:
- determining a plurality of values, wherein each value of the plurality of values represents a logical point in time at which a database reflects changes made by committed transactions;
maintaining, on a volatile or non-volatile computer-readable storage medium, a particular value of the plurality of values that represents a particular logical point in time at which an index was synchronized, by one or more processors, with an indexed table indexed by the index;
receiving a query after the particular logical point in time; and
using the particular value to compute results of the query based on a state of the index and the indexed table as of the particular logical point in time represented by the particular value;
wherein the method is performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for computing queries in a way that is consistent with an index and the underlying base table is provided. A query is computed such that it is consistent with the state of an index and base table as of the last point at which the index and table were synchronized. For example, if an index is maintained asynchronously then it is not necessarily consistent with its base table when a query is to be run against the table and the index. Therefore, the query is computed such that it will be consistent with the last point at which the index and the table were synchronized. In one embodiment, a System Change Number (SCN) of the last successful synchronization operation is used to perform a flashback query on the table.
103 Citations
22 Claims
-
1. A method comprising:
-
determining a plurality of values, wherein each value of the plurality of values represents a logical point in time at which a database reflects changes made by committed transactions; maintaining, on a volatile or non-volatile computer-readable storage medium, a particular value of the plurality of values that represents a particular logical point in time at which an index was synchronized, by one or more processors, with an indexed table indexed by the index; receiving a query after the particular logical point in time; and using the particular value to compute results of the query based on a state of the index and the indexed table as of the particular logical point in time represented by the particular value; wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method comprising:
-
determining a plurality of values, wherein each value of the plurality of values represents a logical point in time at which a database reflects changes made by committed transactions; maintaining, on a volatile or non-volatile computer-readable storage medium, a particular value of the plurality of values that represents a particular logical point in time at which an index was synchronized, by one or more processors, with an indexed table indexed by the index; after the particular logical point in time, receiving a query to be run against the indexed table; and re-writing the query based on the particular logical point in time represented by the particular value; wherein the method is performed by one or more computing devices. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. A non-transitory computer-readable storage medium that stores one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform:
-
determining a plurality of values, wherein each value of the plurality of values represents a logical point in time at which a database reflects changes made by committed transactions; maintaining a particular value of the plurality of values that represents a particular logical point in time at which an index was synchronized, by one or more processors, with an indexed table indexed by the index; receiving a query after the particular logical point in time; and using the particular value to compute results of the query based on a state of the index and the indexed table as of the particular logical point in time represented by the particular value. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A non-transitory computer-readable storage medium that stores one or more sequences of instructions which, when executed by one or more processors, causes the one of more processors to perform:
-
determining a plurality of values, wherein each value of the plurality of values represents a logical point in time at which a database reflects changes made by committed transactions; maintaining a particular value of the plurality of values that represents a particular logical point in time at which an index was synchronized, by one or more processors, with an indexed table indexed by the index; after the particular logical point in time, receiving a query to be run against the indexed table; and re-writing the query based on the particular logical point in time represented by the particular value. - View Dependent Claims (18, 19, 20, 21, 22)
-
Specification