Patents by Inventor Mohamed Zait

Mohamed Zait 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).

  • Patent number: 7702623
    Abstract: Techniques for sharing cursors are provided. When a new query is issued, a database server determines whether the new query is semantically equivalent to a previous query. If so, then database server computes statistics associated with the new query. Based on the statistics, the database server determines whether compiling the new query would produce an execution plan that satisfies certain criteria. If so, then the cursor is used to execute the new query. In another approach, one cursor sharing technique (CST) is used to determine which cursor to use to execute a first set of semantically-equivalent queries. Statistics are gathered during execution of the first set of queries. The database server determines, based on the statistics, when to switch from using the first CST to a different CST. The different CST is used to determine which cursor to use to execute a second set of queries that are semantically-equivalent to the first set.
    Type: Grant
    Filed: July 31, 2007
    Date of Patent: April 20, 2010
    Assignee: Oracle International Corporation
    Inventors: Allison W. Lee, Mohamed Zait
  • Patent number: 7689550
    Abstract: Techniques for sharing cursors are provided. When a new query is issued, a database server determines whether the new query is semantically equivalent to a previous query. If so, then database server computes statistics associated with the new query. Based on the statistics, the database server determines whether compiling the new query would produce an execution plan that satisfies certain criteria. If so, then the cursor is used to execute the new query. In another approach, one cursor sharing technique (CST) is used to determine which cursor to use to execute a first set of semantically-equivalent queries. Statistics are gathered during execution of the first set of queries. The database server determines, based on the statistics, when to switch from using the first CST to a different CST. The different CST is used to determine which cursor to use to execute a second set of queries that are semantically-equivalent to the first set.
    Type: Grant
    Filed: July 31, 2007
    Date of Patent: March 30, 2010
    Assignee: Oracle International Corporation
    Inventors: Allison W. Lee, Mohamed Zait
  • Patent number: 7680761
    Abstract: The present invention is directed to a method and mechanism for partitioning using information not directly located in the object being partitioned. According to an embodiment of the invention, foreign key-primary key relationships are utilized to create join conditions between multiple database tables to implement partitioning of a database object. Also, disclosed are methods and mechanisms to perform partition pruning.
    Type: Grant
    Filed: September 27, 2004
    Date of Patent: March 16, 2010
    Assignee: Oracle International Corporation
    Inventors: Mohamed Zait, Benoit Dageville
  • Patent number: 7664730
    Abstract: A method, apparatus, and computer program product with a persistent data structure for storing a profile of tuning information for a query statement separately from the query statement. The profile in the persistent data structure includes a statement signature to identify the query statement, and an action to tune the statement.
    Type: Grant
    Filed: September 7, 2004
    Date of Patent: February 16, 2010
    Assignee: Oracle International Corporation
    Inventors: Mohamed Ziauddin, Benoit Dageville, Mohamed Zait, Khaled Yagoub
  • Publication number: 20100030728
    Abstract: Techniques are described herein for estimating selectivities of query predicates that reference more than one column and predicates that include column expressions. Virtual columns are defined based on column groups and column expressions. Statistics are gathered on the virtual columns and are used to estimate the selectivities of query predicates that include column groups or expressions. Query predicates that include column groups are mapped to virtual columns on which statistics are gathered, based on similarities between the column groups in the query predicates and the column groups on which the virtual columns are defined. Virtual columns are defined for column groups and expressions are specified by users or a workload analyzer that analyzes query predicates.
    Type: Application
    Filed: July 29, 2008
    Publication date: February 4, 2010
    Inventors: Sunil P. Chakkappen, Mohamed Zait
  • Patent number: 7644062
    Abstract: 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.
    Type: Grant
    Filed: March 8, 2007
    Date of Patent: January 5, 2010
    Assignee: Oracle International Corporation
    Inventors: Hong Su, Rafi Ahmed, Allison Lee, Mohamed Zait, Thierry Cruanes
  • Patent number: 7636731
    Abstract: A method and apparatus for approximating a database statistic, such as the number of distinct values (NDV) is provided. To approximate the NDV for a portion of a table, a synopsis of distinct values is constructed. Each value in the portion is mapped to a domain of values. The mapping function is implemented with a uniform hash function, in one embodiment. If the resultant domain value does not exist in the synopsis, the domain value is added to the synopsis. If the synopsis reaches its capacity, a portion of the domain values are discarded from the synopsis. The statistic is approximated based on the number (N) of domain values in the synopsis and the portion of the domain that is represented in the synopsis relative to the size of the domain.
    Type: Grant
    Filed: April 25, 2007
    Date of Patent: December 22, 2009
    Assignee: Oracle International Corporation
    Inventors: Thierry Cruanes, Uri Shaft, Hong Su, Benoit Dageville, Sunil P. Chakkappen, Mohamed Zait
  • Patent number: 7634456
    Abstract: A method to addresses structural performance problems of a database query language statement is provided. The method includes receiving a database query language statement at an optimizer, evaluating choices in a search space to generate an execution plan for the statement, and producing annotations to record one or more reasons for selecting each choice while generating the execution plan.
    Type: Grant
    Filed: September 7, 2004
    Date of Patent: December 15, 2009
    Assignee: Oracle International Corporation
    Inventors: Khaled Yagoub, Benoit Dageville, Mohamed Ziauddin, Mohamed Zait, Karl Dias
  • Patent number: 7603339
    Abstract: A method and apparatus for merging synopses to determine a database statistic, e.g., a number of distinct values (NDV), is disclosed. The merging can be used to determine an initial database statistic or to perform incremental statistics maintenance. For example, each synopsis can pertain to a different partition, such that merging the synopses generates a global statistic. When performing incremental maintenance, only those synopses whose partitions have changed need to be updated. Each synopsis contains domain values that summarize the statistic. However, the synopses may initially contain domain values that are not compatible with each other. Prior to merging the synopses the domain values in each synopsis is made compatible with the domain values in the other synopses. The adjustment is made such that each synopsis represents the same range of domain values, in one embodiment. After “compatible synopses” are formed, the synopses are merged by taking the union of the compatible synopses.
    Type: Grant
    Filed: April 25, 2007
    Date of Patent: October 13, 2009
    Assignee: Oracle International Corporation
    Inventors: Thierry Cruanes, Uri Shaft, Hong Su, Benoit Dageville, Sunil P. Chakkappen, Mohamed Zait
  • Patent number: 7539608
    Abstract: Techniques for determining effects, on a system, of values for a parameter that is used to manage memory for the system include generating data that indicates a workload and an actual performance of the system. The data is generated while processing the workload within the system using a first value for the parameter. Based on the data, an estimated performance is generated. The estimated performance is a performance that the system would have experienced if a second value for the parameter had been used to process the workload. The second value is different from the first value for the parameter. Using these techniques, an administrator can determine what change in system performance could be achieved by changing a value of the memory management parameter. Therefore the system administrator can better determine whether to make the change in the value of the memory management parameter.
    Type: Grant
    Filed: October 9, 2002
    Date of Patent: May 26, 2009
    Assignee: Oracle International Corporation
    Inventors: Benoit Dageville, Sambavi Muthukrishnan, Mohamed Zait
  • Publication number: 20090106306
    Abstract: Approaches, techniques, and mechanisms are disclosed for maintaining a set of baseline query plans for a database command. Except in rare circumstances, a database server may only execute a command according to a baseline plan, even if the database server predicts that a different plan has a lower cost. The set of baseline plans are plans that, for one reason or another, have been determined to provide acceptable actual performance in at least one execution context. When the database server receives a request to execute a particular command, the database server, if possible, always executes the command according to the lowest predicted cost baseline plan. The database server may evolve the plan baseline to include additional plans by generating and testing new plans in response to new requests to execute the database command, or as part of a query optimization or tuning process.
    Type: Application
    Filed: August 8, 2008
    Publication date: April 23, 2009
    Inventors: Dinesh Das, Cetin Ozbutun, Hong Su, Mohamed Zait, Yali Zhu, Mohamed Ziauddin, Peter Belknap, Khaled Yagoub
  • Publication number: 20090106219
    Abstract: Approaches, techniques, and mechanisms are disclosed for ensuring that a database command is executed according to a query plan that has been verified to be actually optimal. Except in rare circumstances, a database server does not execute a query plan unless it is first verified by the database server. The database server receives a request to execute a database command. The database server determines an unverified plan is the best plan for satisfying the request. Rather than risk the unknown behavior of an unverified plan, the database server instead satisfies the request according to a verified plan. Subsequently—for example as part of a scheduled job—the database server executes the unverified plan to determine performance statistics. Based at least on the performance statistics, the database server determines whether or not to verify the unverified plan. Techniques for concurrent and optimistic verifications are also disclosed.
    Type: Application
    Filed: August 8, 2008
    Publication date: April 23, 2009
    Inventors: Peter Belknap, Benoit Dageville, Dinesh Das, Khaled Yagoub, Mohamed Zait, Mohamed Ziauddin
  • Patent number: 7499960
    Abstract: An operator in accordance with the invention changes, over time, the amount of memory that is allocated and used by the operator, to process data input to the operator. For example, a sort operator that is used to implement a query in a relational database may allocate a certain amount of memory initially based on an estimate of input data, and thereafter increase the allocated memory if the size of the input data was underestimated. In one embodiment, the operator checks, from time to time while processing a given set of input data, its current memory usage against an operator-level target or limit (either of which is called “memory bound”), and makes appropriate changes to conform to the memory bound.
    Type: Grant
    Filed: October 1, 2001
    Date of Patent: March 3, 2009
    Assignee: Oracle International Corporation
    Inventors: Benoit Dageville, Mohamed Zait
  • Publication number: 20090037404
    Abstract: Techniques for sharing cursors are provided. When a new query is issued, a database server determines whether the new query is semantically equivalent to a previous query. If so, then database server computes statistics associated with the new query. Based on the statistics, the database server determines whether compiling the new query would produce an execution plan that satisfies certain criteria. If so, then the cursor is used to execute the new query. In another approach, one cursor sharing technique (CST) is used to determine which cursor to use to execute a first set of semantically-equivalent queries. Statistics are gathered during execution of the first set of queries. The database server determines, based on the statistics, when to switch from using the first CST to a different CST. The different CST is used to determine which cursor to use to execute a second set of queries that are semantically-equivalent to the first set.
    Type: Application
    Filed: July 31, 2007
    Publication date: February 5, 2009
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Allison W. Lee, Mohamed Zait
  • Publication number: 20090037405
    Abstract: Techniques for sharing cursors are provided. When a new query is issued, a database server determines whether the new query is semantically equivalent to a previous query. If so, then database server computes statistics associated with the new query. Based on the statistics, the database server determines whether compiling the new query would produce an execution plan that satisfies certain criteria. If so, then the cursor is used to execute the new query. In another approach, one cursor sharing technique (CST) is used to determine which cursor to use to execute a first set of semantically-equivalent queries. Statistics are gathered during execution of the first set of queries. The database server determines, based on the statistics, when to switch from using the first CST to a different CST. The different CST is used to determine which cursor to use to execute a second set of queries that are semantically-equivalent to the first set.
    Type: Application
    Filed: July 31, 2007
    Publication date: February 5, 2009
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Allison W. Lee, Mohamed Zait
  • Patent number: 7447676
    Abstract: A method and system of collecting execution statistics of query statements is disclosed. An execution plan is generated for a query statement in one embodiment of the invention. The execution plan includes one or more operations. One of the one or more operations is selected. The selected execution plan is then executed and a plurality of execution statistics of the selected operation is collected.
    Type: Grant
    Filed: April 21, 2003
    Date of Patent: November 4, 2008
    Assignee: Oracle International Corporation
    Inventors: Mohamed Zait, Ari Mozes, Cetin Ozbutun
  • Patent number: 7409517
    Abstract: An application program (such as a database) is responsive to a value (also called externally-set global value) that defines the amount of memory to be used by the application program for functions (such as queries) performed by the application program. In one embodiment, a sequence of instructions (also called “memory broker”) uses the externally-set global value to compute one or more internal values that are then used when allocating memory. The memory broker dynamically revises the internal value(s) based on memory being allocated for the functions, thereby to form a feedback loop.
    Type: Grant
    Filed: October 1, 2001
    Date of Patent: August 5, 2008
    Assignee: Oracle International Corporation
    Inventors: Benoit Dageville, Mohamed Zait
  • Publication number: 20080120274
    Abstract: A method and apparatus for approximating a database statistic, such as the number of distinct values (NDV) is provided. To approximate the NDV for a portion of a table, a synopsis of distinct values is constructed. Each value in the portion is mapped to a domain of values. The mapping function is implemented with a uniform hash function, in one embodiment. If the resultant domain value does not exist in the synopsis, the domain value is added to the synopsis. If the synopsis reaches its capacity, a portion of the domain values are discarded from the synopsis. The statistic is approximated based on the number (N) of domain values in the synopsis and the portion of the domain that is represented in the synopsis relative to the size of the domain.
    Type: Application
    Filed: April 25, 2007
    Publication date: May 22, 2008
    Inventors: Thierry Cruanes, Uri Shaft, Hong Su, Benoit Dageville, Sunil P. Chakkappen, Mohamed Zait
  • Publication number: 20080120275
    Abstract: A method and apparatus for merging synopses to determine a database statistic, e.g., a number of distinct values (NDV), is disclosed. The merging can be used to determine an initial database statistic or to perform incremental statistics maintenance. For example, each synopsis can pertain to a different partition, such that merging the synopses generates a global statistic. When performing incremental maintenance, only those synopses whose partitions have changed need to be updated. Each synopsis contains domain values that summarize the statistic. However, the synopses may initially contain domain values that are not compatible with each other. Prior to merging the synopses the domain values in each synopsis is made compatible with the domain values in the other synopses. The adjustment is made such that each synopsis represents the same range of domain values, in one embodiment. After “compatible synopses” are formed, the synopses are merged by taking the union of the compatible synopses.
    Type: Application
    Filed: April 25, 2007
    Publication date: May 22, 2008
    Inventors: Thierry Cruanes, Uri Shaft, Hong Su, Benoit Dageville, Sunil P. Chakkappen, Mohamed Zait
  • Publication number: 20080010240
    Abstract: Under automated alternate plan analysis, a query optimizer generates candidate execution plans. The candidate execution plans are selected as alternate execution plans for the query and execution. Output describing characteristics of each alternate execution plan and/or its execution is generated and/or compared. From this information, it may be determined, for example, whether results returned by any of the alternate execution plans are the same and whether the least cost execution plan is actually the most efficiently executed.
    Type: Application
    Filed: July 10, 2006
    Publication date: January 10, 2008
    Inventor: Mohamed Zait