EVALUATING SQL EXPRESSIONS ON DICTIONARY ENCODED VECTORS

    公开(公告)号:US20170116242A1

    公开(公告)日:2017-04-27

    申请号:US15397714

    申请日:2017-01-03

    CPC classification number: G06F12/0875 G06F7/24 G06F16/2452 G06F2212/60

    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.

    EFFICIENT EVALUATION OF AGGREGATE FUNCTIONS
    2.
    发明申请

    公开(公告)号:US20180075113A1

    公开(公告)日:2018-03-15

    申请号:US15702526

    申请日:2017-09-12

    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.

    IN-MEMORY COLUMN-LEVEL MULTI-VERSIONED GLOBAL DICTIONARY FOR IN-MEMORY DATABASES

    公开(公告)号:US20170109406A1

    公开(公告)日:2017-04-20

    申请号:US15294460

    申请日:2016-10-14

    CPC classification number: G06F16/24561 G06F16/221 G06F16/3347

    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.

    EFFICIENT EVALUATION OF QUERIES WITH MULTIPLE PREDICATE EXPRESSIONS

    公开(公告)号:US20180075105A1

    公开(公告)日:2018-03-15

    申请号:US15702431

    申请日:2017-09-12

    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.

Patent Agency Ranking