-
公开(公告)号:US11294816B2
公开(公告)日:2022-04-05
申请号:US15397714
申请日:2017-01-03
Applicant: Oracle International Corporation
Inventor: Shasank K. Chavan , Dina Thomas , Ajit Mylavarapu , Prashant Gaharwar , Dennis Lui , Sheldon A. K. Lewis
IPC: G06F12/0875 , G06F16/2452 , G06F7/24
Abstract: Techniques are described herein for reducing the number of redundant evaluations that occur when an expression is evaluated against an encoded column vector by caching results of expression evaluations. When executing a query that includes an expression that references columns for which dictionary-encoded column vectors exist, the database server performs a cost-based analysis to determine which expressions (or sub-expressions) would benefit from caching the expression's evaluation result. For each such expression, the database server performs the necessary computations and caches the results for each of the possible distinct input values. When evaluating an expression for a row with a particular set of input codes, a look-up is performed based on the input code combination to retrieve the pre-computed results of that evaluation from the cache.
-
公开(公告)号:US10810208B2
公开(公告)日:2020-10-20
申请号:US15702431
申请日:2017-09-12
Applicant: Oracle International Corporation
Inventor: Shasank K. Chavan , Dennis Lui , Allison L Holloway , Sheldon A. K. Lewis
IPC: G06F16/2455 , G06F16/22 , G06F16/2458 , G06F16/2453 , G06F9/30 , G06F9/38
Abstract: Techniques related to efficient evaluation of queries with multiple predicate expressions are disclosed. A first predicate expression (PE) is evaluated against a plurality of rows in a first column vector (CV) to determine that a subset of rows does not satisfy the first PE. The subset comprises less than all of the plurality of rows. When a query specifies the first PE in conjunction with a second PE, a selectivity of the first PE is determined. If the selectivity meets a threshold, the second PE is evaluated against all of the plurality of rows in a second CV. If the selectivity does not meet the threshold, the second PE is evaluated against only the subset of rows in the second CV. When a query specifies the first PE in disjunction with the second PE, the second PE may be evaluated against only the subset of rows in the second CV.
-
公开(公告)号:US10789252B2
公开(公告)日:2020-09-29
申请号:US15702526
申请日:2017-09-12
Applicant: Oracle International Corporation
Inventor: Shasank K. Chavan , Dennis Lui , Allison L Holloway , Sheldon A. K. Lewis
IPC: G06F16/2455 , G06F16/22 , G06F16/2458 , G06F16/2453 , G06F9/30 , G06F9/38
Abstract: Techniques related to efficient evaluation of aggregate functions are disclosed. Computing device(s) may perform a method for aggregating results of performing a multiplication on a first column and a second column of a database table. A first vector stores a subset of values of the first column. A second vector stores a corresponding subset of values of the second column. When it is determined that the first vector has a lower cardinality than the second vector, a third vector stores at least a first distinct value and a second distinct value of the first vector. A first set of one or more values of the second vector is determined, wherein each value of the first set of one or more values corresponds to the first distinct value in the first vector. A first multiplicand is generated based on performing a summation over the first set of one or more values.
-
公开(公告)号:US10853371B2
公开(公告)日:2020-12-01
申请号:US15702659
申请日:2017-09-12
Applicant: Oracle International Corporation
Inventor: Shasank K. Chavan , Dennis Lui , Allison L Holloway , Sheldon A. K. Lewis
IPC: G06F16/2455 , G06F16/22 , G06F16/2458 , G06F16/2453 , G06F9/30 , G06F9/38
Abstract: Techniques related to efficient evaluation of query expressions including grouping clauses are disclosed. Computing device(s) perform a method for aggregating a measure column vector (MCV) according to a plurality of grouping column vectors (GCVs). The MCV and each of the plurality of GCVs may be encoded. The method includes determining a plurality of actual grouping keys (AGKs) and generating a dense identifier (DI) mapping that maps the plurality of AGKs to a plurality of DIs. Each AGK occurs in the plurality of GCVs. Each DI corresponds to a respective workspace. Aggregating the MCV involves aggregating, in each workspace, one or more codes of the MCV that correspond to an AGK mapped to a DI corresponding to the workspace. For a first row of the MCV and the plurality of GCVs, aggregating the one or more codes includes generating a particular grouping key based on codes in the plurality of GCVs.
-
公开(公告)号:US10726016B2
公开(公告)日:2020-07-28
申请号:US15294460
申请日:2016-10-14
Applicant: Oracle International Corporation
Inventor: Shasank K. Chavan , Prashant Gaharwar , Ajit Mylavarapu , Dina Thomas , Dennis Lui , Sheldon A. K. Lewis , Roger D. Macnicol
IPC: G06F16/2455 , G06F16/22 , G06F16/33
Abstract: Techniques are described herein for sharing a dictionary across multiple in-memory compression units (IMCUs). After a dictionary is used to encode a first column vector in a first IMCU, the same dictionary is used to encode a second column vector in a second IMCU. The entries in the dictionary are in sort order to facilitate binary searching when performing value-to-code look-ups. If, during the encoding of the second column vector, values are encountered for which the dictionary does not already have codes, then a “sort-order-boundary” is established after the last entry in the dictionary, and entries for the newly encountered values are added to the dictionary, after the sort-order-boundary. To facilitate value-to-code look-ups, the new entries are also sorted relative to each other, creating a second “sort order set”. A new version of the dictionary may be created when the number of sort order sets in the first version of the dictionary reaches a configurable threshold.
-
-
-
-