Abstract:
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for modular query optimizer. In one aspect, a method includes selecting one or more projections from a set of projections for each table in a database query wherein each of the selected projections for the table has leads to an estimated lower execution cost for the query as compared to non-selected projections; generating join orders for the query based on data distribution of one or more of the selected projections among sites in a computer network wherein the join orders reflect different combinations of data distribution operations applied to the output of one or more of the query's joins; and selecting a join order from the join orders based on evaluation of the join orders using a cost model.
Abstract:
Computer programs encoded on a computer storage medium provide for a modular query optimizer. In one aspect, a computer program product includes selecting one or more projections from a set of projections for each table in a database query wherein each of the selected projections for the table has leads to an estimated lower execution cost for the query as compared to non-selected projections; generating join orders for the query based on data distribution of one or more of the selected projections among sites in a computer network wherein the join orders reflect different combinations of data distribution operations applied to the output of one or more of the query's joins; and selecting a join order from the join orders based on evaluation of the join orders using a cost model.
Abstract:
Computer programs encoded on a computer storage medium provide for a modular query optimizer. In one aspect, a computer program product includes selecting one or more projections from a set of projections for each table in a database query wherein each of the selected projections for the table has leads to an estimated lower execution cost for the query as compared to non-selected projections; generating join orders for the query based on data distribution of one or more of the selected projections among sites in a computer network wherein the join orders reflect different combinations of data distribution operations applied to the output of one or more of the query's joins; and selecting a join order from the join orders based on evaluation of the join orders using a cost model.
Abstract:
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for modular query optimizer. In one aspect, a method includes selecting one or more projections from a set of projections for each table in a database query wherein each of the selected projections for the table has leads to an estimated lower execution cost for the query as compared to non-selected projections; generating join orders for the query based on data distribution of one or more of the selected projections among sites in a computer network wherein the join orders reflect different combinations of data distribution operations applied to the output of one or more of the query's joins; and selecting a join order from the join orders based on evaluation of the join orders using a cost model.
Abstract:
A query that is submitted to a database is analyzed so as to determine a join order restriction. The join order restriction is associated with a join between two tables of a plurality of tables of the database that participate in the query. The join order restriction constrains its associated join to be executed prior to another join of the query. At least one join plan is generated, the join plan being constrained by the join order restriction. Different join plans include different join orders. A join plan is selected from among the join plans for execution of the query.
Abstract:
A query that is submitted to a database is analyzed so as to determine a join order restriction. The join order restriction is associated with a join between two tables of a plurality of tables of the database that participate in the query. The join order restriction constrains its associated join to be executed prior to another join of the query. At least one join plan is generated, the join plan being constrained by the join order restriction. Different join plans include different join orders. A join plan is selected from among the join plans for execution of the query.
Abstract:
A method of analyzing an expression to infer output data properties, comprises storing, in a storage device, a root node “e” in R, in which “e” is an expression and R is a root node of an abstract syntax tree (AST) of the expression “e”, storing a number of child nodes of R into C1, . . . Cn, with a processor coupled to the storage device, calling analyze(Ci), storing output properties of expression C into Pi I, and determining if any of the child nodes Ci in {C1 . . . Cn} has not been analyzed, in which if the last child node has been analyzed, with the processor, calling compute-output-properties(R, P1, . . . Pn), storing, in the storage device, the result in Poutput, and returning Poutput as the output properties of the expression “e.”
Abstract:
Methods, systems and program products for query optimization using sideways information passing. In one implementation, a join clause in a query is identified that specifies an outer table of tuples to be joined with an inner table, the outer table having one or more attributes, and each of the attributes of the outer table having values stored in an attribute file that is distinct from attribute files in which the values of other attributes are stored. A plan for the query is created which, when executed, causes selection of a subset of tuples of the outer table to serve as input to the join clause in place of the outer table based on one or more predicates applied to the inner table.
Abstract:
A record-pattern expression of a record pattern of data records is translated to a character-pattern expression of a character pattern. A data-record series of data records is converted to a character string in which each character in the character string corresponds to a respective data record in the data-record series. Pattern instances of the character pattern in the character string are searched to identify ordinal character positions in the character string of characters in the character pattern instances. Data records at ordinal record positions in the record series of data records corresponding to the ordinal character positions are reported.
Abstract:
A method for executing a user-defined function on a plurality of input database tuples. The method may include causing a processor to invoke the function once; and to compute results of the function for the plurality of database tuples.