摘要:
A method to process a query for information stored in a relational database using indexes which have different granularity and/or composition is provided. The method involves selecting indexes of various granularity and/or composition based on the query, ordering and combining them (if necessary) in order to subset the data from a relational table to be optimally scanned. The ability to combine indexes is very useful to answer ad hoc queries for which no specific index exists. This requirement may be met by using index ANDing and index ORing techniques.
摘要:
Multidimensional clustered tables are provided for efficient processing and management in a relational database management system. A multidimensional clustered table is one whose data is simultaneously clustered along one or more independent dimensions, or clustering keys, and physically organized into blocks or pages on disk. When such a table is created, one can specify one or more keys as dimensions along which to cluster the table's data. Each of the dimensions can consist of one or more columns. Further provided are efficient query processing and maintenance techniques for use in conjunction with multidimensional clustered tables.
摘要:
An information retrieval system and method are provided for minimizing the number of blocks searched in a cell before recording a new record in the table and determining which block can be assigned if a table has space available to store a new record in the case an additional block should be associated with a cell. Dimensions for a table are identified, and at least one block in the table is associated with a dimension value for each dimension, where each block comprises contiguous storage pages. The block can be further associated with a cell; this associated cell has a unique combination of dimension values comprising an dimension value for each of the dimensions. A unique associated bit list for each dimension value for each dimension has a unique corresponding list entry for each block associated with that dimension value, and a unique associated bit list for each cell has a unique corresponding list entry for each block associated with that cell.
摘要:
A multi-level locking hierarchy for a relational database includes a locking level applied to a multi-dimensionally clustering table, a locking level applied to blocks within the table, and a locking level applied to rows within the blocks. The hierarchy leverages the multi-dimensional clustering of the table data for efficiency and to reduce lock overhead. Data is normally locked in order of coarser to finer granularity to limit deadlock. When data of finer granularity is locked, data of coarser granularity containing the finer granularity data is also locked. Block lock durations may be employed to ensure that a block remains locked if any contained row remains locked. Block level lock attributes may facilitate detection of at least one of a concurrent scan and a row deletion within a block. Detection of the emptying of a block during a scan of the block may bar scan completion in that block.
摘要:
A method of searching a table in a database management system for free space for inserting a new record into the table. The table resides in a storage media, and includes a series of pages capable of storing a plurality of records. The table has a clustering index defined in a column of the table. The new record has a new record attribute for storing in the column of the table when the new record is stored in the table. The method comprises searching for a target page in the series of pages, the target page being selected to maintain clustering when the new record is inserted thereon. Once the target page has been located, it is searched for sufficient free space to accommodate the new record. If sufficient free space is found on the target page, then the new record is inserted on the target page. If sufficient free space is not found on the target page, then a target neighborhood of pages in the series of pages is searched for sufficient free space to accommodate the new record. The target neighborhood of pages surrounds the target page. If sufficient free space is found on a page in a target neighborhood of pages, then the new record is inserted on to this page in the target neighborhood of pages. If sufficient free space is not found in the target neighborhood of pages, then the method further comprises searching for sufficient free space to accommodate the new record outside the target neighborhood of pages. If sufficient free space is found outside the target neighborhood of pages, then the new record is inserted on a non-neighboring page outside the target neighborhood of pages. If sufficient free space is not found outside the target neighborhood of pages, then a new page having the new record is appended to the end of table.