摘要:
A fact table is set up without any dimension columns. The data in the table is ordered according to an order corresponding to the ordering of the dimensions. The table is divided into segments corresponding to contiguous portions of data. The portions of the table containing non-null values for the measures are placed into the segments. The size of the segments and the location segments may be determined according to the density of discontinuities in the data. An indexed organized table is used to determine the beginning and end of each segment of the table, the locations of the discontinuities in the data, and to facilitate accessing the measures of the table.
摘要:
A method and mechanism for dependency tracking in a database system is disclosed. According to an embodiment, dependency tracking for a referentially constrained object is performed by tracking change or commit time values for key ranges as well as change or commit time values at various granularities in the database. The combination of various sets of change or commit values are employed to determine a single value representing all prior transactions or changes that an operation is dependent upon.
摘要:
Concurrency control for maintenance of materialized view defined as a join on a plurality of base tables is provided by obtaining different types of locks. The base table being updated is locked with one type of lock, and the other base tables of the materialized view is locked with a different type of lock. These lock types are defined so that another process attempting to update another base table simultaneously is blocked until the update on the base table is committed. On the other hand, another process attempting to update the same base table is allowed to perform that update concurrently.
摘要:
A method and apparatus for removing changes made by a particular transaction is provided. According to one aspect, two or more sets of changes that were made by a particular transaction that can be removed in parallel are identified. A corresponding recovery process is assigned to each of the two or more sets of changes. Using the corresponding recovery process, the changes identified in each of the two or more sets of changes are undone in parallel.
摘要:
In a database system having a plurality of concurrently executing session processes, the method commences by establishing a master list of sequences, the master list comprising a plurality of sequence objects which in turn define a sequence of values used for numbering and other identification within the database system. To reduce sequence cache latch access contention, multiple tiers of latches are provided. Methods of the system provide a first tier having a first tier “global” latch to serialize access to the master list. A second tier of latches is provided, the second tier having multiple second tier latches to serialize access to corresponding allocated sequences of values such that at any point in time, only one of the concurrently executing session processes is granted access to the allocated sequence.
摘要:
A highly flexible and extensible structure is provided for physically storing tabular data. The structure, referred to as a compression unit, may be used to store tabular data that logically resides in any type of table-like structure. According to one embodiment, compression units are recursive. Thus, a compression unit may have a “parent” compression unit to which it belongs, and may have one or more “child” compression units that belong to it. In one embodiment, compression units include metadata that indicates how the tabular data is stored within them. The metadata for a compression unit may indicate, for example, whether the data is stored in row-major or column major-format, the order of the columns within the compression unit (which may differ from the logical order of the columns dictated by the definition of their logical container), a compression technique for the compression unit, the child compression units (if any), etc.
摘要:
A method of processing data from a file includes obtaining a first portion of the file, creating a first compression unit by compressing at least the first portion of the file, obtaining a second portion of the file, creating a second compression unit by compressing at least the second portion of the file, and storing the first and second compression unit such that each of the first and the second compression units can be individually accessed. A method of processing data from a file includes receiving a request to access a portion of the file, determining one or more sub-units that include compressed data associated with the portion of the file, de-compressing the compressed data in the one or more sub-units to obtain de-compressed data, and transmitting the de-compressed data in response to the request.
摘要:
A computer is programmed to compress data of a database in response to database modification language (DML) statements generated by on-line transaction processing (OLTP) systems. In several embodiments, data that is initially added to a database block is left uncompressed until a predetermined condition is satisfied, which happens infrequently (relative to OLTP transactions on the block). When satisfied, the computer automatically compresses all uncompressed data in the block, which increases the amount of unused space in the block. New data is thereafter added uncompressed to the partially compressed block, until satisfaction of a predetermined condition whereby the partially compressed block is again compressed, i.e. re-compressed. Adding of new data to a partially compressed block and its compression are repeated unless another predetermined condition is met, in response to which the block is not further re-compressed, thereby to recognize a limit on the benefit from compression.
摘要:
Techniques are provided for processing a CREATE INDEX statement that avoids one or more locks on the underlying table. The processing of such a statement may be divided into a build phase and a cooperation phase. During the build phase, a journal table is created and published. A snapshot of the table is obtained after the last DML transaction (that was pending at the time the journal table was published) commits. The index is built based on the state of the table as of the snapshot. Any changes to the table while the index is built are recorded in the journal table. During the cooperation phase, the index is partially published. A subsequent DML statement determines whether any changes in the journal table affect the same data as the subsequent DML statement. If so, then those changes are applied to the index followed by the subsequent DML statement.
摘要:
A highly flexible and extensible structure is provided for physically storing tabular data. The structure, referred to as a compression unit, may be used to physically store tabular data that logically resides in any type of table-like structure. Techniques are employed to avoid changing tabular data within existing compression units. Deleting tabular data within compression units is avoided by merely tracking deletion requests, without actually deleting the data. Inserting new tabular data into existing compression units is avoided by storing the new data external to the compression units. If the number of deletions exceeds a threshold, and/or the number of new inserts exceeds a threshold, new compression units may be generated. When new compression units are generated, the previously-existing compression units may be discarded to reclaim storage, or retained to allow reconstruction of prior states of the tabular data.