Patent application number | Description | Published |
20090077016 | FULLY AUTOMATED SQL TUNING - Techniques are provided for a fully-automated process for tuning database query language statements that selects database query language statements for tuning, tunes the database query language statements and generates tuning recommendations, tests the tuning recommendations, and determines whether to implement the tuning recommendations based on the test results. The fully-automated tuning process may also automatically implement certain tuning recommendations and monitor the performance of the database query language statements for which tuning recommendations have been implemented. | 03-19-2009 |
20090106219 | SQL Execution Plan Verification - 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. | 04-23-2009 |
20090106306 | SQL Execution Plan Baselines - 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. | 04-23-2009 |
20100005340 | Test execution of user SQL in database server code - Systems, methods, and other embodiments associated with test execution of user SQL in server code are described. One example method includes producing a reproduced execution environment that reproduces a portion of an execution environment in which a user SQL runs. The example method may also include running the user SQL in the reproduced execution environment and capturing a statistic associated with performance of the user SQL while the user SQL runs in the reproduced execution environment. The method may conclude by storing, displaying, and/or providing a signal concerning the statistic. | 01-07-2010 |
20100030758 | Hybrid optimization strategies in automatic SQL tuning - Systems, methods, and other embodiments associated with hybrid optimization strategies in automatic SQL tuning are described. One example method includes receiving a first (e.g., cost-based) execution plan for a user structured query language statement (User SQL) from a first (e.g., cost-based) optimizer. The example method may also include receiving a second (e.g., rules-based) execution plan for the User SQL from a second, different (e.g., rules-based) query optimizer. The method may include identifying a preferred execution plan based on data produced by test executing the execution plans in a reproduced execution environment that reproduces at least a portion of an execution environment in which the user SQL runs. The method may also include controlling a database to execute the User SQL using the preferred execution plan. | 02-04-2010 |
20120005188 | TECHNIQUES FOR RECOMMENDING PARALLEL EXECUTION OF SQL STATEMENTS - Techniques for automatically recommending parallel execution of a SQL statement. In one set of embodiments, a first determination can be made regarding whether a SQL statement can be executed in parallel. Further, a second determination can be made regarding whether executing the SQL statement in parallel is faster than executing the statement in serial by a predetermined factor. If the first determination and second determination are positive (i.e., the statement can be executed in parallel and parallel execution is faster by the predetermined factor), a recommendation can be provided indicating that the SQL statement should be executed in parallel. In some embodiments, the recommendation can include a report specifying the degree of performance improvement gained from parallel execution, additional system resources consumed by parallel execution, and other statistics pertaining to the recommended parallel execution plan. | 01-05-2012 |
20120005189 | TECHNIQUES FOR RECOMMENDING ALTERNATIVE SQL EXECUTION PLANS - Techniques for automatically recommending alternative execution plans for a SQL statement. In one set of embodiments, information pertaining to one or more execution plans for a SQL statement can be retrieved from a set of plan sources. The one or more execution plans can include the current execution plan for the statement and one or more historical execution plans. Based on the retrieved information, the performance of the one or more execution plans can be compared to each other. Based on the comparison, a recommendation can be provided to a user indicating that a particular execution plan (e.g., a historical execution plan) should be used in place of the current execution plan to execute the SQL statement. | 01-05-2012 |
20140089268 | Methods for Resolving A Hang In A Database System - A method for resolving a hang in a database system includes receiving a symbolic graph having a plurality of nodes, where each node represents a database session involved in the hang during a specified time interval. The blocking time associated with each node in the symbolic graph is recursively determined. The node that has the longest blocking time is output to a display for review by the database administrator. Alternatively, the database session represented by the node having the longest blocking time may be automatically eliminated. | 03-27-2014 |
20140236921 | SQL EXECUTION PLAN VERIFICATION - 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. | 08-21-2014 |
20150081669 | FULLY AUTOMATED SQL TUNING - Techniques are provided for a fully-automated process for tuning database query language statements that selects database query language statements for tuning, tunes the database query language statements and generates tuning recommendations, tests the tuning recommendations, and determines whether to implement the tuning recommendations based on the test results. The fully-automated tuning process may also automatically implement certain tuning recommendations and monitor the performance of the database query language statements for which tuning recommendations have been implemented. | 03-19-2015 |