Patents by Inventor Cesar A. Galindo-Legaria
Cesar A. Galindo-Legaria has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Publication number: 20050283458Abstract: In the course of an optimization, a query can be broken down into its sub-expressions. Materialized views may be substituted for the sub-expressions during query optimization. Encoded sub-expressions are generated and used in the comparison with stored materialized views. Instead of discarding the encoding of a query's sub-expression if no matching materialization is found, the encoding is stored. If subsequently submitted queries contain the same sub-expression, a view matching mechanism will find the previously stored encoding. Because no materialization is associated with this expression, the view is not substituted. However, usage statistics counters are updated; e.g., a counter is incremented indicating that the sub-expression was found in another query. Because view matching is applied to the sub-expression that are candidates for being materialized, the statistics accurately reflect which are the most frequently occurring candidate sub-expressions in a workload.Type: ApplicationFiled: June 22, 2004Publication date: December 22, 2005Applicant: Microsoft CorporationInventors: Cesar Galindo-Legaria, Florian Waas
-
Publication number: 20050267874Abstract: Validation of large numbers of alternative execution plans for a database query, either an exhaustive enumeration of the complete space of alternatives, or else an unbiased random sample, is performed by efficiently constructing execution trees from a data structure having groups alternative operators that are ranked in a directory. Each global rank of a plan identifies that plan uniquely among all the alternative plans. The operators are unranked from the directory according to a specification that characterizes the desired plans.Type: ApplicationFiled: March 24, 2005Publication date: December 1, 2005Applicant: Microsoft CorporationInventors: Cesar Galindo-Legaria, Florian Waas
-
Publication number: 20050240556Abstract: A partial pre-aggregation database operation improves processing efficiency of database queries by reducing the number of records input into a subsequent database operation, provided the query includes a final aggregation. A query optimizer is provided to determine when it is economical to partially pre-aggregate data records and when it is not. The partial pre-aggregation creates a record store in memory as input records are received. The record store is then used by another database operator, which saves the other database operator from having to re-create the record store.Type: ApplicationFiled: March 17, 2005Publication date: October 27, 2005Applicant: Microsoft CorporationInventors: Per-Ake Larson, Cesar Galindo-Legaria
-
Publication number: 20050240577Abstract: A partial pre-aggregation database operation improves processing efficiency of database queries by reducing the number of records input into a subsequent database operation, provided the query includes a final aggregation. A query optimizer is provided to determine when it is economical to partially pre-aggregate data records and when it is not. The partial pre-aggregation creates a record store in memory as input records are received. The record store is then used by another database operator, which saves the other database operator from having to re-create the record store.Type: ApplicationFiled: March 17, 2005Publication date: October 27, 2005Applicant: Microsoft CorporationInventors: Per-Ake Larson, Cesar Galindo-Legaria
-
Publication number: 20050210023Abstract: Improved query optimizer using implied predicates. The system facilitates allowing a query optimizing component to introduce into a query, extra predicates that facilitate the following: render the same results as the original query; are used as dictated by rules passed to the optimizing component—these rules specify whether the new predicate is an equivalence (that will substitute the old predicate) or an implication (in which the old predicate is preserved); are considered as cost-based alternatives, and discarded if not useful; are tied to index utilization; and can consider both standard and multi-valued indices.Type: ApplicationFiled: March 18, 2004Publication date: September 22, 2005Inventors: Renato Barrera, Jose Blakeley, Cesar Galindo-Legaria, Balaji Rathakrishnan, Oliver Seeliger
-
Publication number: 20050198019Abstract: Indexed views or materialized views are used as a secondary index on a base table with multi-valued attributes. This provides for using the index to search in the nested data. Moreover, indexing is provided on the result of an unnest operation. Indexing a view on the result of an unnesting operation provides the ability to index the contents of a nested collection. One such unnesting operation is “cross apply unnest”. This provides additional options for a query execution plan, leading to a more optimized query. A back-join is provided from the indexed view to the base table to allow fields from the base table that are not present in the indexed view to be included in a result of a query on the table which is processed using the indexed view as an access path. This provides a means of including columns in the query result that are not in the indexed view but are in the base table.Type: ApplicationFiled: March 31, 2005Publication date: September 8, 2005Inventors: Conor Cunningham, Eric Hanson, Milind Joshi, Cesar Galindo-Legaria, Florian Waas
-
Publication number: 20050198013Abstract: Indexed views or materialized views are used as a secondary index on a base table with multi-valued attributes. This provides for using the index to search in the nested data. Moreover, indexing is provided on the result of an unnest operation. Indexing a view on the result of an unnesting operation provides the ability to index the contents of a nested collection. One such unnesting operation is “cross apply unnest”. This provides additional options for a query execution plan, leading to a more optimized query. A back-join is provided from the indexed view to the base table to allow fields from the base table that are not present in the indexed view to be included in a result of a query on the table which is processed using the indexed view as an access path. This provides a means of including columns in the query result that are not in the indexed view but are in the base table.Type: ApplicationFiled: March 8, 2004Publication date: September 8, 2005Inventors: Conor Cunningham, Eric Hanson, Milind Joshi, Cesar Galindo-Legaria, Florian Waas
-
Publication number: 20050198016Abstract: Indexed views or materialized views are used as a secondary index on a base table with multi-valued attributes. This provides for using the index to search in the nested data. Moreover, indexing is provided on the result of an unnest operation. Indexing a view on the result of an unnesting operation provides the ability to index the contents of a nested collection. One such unnesting operation is “cross apply unnest”. This provides additional options for a query execution plan, leading to a more optimized query. A back-join is provided from the indexed view to the base table to allow fields from the base table that are not present in the indexed view to be included in a result of a query on the table which is processed using the indexed view as an access path. This provides a means of including columns in the query result that are not in the indexed view but are in the base table.Type: ApplicationFiled: February 4, 2005Publication date: September 8, 2005Applicant: Microsoft CorporationInventors: Conor Cunningham, Eric Hanson, Milind Joshi, Cesar Galindo-Legaria, Florian Waas
-
Publication number: 20050198001Abstract: Indexed views or materialized views are used as a secondary index on a base table with multi-valued attributes. This provides for using the index to search in the nested data. Moreover, indexing is provided on the result of an unnest operation. Indexing a view on the result of an unnesting operation provides the ability to index the contents of a nested collection. One such unnesting operation is “cross apply unnest”. This provides additional options for a query execution plan, leading to a more optimized query. A back-join is provided from the indexed view to the base table to allow fields from the base table that are not present in the indexed view to be included in a result of a query on the table which is processed using the indexed view as an access path. This provides a means of including columns in the query result that are not in the indexed view but are in the base table.Type: ApplicationFiled: February 4, 2005Publication date: September 8, 2005Applicant: Microsoft CorporationInventors: Conor Cunningham, Eric Hanson, Milind Joshi, Cesar Galindo-Legaria, Florian Waas
-
Publication number: 20050177579Abstract: A database system and method allows a user to write program code in a high-level programming language that implements a class that defines the structure of a user-defined aggregate and methods that can be invoked on instances of the user-defined aggregate. The class is then registered with the database system, which enforces a specific contract for user-defined aggregates against the class. The contract comprises the following requirements. First, the class must specify one of a plurality of different formats for persisting instances of the user-defined aggregate in a database store.Type: ApplicationFiled: February 10, 2004Publication date: August 11, 2005Inventors: Jose Blakeley, Hongang Zhang, Balaji Rathakrishnan, Ramachandran Venkatesh, Beysim Sezgin, Alexios Boukouvalas, Cesar Galindo-Legaria, Peter Carlin
-
Publication number: 20050149492Abstract: Validation of large numbers of alternative execution plans for a database query, either an exhaustive enumeration of the complete space of alternatives, or else an unbiased random sample, is performed by efficiently constructing execution trees from a data structure having groups alternative operators that are ranked in a directory. Each global rank of a plan identifies that plan uniquely among all the alternative plans. The operators are unranked from the directory according to a specification that characterizes the desired plans.Type: ApplicationFiled: November 24, 2004Publication date: July 7, 2005Applicant: Microsoft CorporationInventors: Cesar Galindo-Legaria, Florian Waas
-
Publication number: 20050097100Abstract: A method of satsfying a database query includes evaluating certain joins on a per-segment basis. An expression tree is produced for the query, and the expression tree is evaluated to identify joins whose operands are two instances of the same relation and whose join predicate conjunctively includes an equality comparison between two instances of the same column. When such a join is identified, it may be evaluated by segmenting the operand relation according to the columns that are compared for equality in the predicate. The join is then evaluated by performing the join operation separately on each segment. Segments may be spooled separately, thereby exploiting the efficiencies obtained by spooling even where the entire relation is too large to fit in the spool. Execution iterators are provided for spooling successive segments and for applying the join to the spooled segment.Type: ApplicationFiled: November 29, 2004Publication date: May 5, 2005Applicant: Microsoft CorporationInventors: Cesar Galindo-Legaria, Goetz Graefe, Milind Joshi, Ross Bunker
-
Publication number: 20050050041Abstract: A query optimizer produces a preferred execution plan by utilizing statistics on views. These provide the optimizer with statistical information beyond that available on tables, for example, with information on the result of scalar or relational expressions. Pre-derived accurate statistics are thus available which are used to improve the accuracy of estimation and thus increase the quality and reliability of the query processor. Transformations of expressions and sub-expressions of candidate plans produce equivalent sub-expressions. Where those sub-expressions include references to views, an estimation of the cardinality and other execution statistics for the sub-expression can be made using the view statistics. This can be used to estimate the cardinality for all equivalent sub-expressions, leading to higher accuracy for the estimate.Type: ApplicationFiled: August 29, 2003Publication date: March 3, 2005Inventors: Cesar Galindo-Legaria, Milind Joshi
-
Publication number: 20040267769Abstract: Systems and methods are provided to increase the scalability of subscriptions in an electronic database environment. In an illustrative implementation, a computing application comprises at least one instruction set to cooperate with a data environment to optimize the processing of subscriptions by the data environment when communicating with cooperating services and/or applications. In operation, a subscription is identified. A subscription template is created for the subscription and the subscription template is parameterized to create a parameter table containing parameters (e.g. subscription constants). A join is then performed between the parameters of the parameter table and the parameterized subscription templates to generate application and/or service data required by the cooperating services and/or applications. The data is then processed by the applications and/or services.Type: ApplicationFiled: June 27, 2003Publication date: December 30, 2004Applicant: Microsoft CorporationInventors: Cesar A. Galindo-Legaria, Goetz Graefe, Florian M. Waas
-
Publication number: 20040267741Abstract: A client submits a subscription to a database specifying selected data within a data set. A subscription plan is generated based on the subscription. A query is submitted to the database changing selected data within the data set. A query plan is generated based on the query. The subscription is matched to the query based on the data set, and the query plan is supplemented with the subscription plan to generate a notification of the change to the client.Type: ApplicationFiled: June 24, 2003Publication date: December 30, 2004Applicant: Microsoft CorporationInventors: Cesar A. Galindo-Legaria, Goetz Graefe, Christian Kleinerman, Florian M. Waas
-
Publication number: 20040236722Abstract: During query execution, statistics associated with expressions are observed. Such observed statistics preferably include the cardinality of each expression. The observed statistics are submitted to an expression manager as feedback from the executed query. The statistics are preferably stored for use in estimating the cardinality of execution plans for future queries.Type: ApplicationFiled: May 20, 2003Publication date: November 25, 2004Applicant: Microsoft CorporationInventors: Florian M. Waas, Cesar A. Galindo-Legaria, Milind M. Joshi
-
Publication number: 20040205078Abstract: A method of satisfying a database query includes evaluating certain joins on a per-segment basis. An expression tree is produced for the query, and the expression tree is evaluated to identify joins whose operands are two instances of the same relation and whose join predicate conjunctively includes an equality comparison between two instances of the same column. When such a join is identified, it may be evaluated by segmenting the operand relation according to the columns that are compared for equality in the predicate. The join is then evaluated by performing the join operation separately on each segment. Segments may be spooled separately, thereby exploiting the efficiencies obtained by spooling even where the entire relation is too large to fit in the spool. Execution iterators are provided for spooling successive segments and for applying the join to the spooled segment.Type: ApplicationFiled: April 22, 2004Publication date: October 14, 2004Applicant: Microsoft CorporationInventors: Cesar A. Galindo-Legaria, Goetz Graefe, Milind M. Joshi, Ross T. Bunker
-
Publication number: 20040167891Abstract: Validation of large numbers of alternative execution plans for a database query, either an exhaustive enumeration of the complete space of alternatives, or else an unbiased random sample, is performed by efficiently constructing execution trees from a data structure having groups alternative operators that are ranked in a directory. Each global rank of a plan identifies that plan uniquely among all the alternative plans. The operators are unranked from the directory according to a specification that characterizes the desired plans.Type: ApplicationFiled: February 24, 2004Publication date: August 26, 2004Applicant: Microsoft CorporationInventors: Cesar A. Galindo-Legaria, Florian Waas
-
Patent number: 6757671Abstract: An index is used for a query that contains an original condition having a comparison based on a function. An implied condition is first identified and applied to values in a column having multiple rows. An index is used to identify rows having values meeting the implied condition. Finally, the query is executed over the index using the original condition. Flags may be used to identify how to handle exceptions during run time. A table may be used to provide bounds for multiple different functions.Type: GrantFiled: September 27, 2000Date of Patent: June 29, 2004Assignee: Microsoft CorporationInventors: Cesar A. Galindo-Legaria, Rahul Kapoor
-
Patent number: 6748392Abstract: A method of satisfying a database query includes evaluating certain joins on a per-segment basis. An expression tree is produced for the query, and the expression tree is evaluated to identify joins whose operands are two instances of the same relation and whose join predicate conjunctively includes an equality comparison between two instances of the same column. When such a join is identified, it may be evaluated by segmenting the operand relation according to the columns that are compared for equality in the predicate. The join is then evaluated by performing the join operation separately on each segment. Segments may be spooled separately, thereby exploiting the efficiencies obtained by spooling even where the entire relation is too large to fit in the spool. Execution iterators are provided for spooling successive segments and for applying the join to the spooled segment.Type: GrantFiled: March 6, 2001Date of Patent: June 8, 2004Assignee: Microsoft CorporationInventors: Cesar A. Galindo-Legaria, Goetz Graefe, Milind M. Joshi, Ross T. Bunker