Deferring and/or eliminating decompressing database data
AssigneeSybase, Inc.
InventorXiao Ming Zhou
Life of this patent
Estimating the term…
Abstract
Disclosed herein are system, method, and computer program product embodiments for deferring or eliminating a need to decompress database data. An embodiment operates by decompressing a column of a database. The column may be represented by a predicate of a query. A row of the database may be determined to satisfy the predicate based on decompressed information from the column. Decompression of an additional column of the row may be deferred during execution the query until the row is determined to satisfy the predicate. The additional column may satisfy the query.
Claims16
A method, comprising:
- executing a join operation between a first table and a second table, wherein a decompressed column of the first table is matched with a decompressed column of the second table, wherein the join operation produces a join table;
- decompressing, by at least one processor according to a query plan, a selected column of the join table, the selected column represented by a first predicate of a query;
- determining, by the at least one processor according to the query plan, that a row of the join table satisfies the first predicate based on the decompressed information from join table and the decompressed information from the selected column;
- determining that a second predicate of the query comprises an evaluation against data of the decompressed column and one or more compressed columns of the join table, wherein the decompressed column employs page-index compression and a first one of the compressed columns employ page-dictionary compression;
- and
- modifying, by the at least one processor, the query plan so as to evaluate the second predicate on the decompressed column of the row, defer decompressing the one or compressed columns of the row during execution of the query until the decompressed column of the row is determined to satisfy the second predicate, and eliminate decompression of one of the compressed columns of another row of the database, wherein the other row does not satisfy the predicate.
A system, comprising:
- a memory;
- and
- at least one processor coupled to the memory and configured to:
- executing a join operation between a first table and a second table, wherein a decompressed column of the first table is matched with a decompressed column of the second table, wherein the join operation produces a join table
- decompress a selected column of the join table, the selected column represented by a first predicate of a query;
- determine, according to the query plan, that a row of the join table satisfies the first predicate based on the decompressed information from join table and the decompressed information from the selected column;
- determine that a second predicate of the query comprises an evaluation against data of the decompressed column and one or more compressed columns of the join table, wherein the decompressed column employs page-index compression and a first one of the compressed columns employ page-dictionary compression;
- and
- modify the query plan so as to evaluate the second predicate on the decompressed column of the row, defer decompressing the one or compressed columns of the row during execution of the query until the decompressed column of the row is determined to satisfy the second predicate, and eliminate decompression of one of the compressed columns of another row of the database, wherein the other row does not satisfy the predicate.
A non-transitory computer-readable device having instructions stored thereon that, when executed by at least one computing device, causes the at least one computing device to perform operations comprising:
- executing a join operation between a first table and a second table, wherein a decompressed column of the first table is matched with a decompressed column of the second table, wherein the join operation produces a join table;
- 0034
- decompressing, by at least one processor according to a query plan, a selected column of the join table, the selected column represented by a first predicate of a query;
- determining, by the at least one processor according to the query plan, that a row of the join table satisfies the first predicate based on the decompressed information from join table and the decompressed information from the selected column;
- determining that a second predicate of the query comprises an evaluation against data of the decompressed column and one or more compressed columns of the join table, wherein the decompressed column employs page-index compression and a first one of the compressed columns employ page-dictionary compression;
- and
- modifying, by the at least one processor, the query plan so as to evaluate the second predicate on the decompressed column of the row, defer decompressing the one or compressed columns of the row during execution of the query until the decompressed column of the row is determined to satisfy the second predicate, and eliminate decompression of one of the compressed columns of another row of the database, wherein the other row does not satisfy the predicate.
Dependencies are inferred from the claim text.