Method and mechanism of improving performance of database query language statements using data duplication information
AssigneeOracle International Corporation
InventorsDmitry M. Potapov, Cetin Ozbutun
Life of this patent
Estimating the term…
Abstract
A method and mechanism of improving performance of database query language statements using data duplication information are described. Information describing data duplication within a data block is maintained. In one embodiment, the data duplication information is used to reduce number of predicate evaluations on data in the data block when a database query language statement is received against the data in the data block. In another embodiment, the data duplication information is used to reduce amount of data accessed by a database query language statement.
Claims63
A computer implemented method of improving performance of database query language statements for a database which comprises a data block, wherein the data block comprises a duplicated data value and a non-duplicated data value, the method comprising:
- identifying the duplicated data value in the data block and storing the duplicated data value in a first entry of a symbol structure for data duplication information;
- identifying the non-duplicated data value in the data block and not storing the non-duplicated data value in the symbol structure;
- calculating a number of occurrences of the duplicated data value in the data block;
- storing the number of occurrences of the duplicated data value in a second entry of the symbol structure for the data duplication information, wherein the identification of the duplicated data value and the calculation of the number of occurrences of the duplicated data value is determined before storing the duplicated data value in the symbol structure;
- receiving a database query language statement against data in the data block, the database query language statement comprising at least one predicate;
- and
- performing a number of predicate evaluations on data in the data block accessed by the database query language statement using the data duplication information stored in the symbol structure.
A computer implemented method of improving performance of database query language statements for a database which comprises a data block, wherein the data block comprises a duplicated data value and a non-duplicated data value, the method comprising:
- identifying the duplicated data value in the data block and storing the duplicated data value in a first entry of a symbol structure for data duplication information;
- identifying the non-duplicated data value in the data block and not storing the non-duplicated data value in the symbol structure;
- maintaining information describing the data duplication information within a data block;
- receiving a database query language statement against data in the data block, the database query language statement comprising at least one predicate;
- storing a number of occurrences of the duplicated data value in a second entry of the symbol structure, wherein the number of occurrences of the duplicated data value is determined before storing the duplicated data value in the symbol structure;
- and
- performing a number of predicate evaluations on the data in the data block using the data duplication information in the symbol structure.
A computer program product that includes a computer readable storage medium, the computer readable medium having stored thereon a sequence of instructions which, when executed by a processor, causes the processor to execute a process for improving performance of database query language statements for a database which comprises a data block wherein the data block comprises a duplicated data value and a non-duplicated data value, the process comprising:
- identifying the duplicated data value in the data block and storing the duplicated data value in a first entry of a symbol structure for data duplication information;
- identifying the non-duplicated data value in the data block and not storing the non-duplicated data value in the symbol structure;
- maintaining information describing data duplication information within a data block;
- receiving a database query language statement against data in the data block, the database query language statement comprising at least one predicate;
- storing a number of occurrences of the duplicated data value in a second entry of the symbol structure, wherein the number of occurrences of the duplicated data value is determined before storing the duplicated data value in the symbol structure;
- and
- performing a number of predicate evaluations on data in the data block using the data duplication information in the symbol structure.
A system for improving performance of database query language statements for a database which comprises a data block, wherein the data block comprises a duplicated data value and a non-duplicated data value, the system comprising:
- means for identifying the duplicated data value in the data block and storing the duplicated data value in a first entry of a symbol structure as data duplication information;
- means for identifying the non-duplicated data value in the data block and not storing the non-duplicated data value in the symbol structure;
- means for maintaining information describing data duplication within a data block;
- means for receiving a database query language statement against data in the data block, the database query language statement comprising at least one predicate;
- means for storing a number of occurrences of the duplicated data value in a second entry of the symbol structure, wherein the number of occurrences of the duplicated data value is determined before the means for storing stores the duplicated data value in the symbol structure;
- and
- means for performing a number of predicate evaluations on data in the data block using the data duplication information in the symbol structure.
A computer program product that includes a computer-readable storage medium having a sequence of instructions which, when executed by a processor, causes the processor to execute a process for a database which comprises a data block, wherein the data block comprises a duplicated data value and a non-duplicated data value, said process comprising:
- identifying the duplicated data value in the data block and storing the duplicated data value in a first entry of a symbol structure as data duplication information;
- identifying the non-duplicated data value in the data block and not storing the non-duplicated data value in the symbol structure;
- calculating the number of occurrences of the duplicated data value;
- storing the first number of occurrences of the duplicated data value in a second entry of the symbol structure, wherein the means for identifying identifies the duplicated data value and the means for calculating calculates the number of occurrences of the duplicated data value before the means for storing stores each of the duplicated data value in the symbol structure;
- receiving a database query language statement against data in the data block, the database query language statement comprising at least one predicate;
- performing a number of predicate evaluations on data in the data block accessed by the database query language statement using the data duplication information in the symbol structure.
A system for improving performance of database query language statements for a database which comprises a data block, wherein the data block comprises a duplicated data value and a non-duplicated data value, the method comprising:
- means for identifying the duplicated data value in the data block and storing the duplicated data value in a first entry of a symbol structure for data duplication information;
- means for identifying the non-duplicated data value in the data block and not storing the non-duplicated data value in the symbol structure;
- means for calculating a number of occurrences of the duplicated data value;
- means for storing the number of occurrences of the duplicated data value in a second entry of the symbol structure, wherein the means for identifying identifies the duplicated data value and the means for calculating calculates the number of occurrences of the duplicated data value before storing the duplicated data value in the symbol structure;
- means for receiving a database query language statement against data in the data block, the database query language statement comprising at least one predicate;
- and
- means for performing a number of predicate evaluations on data in the data block accessed by the database query language statement using the data duplication information in the symbol structure.
Dependencies are inferred from the claim text.