Patents by Inventor Ahmad Said Ghazal
Ahmad Said Ghazal 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: 10642834Abstract: Selecting a join plan for a query containing a join and a union block includes determining whether to propose a join plan with the join pushed across the union block. A selection is made between a join plan in which the join is not pushed across the union block and any proposed join plan in which the join is pushed across the union block.Type: GrantFiled: March 30, 2017Date of Patent: May 5, 2020Assignee: Teradata US, Inc.Inventors: Ahmad Said Ghazal, William Joseph McKenna
-
Patent number: 9720966Abstract: An execution plan for executing one or more iterations of recursive database queries can be generated in accordance with one aspect of the invention. For example, in accordance with one embodiment of the invention, one or more cardinalities (results or size of results, including intermediate results) associated with one or more iterations can be estimated. This estimation can, for example, by performed by using a sampling or sampling-based algorithm. In addition, a plan generated for execution of one or more iteration of a recursive query can be modified or replaced by comparing the actual cardinality with its estimation. As a result, the first one or more iterations may be executed using a first plan but the subsequent one or more iterations may use a modified or different execution plan.Type: GrantFiled: December 20, 2012Date of Patent: August 1, 2017Assignee: Teradata US, Inc.Inventors: Ahmad Said Ghazal, Dawit Seid
-
Patent number: 9152670Abstract: The number of iterations or self joins required to execute a recursive database query can be estimated. It will be appreciated that this estimation can be used to plan the execution of the recursive query and can be made in various ways and for various applications. By way of example, an estimated number of iterations or self joins required to execute a recursive database query (e.g., 12) can be used as a basis to determine or plan an optimal execution plan. For example, given an estimated twelve (12) iterations, an execution plan can be determined for executing at least the first three (3) iterations or for executing every three (3) iterations, whereas for an estimated twenty (21) iterations required to complete a recursive database query, an execution plan can be determined for the first five (5) or six (6) iterations, and so on.Type: GrantFiled: December 20, 2012Date of Patent: October 6, 2015Assignee: Teradata US, Inc.Inventors: Ahmad Said Ghazal, Dawit Seid
-
Patent number: 9146960Abstract: Based on one or more predicated results (e.g., estimations of the actual results) associated with one or more iterations and/or sub-queries of an iterative or recursive database query, it can be determined whether to use an execution plan (e.g., a current execution plan used to execute one or more iterations) to execute one or more other iterations and/or sub-queries of the iterative or recursive database query. Consequently, use of the execution plan to execute the one or more other iterations and/or sub-queries of the iterative or recursive database query can be disallowed. As a result, the iterative or recursive database query can be executed more efficiently. The determination of whether to use an execution plan can, for example, be performed by determining whether an actual result obtained by executing one or more iterations differs or diverges more than a determined value from an estimated result of the same iteration(s).Type: GrantFiled: December 20, 2012Date of Patent: September 29, 2015Assignee: Teradata US, Inc.Inventors: Ahmad Said Ghazal, Dawit Seid
-
Patent number: 8943040Abstract: A query to perform an ordered analytic function contains a clause specifying creation of dynamic partitions, where the clause contains a partitioning condition to specify the dynamic partitions. During processing of the query, dynamic partitions are identified based on evaluating the partitioning condition. To identify the dynamic partitions, a first table is created that contains a first column to track rows of an input table for indicating whether the partitioning condition evaluates to true. The first column of the first table is used to identify the dynamic partitions.Type: GrantFiled: March 25, 2010Date of Patent: January 27, 2015Assignee: Teradota US, Inc.Inventors: Ambuj Shatdal, B. Anantha Subramanian, Ahmad Said Ghazal
-
Patent number: 8868545Abstract: Techniques for optimizing outer joins in database operations are provided. In an embodiment, a query having an outer join with a GROUP BY clause is rewritten and expanded to expand a first level partition of that GROUP BY clause to produce a modified query. In another situation, rows associated with processing a query are each row split and then hashed based at least in part on attributes of the outer join predicate. A left outer join is performed and a global aggregation processed to produce a spooled table to process the query.Type: GrantFiled: December 29, 2011Date of Patent: October 21, 2014Assignee: Teradata US, Inc.Inventors: Yu Xu, Ahmad Said Ghazal
-
Patent number: 8768916Abstract: Inputs are received. The inputs are a star schema data model comprising a non-partitioned fact table (F) comprising fields (f1, f2, . . . fn); a set of queries (Q=q1, q2, . . . qm); and a set of weights for each query in Q. Each weight defines the priority of a respective query in a workload. The inputs are pre-processed to produce a most-granular-partitioning. The most-granular-partitioning is processed to produce an initial multi-level partitioned primary index, the processing including determining the scan cost of one of the queries in Q. The initial multi-level partitioned primary index is processed to produce a final multi-level partitioned primary index, the processing including determining the query cost of one of the queries in Q. F is partitioned using the final multi-level partitioned primary index. A query from Q is run against F to produce a result. The result is stored.Type: GrantFiled: December 21, 2011Date of Patent: July 1, 2014Assignee: Teradata US, Inc.Inventor: Ahmad Said Ghazal
-
Publication number: 20140181074Abstract: The number of iterations or self joins required to execute a recursive database query can be estimated. It will be appreciated that this estimation can be used to plan the execution of the recursive query and can be made in various ways and for various applications. By way of example, an estimated number of iterations or self joins required to execute a recursive database query (e.g., 12) can be used as a basis to determine or plan an optimal execution plan. For example, given an estimated twelve (12) iterations, an execution plan can be determined for executing at least the first three (3) iterations or for executing every there (3) iterations, whereas for an estimated twenty (21) iterations required to complete a recursive database query, an execution plan can be determined for the first five (5) or six (6) iterations, and so on.Type: ApplicationFiled: December 20, 2012Publication date: June 26, 2014Applicant: Teradata CorporationInventors: Ahmad Said Ghazal, Dawit Seid
-
Publication number: 20140181079Abstract: Based on one or more predicated results (e.g., estimations of the actual results) associated with one or more iterations and/or sub-queries of an iterative or recursive database query, it can be determined whether to use an execution plan (e.g., a current execution plan used to execute one or more iterations) to execute one or more other iterations and/or sub-queries of the iterative or recursive database query. Consequently, use of the execution plan to execute the one or more other iterations and/or sub-queries of the iterative or recursive database query can be disallowed. As a result, the iterative or recursive database query can be executed more efficiently. The determination of whether to use an execution plan can, for example, be performed by determining whether an actual result obtained by executing one or more iterations differs or diverges more than a determined value from an estimated result of the same iteration(s).Type: ApplicationFiled: December 20, 2012Publication date: June 26, 2014Applicant: Teradata CorporationInventors: Ahmad Said Ghazal, Dawit Seid
-
Publication number: 20130173589Abstract: Techniques for optimizing outer joins in database operations are provided. In an embodiment, a query having an outer join with a GROUP BY clause is rewritten and expanded to expand a first level partition of that GROUP BY clause to produce a modified query. In another situation, rows associated with processing a query are each row split and then hashed based at least in part on attributes of the outer join predicate. A left outer join is performed and a global aggregation processed to produce a spooled table to process the query.Type: ApplicationFiled: December 29, 2011Publication date: July 4, 2013Inventors: Yu Xu, Ahmad Said Ghazal
-
Patent number: 8140521Abstract: A method, computer program, and database system are disclosed for processing a database query that includes one or more expressions. The method includes resolving columns in one or more of the expressions. Expression optimization is performed on one or more of the expressions. Afterward, further query optimization is performed.Type: GrantFiled: March 15, 2004Date of Patent: March 20, 2012Assignee: Teradata US, Inc.Inventors: Stephen Fife Sheldon, Arthur Vargas Lopes, Grace Kwan-On Au, Ahmad Said Ghazal
-
Patent number: 7672926Abstract: A method, computer program, and database system are disclosed for executing database queries. The database includes a first table (T1) having a primary key (PK) column and a first correlated value column (CV1) and a second table (T2) having a foreign key (FK) column related to the primary key column of the first table and a second correlated value column (CV2). One implementation of the method includes preparing a database query for execution based at least in part on application of a derived constraint rule (DCR) having the form, (PK=FK)?CV2+C1?CV1?CV2+C2, where C1 and C2 are constants and “?” means “implies,” to produce an execution plan. A frequency of errors due to changes in DCRs is taken into account when preparing the execution plan. The plan is then executed.Type: GrantFiled: August 13, 2007Date of Patent: March 2, 2010Assignee: Teradata US, Inc.Inventors: Ahmad Said Ghazal, Paul Laurence Sinclair
-
Publication number: 20090313211Abstract: Selecting a join plan for a query containing a join and a union block includes determining whether to propose a join plan with the join pushed across the union block. A selection is made between a join plan in which the join is not pushed across the union block and any proposed join plan in which the join is pushed across the union block.Type: ApplicationFiled: June 17, 2008Publication date: December 17, 2009Inventors: Ahmad Said Ghazal, William Joseph McKenna
-
Patent number: 7321891Abstract: Methods, computer programs, and database systems for analyzing one or more queries are disclosed. Queries may include one or more conditions and one or more sub-queries, with each sub-queries introduced by connecting condition. The method determines the satisfiability of the query, including the satisfiability of the connecting conditions and conditions in the sub-queries. Queries may include one or more conditions of the form (X+Y OP C). The method determines the satisfiability of the query, including the satisfiability of the conditions of the form (X+Y OP C).Type: GrantFiled: February 19, 2004Date of Patent: January 22, 2008Assignee: NCR Corp.Inventor: Ahmad Said Ghazal
-
Patent number: 7272591Abstract: A method, computer program, and database system are disclosed for executing database queries. The database includes a first table (T1) having a primary key (PK) column and a first correlated value column (CV1) and a second table (T2) having a foreign key (FK) column related to the primary key column of the first table and a second correlated value column (CV2). One implementation of the method includes preparing a database query for execution based at least in part on application of a derived constraint rule (DCR) having the form, (PK=FK)?CV2+C1?CV1?CV2+C2, where C1 and C2 are constants and “?” means “implies,” to produce an execution plan. Abort steps that are conditioned on changes in the DCR are also included in the execution plan. The plan is then executed.Type: GrantFiled: January 22, 2004Date of Patent: September 18, 2007Assignee: NCR CorporationInventors: Ahmad Said Ghazal, Paul Laurence Sinclair
-
Patent number: 7127457Abstract: A method, computer program, and computer network are disclosed for executing database queries. The method includes identifying a first set of conditions corresponding to a selected step for executing a query. A second set of conditions corresponding to one or more steps for executing the query that feed the selected step is identified. Each condition in the first set is checked for mathematical redundancy, including redundancy without equivalency, with regard to the other conditions in the union of the conditions corresponding to the selected step and the conditions in the second set. Each condition in the first set that is redundant is included in a third set. If there is only one condition in the third set, an identifier of the one condition is stored.Type: GrantFiled: October 29, 2003Date of Patent: October 24, 2006Assignee: NCR Corp.Inventor: Ahmad Said Ghazal
-
Patent number: 6999967Abstract: A method, computer program and system for joining two tables, t1 and t2 are described. Each table contains rows and columns and is divided into one or more partitions. A correlation function is calculated between a first correlated value column of table t1 and a second correlated value column of table t2. Following a query request, a joining algorithm is used to join t1 and t2, using a reduced set of partitions based in part upon the correlation function.Type: GrantFiled: December 26, 2001Date of Patent: February 14, 2006Assignee: NCR Corp.Inventors: Ahmad Said Ghazal, Paul Laurence Sinclair
-
Patent number: 6662175Abstract: A method and computer system for optimizing queries to a database are disclosed. The database includes a first table (T1) having a primary key (PK) column and a first correlated value column (CV1) and a second table (T2) having a foreign key (FK) column related to the primary key column of the first table and a second correlated value column (CV2). The method includes joining T1 to the T2 using PK=FK as the join condition to produce a join result having rows. Each row includes a value from CV1 and a value from CV2. The method further includes creating an initial running constraint (RC). The initial running constraint includes a null range.Type: GrantFiled: May 8, 2001Date of Patent: December 9, 2003Assignee: NCR CorporationInventors: Ahmad Said Ghazal, Paul Laurence Sinclair
-
Patent number: 6643636Abstract: A method, database system and computer program are disclosed for optimizing a SQL query, in which the SQL query includes a WHERE clause and a FROM clause. An evaluation is done to determine whether a non-covering join index partially but not completely covers the query. If it does, the join index is added to the FROM clause of the query without removing the partially covered base tables and the WHERE clause of the query is modified by: (1) mapping a query condition to the join index for its partially covered base tables; and (2) adding a join back condition from the join index to a base table from which the join index was formed.Type: GrantFiled: June 5, 2001Date of Patent: November 4, 2003Assignee: NCR CorporationInventors: Grace Kwan-On Au, Ahmad Said Ghazal, Paul Laurence Sinclair
-
Patent number: 6505188Abstract: The retrieval of data from a database in a computerized database management system is optimized through the use of a virtual join index and associated covering non-unique secondary indexes. The virtual join index is created by combining one or more commonly-used columns of one or more tables. The covering non-unique secondary indexes are generating by combining one or more commonly-used columns of the virtual join index. Data is not stored in the virtual join index after the covering non-unique secondary indexes are generated. Thereafter, some queries or portions thereof may be resolved solely by accessing one or more of the covering non-unique secondary indexes.Type: GrantFiled: June 15, 2000Date of Patent: January 7, 2003Assignee: NCR CorporationInventors: Ahmad Said Ghazal, Paul Laurence Sinclair, Chi Kim Hoang