Fully automated SQL tuning
First Claim
Patent Images
1. A computer-implemented method comprising steps of:
- from a workload set, identifying a plurality of database query language statements for automatic tuning, wherein the workload set comprises database query language statements and current performance data for the database query language statements;
executing each database query language statement from said plurality of query language statements against a database;
collecting new performance data from said executing each database query language statement, said collecting comprising measuring resource usage by said executing each database query language statement;
detecting that conditions in said database that affect executing said plurality of database query language statements changed based at least in part on comparison of the new performance data with the current performance data;
in response to the detecting, tuning a subset of database query language statements from said plurality of database query language statements, said subset of database query language statements comprising a database query language statement from said plurality of database query language statements, wherein the new performance data is different from the current performance data for the database query language statement;
wherein the tuning the subset of database query language statements comprises generating a plurality of tuning recommendations for execution of the subset of database query language statements;
testing the plurality of tuning recommendations against said database, wherein the testing the plurality of tuning recommendations comprises, for each tuning recommendation of said plurality of tuning recommendations;
executing a respective database query language statement from said subset of database query language statements with said each tuning recommendation enabled;
measuring resource usage by said executing the respective database query language statement with said each tuning recommendation enabled, wherein the resource usage comprises processor time or buffer gets; and
measuring benefits based on performance improvement of said executing the respective database query language statement with said each tuning recommendation enabled;
based on the testing, determining a subset of said plurality of tuning recommendations resulted in performance improvement that meets a specific set of criteria;
implementing the subset of said plurality of tuning recommendations; and
wherein the steps are automatically performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
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.
-
Citations
30 Claims
-
1. A computer-implemented method comprising steps of:
-
from a workload set, identifying a plurality of database query language statements for automatic tuning, wherein the workload set comprises database query language statements and current performance data for the database query language statements; executing each database query language statement from said plurality of query language statements against a database; collecting new performance data from said executing each database query language statement, said collecting comprising measuring resource usage by said executing each database query language statement; detecting that conditions in said database that affect executing said plurality of database query language statements changed based at least in part on comparison of the new performance data with the current performance data; in response to the detecting, tuning a subset of database query language statements from said plurality of database query language statements, said subset of database query language statements comprising a database query language statement from said plurality of database query language statements, wherein the new performance data is different from the current performance data for the database query language statement; wherein the tuning the subset of database query language statements comprises generating a plurality of tuning recommendations for execution of the subset of database query language statements; testing the plurality of tuning recommendations against said database, wherein the testing the plurality of tuning recommendations comprises, for each tuning recommendation of said plurality of tuning recommendations; executing a respective database query language statement from said subset of database query language statements with said each tuning recommendation enabled; measuring resource usage by said executing the respective database query language statement with said each tuning recommendation enabled, wherein the resource usage comprises processor time or buffer gets; and measuring benefits based on performance improvement of said executing the respective database query language statement with said each tuning recommendation enabled; based on the testing, determining a subset of said plurality of tuning recommendations resulted in performance improvement that meets a specific set of criteria; implementing the subset of said plurality of tuning recommendations; and wherein the steps are automatically performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer-readable non-transitory storage medium storing instructions, wherein the instructions include instructions which, when executed by one or more processors, cause the one or more processors to perform steps of:
-
from a workload set, identifying a plurality of database query language statements for automatic tuning, wherein the workload set comprises database query language statements and current performance data for the database query language statements; executing each database query language statement from said plurality of query language statements against a database; collecting new performance data from said executing each database query language statement, said collecting comprising measuring resource usage by said executing each database query language statement; detecting that conditions in said database that affect executing said plurality of database query language statements changed based at least in part on comparison of the new performance data with the current performance data; in response to the detecting, tuning a subset of database query language statements from said plurality of database query language statements, said subset of database query language statements comprising a database query language statement from said plurality of database query language statements, wherein the new performance data is different from the current performance data for the database query language statement; wherein the tuning the subset of database query language statements comprises generating a plurality of tuning recommendations for execution of the subset of database query language statements; testing the plurality of tuning recommendations against said database, wherein the testing the plurality of tuning recommendations comprises, for each tuning recommendation of said plurality of tuning recommendations; executing a respective database query language statement from said subset of database query language statements with said each tuning recommendation enabled; measuring resource usage by said executing the respective database query language statement with said each tuning recommendation enabled, wherein the resource usage comprises processor time or buffer gets; and measuring benefits based on performance improvement of said executing the respective database query language statement with said each tuning recommendation enabled; based on the testing, determining a subset of said plurality of tuning recommendations resulted in performance improvement that meets a specific set of criteria; and implementing the subset of said plurality of tuning recommendations. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
Specification