摘要:
Techniques are provided for improving performance of parallel execution plans that include serial operations. A database server generates a parallel execution plan and includes one or more serial data flow objects in the parallel execution plan, each data flow object including one or more serial row sources. A parallel selector row source is associated with each serial data flow object included in the parallel execution plan. Each parallel selector row source coordinates with a query coordinator process the execution of the associated serial data flow object. In the event that that a plurality of serial data flow objects are included in a parallel execution plan, serial row sources included in the serial data flow objects may be executed concurrently by a separate parallel slave process, instead of sequential execution of each serial row source by the query coordinator process.
摘要:
Techniques are described for parallelizing qualifying window functions without reliance on partitioning criteria specified in the command that includes the qualifying window functions. Because the techniques do not rely on partitioning criteria specified in the command, the techniques may be used on commands in which no partitioning criteria is specified. In general, the techniques involve partitioning the work of a qualified window function into ranges, and sharing precomputed aggregate values between computational elements to calculate the value for the window functions.
摘要:
Techniques are provided for generating execution plans for, and executing, database statements that contain filter subqueries. Upon receiving a database statement that contains a filter subquery, the database server builds an execution plan that includes a filter operation that is fed by a subtree that corresponds to the subquery. The database server performs a cost analysis to determine whether (1) the filter operation should be parallelized, and (2) the subquery tree should be parallelized. Techniques are also described for generating plans and executing queries where (1) both the filter operation and the subquery subtree are parallelized, (2) the filter operation is parallelized but the subquery subtree operation is performed serially, and (3) the filter operation is performed serially but the subquery subtree operation is parallelized.
摘要:
Provided herein are techniques that may be used to dramatically increase parallism for distributed DML operations. The work of distributed DML operations are distributed in a way that avoids self-dead locks, by ensuring that, for a given data block, no more than one slave is assigned to modify a row that is wholly contained by the data block or whose head row piece is contained by the data block. Assigning slaves in this way not only allows more slaves to be assigned to modify a partition, but allows for greater flexibility in load balancing.
摘要:
Techniques are provided for processing, within a database server, a database statement, where at least one subtask required by the database statement is to be executed in parallel by a slave set. The database server determines whether the database statement includes an external expression, relative to the subtask, that (a) produces information that is required by slave processes in the slave set in order to perform the subtask, and (b) is not to be evaluated by each slave process in the slave set. During execution of the statement, if the database statement includes an external expression, then one or more external values are generated by causing the external expression to be evaluated, and the one or more external values are communicated to slaves of the slave set to allow the slave processes to perform respective portions of the subtask in parallel, without requiring each slave of the slave set to evaluate the external expression.
摘要:
Techniques are described for parallelizing qualifying window functions without reliance on partitioning criteria specified in the command that includes the qualifying window functions. Because the techniques do not rely on partitioning criteria specified in the command, the techniques may be used on commands in which no partitioning criteria is specified. In general, the techniques involve partitioning the work of a qualified window function into ranges, and sharing precomputed aggregate values between computational elements to calculate the value for the window functions.
摘要:
Techniques are provided for processing a database statement that includes a table function capable of parallel execution, where the input of the table function is specified in a subquery. During compilation of the database statement, a global cursor is generated for the database statement. The global cursor includes a first plan component for executing the table function and a second plan component for generating input for the table function. A “dummy” cursor is then generated. When slaves execute the table function, they call the dummy cursor for input. When a slave calls the dummy cursor for input, the dummy cursor causes a context switch back to the global cursor, so that the second plan component within the first cursor generates the input for the slave.
摘要:
Methods for transforming a query to remove redundant tables and eliminate superfluous join operations is provided. The methods provided transform queries to remove redundant tables and anti-joins, semi-joins, and outer-joins. Whether a table is redundant is determined based on a set of criteria which, if fulfilled, indicates that the removal of the table and the anti-join, semi-join, or outer-join operation does not impact query results. The removal of a redundant table from a query also results in the elimination of the anti-join, semi-join, or outer-join operation that references the removed table.
摘要:
A method, system, and computer program product for high-performance database systems. The method commences by estimating, during a compile phase, a statically-calculated system cost of performing parallel join operations over two relations, then selecting, during the compile phase, a first distribution method to perform the parallel join operations. Instructions (e.g., table partitioning) are communicated to two or more execution units for execution of the parallel join operations, and during execution, various measurements are taken pertaining to the performance of a first portion of the parallel join operations using the selected first distribution method. Then, responsive to the measurements a second distribution method is selected and corresponding instructions are communicated to the two or more execution units. The parallel join operations continue, now using the second distribution method.
摘要:
Under a type of query transformation referred to herein as join factorization, the branches of an UNION/UNION ALL query that join a common table are combined to reduce accesses to the common table. The transformation can be expressed as (T1 join T2) union all (T1 join T3)=T1 join (T2 union all T3), where T1, T2 and T3 are three tables. A given query may be rewritten in many alternate ways using join factorization. Evaluating each alternative can be expensive. Therefore, the alternatives are generated and evaluated in a way that minimizes the cost of evaluating the alternatives.
摘要翻译:在这里称为连接因式分解的一种类型的查询变换中,加入公共表的UNION / UNION ALL查询的分支被组合以减少对公共表的访问。 转换可以表示为(T1连接T2)联合全部(T1连接T3)= T1连接(T2联合全T3),其中T1,T2和T3是三个表。 给定的查询可以使用连接因式分解以许多替代方式重写。 评估每个替代品可能是昂贵的。 因此,以最小化评估替代品的成本的方式生成和评估替代方案。