Recherche Images Maps Play YouTube Actualités Gmail Drive Plus »
Connexion
Les utilisateurs de lecteurs d'écran peuvent cliquer sur ce lien pour activer le mode d'accessibilité. Celui-ci propose les mêmes fonctionnalités principales, mais il est optimisé pour votre lecteur d'écran.

Brevets

  1. Recherche avancée dans les brevets
Numéro de publicationUS20050177557 A1
Type de publicationDemande
Numéro de demandeUS 10/936,779
Date de publication11 août 2005
Date de dépôt7 sept. 2004
Date de priorité6 sept. 2003
Autre référence de publicationUS7634456, US7664730, US7664778, US7739263, US7747606, US7805411, US8825629, US8983934, US20050097091, US20050119999, US20050120000, US20050120001, US20050125393, US20050125398, US20050125427, US20050125452, US20050138015, US20050187917
Numéro de publication10936779, 936779, US 2005/0177557 A1, US 2005/177557 A1, US 20050177557 A1, US 20050177557A1, US 2005177557 A1, US 2005177557A1, US-A1-20050177557, US-A1-2005177557, US2005/0177557A1, US2005/177557A1, US20050177557 A1, US20050177557A1, US2005177557 A1, US2005177557A1
InventeursMohamed Ziauddin, Benoit Dageville, Khaled Yagoub, Mohamed Zait
Cessionnaire d'origineOracle International Corporation
Exporter la citationBiBTeX, EndNote, RefMan
Liens externes: USPTO, Cession USPTO, Espacenet
Automatic prevention of run-away query execution
US 20050177557 A1
Résumé
A run-away query execution is automatically identified by a background process that periodically looks at each of the currently executing queries and compares the current execution time with the execution time estimated by the optimizer. Each query execution having a negative execution time difference can be automatically identified as a run-away query execution. The query execution plans that result in run-away executions can then be automatically tuned to produce more efficient execution plans.
Images(5)
Previous page
Next page
Revendications(17)
1. A method comprising:
automatically identifying an executing query as having a run-away execution plan; and
automatically replacing the run-away execution plan with a tuned execution plan.
2. The method of claim 1, wherein automatically replacing comprises:
automatically generating tuning actions for the query; and
placing the tuning actions in a profile.
3. The method of claim 2, further comprising:
using the profile to revise an execution time of the run-away execution plan.
4. The method of claim 3, further comprising:
receiving the query at an optimizer;
retrieving the profile for the query from the tuning base to the optimizer; and
generating, at the optimizer the tuned execution plan for the query with the profile.
5. The method of claim 1, further comprising:
comparing an execution time of the tuned execution plan with a remaining execution time of the run-away execution plan;
determining that the execution time of the tuned execution plan is less than the remaining execution time of the run-away execution plan; and
executing the tuned execution plan.
6. The method of claim 1, wherein the query is a SQL statement.
7. An apparatus comprising:
means for automatically identifying a query with a run-away execution plan; and
means for automatically replacing the run-away query plan with a tuned execution plan.
8. The apparatus of claim 7, wherein said means for automatically replacing comprises:
means for automatically generating tuning actions for the query; and
means for placing the tuning actions in a profile.
9. The apparatus of claim 8, further comprising:
means for persistently storing the profile in a tuning base.
10. The apparatus of claim 9, further comprising:
means for receiving the query at a compiler;
means for retrieving the profile for the query from the tuning base; and
means for generating the tuned execution plan for the query with the profile.
11. The apparatus of claim 7, wherein said means for automatically identifying comprises:
means for comparing an execution time of the tuned execution plan with an estimated remaining execution time of the run-away query plan; and
means for determining that the execution time of the tuned execution plan is less than the estimated remaining execution time of the run-away query plan.
12. The apparatus of claim 7, wherein the query is a SQL statement.
13. A computer readable medium storing a computer program of instructions which, when executed by a processing system, cause the system to perform a method comprising:
automatically identifying a query with a run-away execution plan; and
automatically replacing the run-away execution plan with a tuned execution plan.
14. The medium of claim 13, wherein automatically replacing comprises:
automatically generating tuning actions for the query; and
placing the tuning actions in a profile.
15. The medium of claim 14, further comprising:
persistently storing the profile in a tuning base.
16. The medium of claim 15, further comprising:
receiving the query at a compiler;
retrieving the profile for the query from the tuning base; and
generating the tuned execution plan for the query with the profile.
17. The medium of claim 13, wherein the query is a SQL statement.
Description
    CROSS-REFERENCE TO RELATED APPLICATIONS
  • [0001]
    This application claims the benefit of U.S. Provisional Application No. 60/500,490, filed Sep. 6, 2003, which is incorporated herein by reference in its entirety. This application is related to co-pending applications “SQL TUNING SETS,” Attorney Docket No. OI7036272001; “AUTO-TUNING SQL STATEMENTS,” Attorney Docket No. OI7037042001; “SQL PROFILE,” Attorney Docket No. OI7037052001; “GLOBAL HINTS,” Attorney Docket No. OI7037062001; “SQL TUNING BASE,” Attorney Docket No. OI7037072001; “AUTOMATIC LEARNING OPTIMIZER,” Attorney Docket No. OI7037082001; “METHOD FOR INDEX TUNING OF A SQL STATEMENT, AND INDEX MERGING FOR A MULTI-STATEMENT SQL WORKLOAD, USING A COST-BASED RELATIONAL QUERY OPTIMIZER,” Attorney Docket No. OI7037102001; “SQL STRUCTURE ANALYZER,” Attorney Docket No. OI7037112001; “HIGH-LOAD SQL DRIVEN STATISTICS COLLECTION,” Attorney Docket No. OI7037122001; “AUTOMATIC SQL TUNING ADVISOR,” Attorney Docket No. OI7037132001, all of which are filed Sep. 7, 2004 and are incorporated herein by reference in their entirety.
  • FIELD OF THE INVENTION
  • [0002]
    This invention is related to the field of electronic database management.
  • BACKGROUND
  • [0003]
    The generation of optimal execution plans is critical to the performance of applications. For example, a single SQL statement with very poor performance can bring an application down to its knees. Sometimes a poorly performing SQL statement is due to user error, such as a blind query issued with without filtering conditions that would have reduced the amount of data processed. Other times the SQL statement is well formed, but the associated execution plan that is generated by the optimizer is suboptimal.
  • [0004]
    The suboptimal plan results in a run-away execution of the query. In other words, the plan, when executed, causes a SQL statement to run for a long time with enormous use of system resources. The problem of fixing the execution plan is usually addressed through a manual SQL tuning process. This process involves a tuning expert analyzing the SQL statement as well as its associated execution plan, then determining that the problem lies in the execution plan and not in the way the SQL statement is used (for example, an accidental use of a Cartesian join by not joining one of the tables to any of the other tables in the query). The manual SQL analysis process is a time-consuming task.
  • [0005]
    After this analysis, the expert performs a manual SQL tuning process to influence the optimizer to generate a good plan. This involves the tuning expert adding one or more tuning actions to the statement. These actions may be to identify and collect missing statistics and refresh stale statistics, change the value of some configuration parameter which directly affects the plan generation methodology of the optimizer, add one or more hints to the SQL statement which will give the directives to the optimizer in coming up with the right plan, create a new access path (such as an index) or modify an existing one to help avoid large scans of data. The manual SQL tuning process is also a time-consuming and complex task.
  • [0006]
    Many vendors have addressed the problem of run-away query execution by using a query governor control mechanism. The query governor can be either reactive or proactive. In a reactive mode, an execution-time threshold is set to abort any query whose cumulative execution time exceeds to threshold. In a proactive mode, an optimized-estimated-time threshold is set which is applied to the time optimizer has estimated for the query to run. Any query having an estimated run-time that exceeds the threshold is never run. With either of these methods, there is no attempt made to look at the root cause of the problem.
  • [0007]
    Some vendors have used the idea of setting execution-time thresholds at various places in the execution plan to detect a case of run-away query execution. When a threshold is crossed during query execution, the run is aborted and the query sent back to the optimizer for re-optimization. But this method suffers from two drawbacks: setting of the thresholds and monitoring them at runtime incurs overhead, which can be significant and undesirable especially for light-weight queries, and the method of aborting a run and re-optimizing a query can be quite disruptive, especially if the run is aborted right before it was about to complete.
  • SUMMARY
  • [0008]
    A run-away query execution is automatically identified by a background process that periodically looks at each of the currently executing queries and compares the current execution time with the execution time estimated by the optimizer. Each query execution having a negative execution time difference can be automatically identified as a run-away query execution. The query execution plans that result in run-away executions can then be automatically tuned to produce more efficient execution plans.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • [0009]
    FIG. 1 shows an example of a method for performing automatic prevention of run-away query execution.
  • [0010]
    FIG. 2 shows example of a system for automatic prevention of run-away queries.
  • [0011]
    FIG. 3 represents an illustration of the prevention process.
  • [0012]
    FIG. 4 is a block diagram of a computer system suitable for implementing an embodiment of automatic run-away query prevention.
  • DETAILED DESCRIPTION
  • [0000]
    Overview
  • [0013]
    The embodiments of the invention are described using the term “SQL”, however, the invention is not limited to just this exact database query language, and indeed may be used in conjunction with other database query languages and constructs.
  • [0014]
    The automatic performance monitoring of query executions identifies run-away query executions, then performs a re-optimization for the corresponding execution plans in a background process. The automatic prevention of run-away query executions may abort a current execution of a query run if the automatic process has produced an improved plan in the background, and further, has determined a benefit to aborting the current execution and performing an execution of the new plan.
  • [0015]
    This process can be implemented by an automatic SQL tuning optimizer and a SQL tuning base. In one embodiment, the run-away query execution is identified by a background process that periodically looks at each of the currently executing queries and compares the time spent in executing it so far (current-time) vs. the time the optimizer has estimated the execution to take (estimate-time). The top N queries with the largest negative difference (estimate-time−current-time) may be selected as run-away executions. An alternate method of identifying run-away query executions can be based on the current-time, that is, the process can select the top N queries with the longest current execution time as run-away query executions.
  • [0016]
    The automatic tuning optimizer (ATO), in a background process, then optimizes the execution plan for each query having a run-away execution by performing various analyses of the corresponding SQL statement, such as automatic identification and correction of inaccurate statistics, cardinality estimates, and cost estimates related to the statement, for example. If the execution plan built by the ATO is different from the one that is currently executing, the ATO can estimate how much more time the current plan execution is going to take to complete (remaining-time), as well as estimate how much time the new plan will take to execute (new-time). If the new-time is less than the remaining-time then the current plan run may be aborted and replaced with the new plan.
  • [0017]
    Since the ATO uses validated estimates of the cost, selectivity and cardinality, it can compute the total execution time of the new plan much more accurately. Similarly, it can regenerate the original run-away plan that is currently executing with validated estimates to compute its remaining execution time. Because the identification of run-away query executions, and the automatic generation of improved plans for the corresponding queries are performed by the ATO in the background, this automatic process is transparent to the database user.
  • [0000]
    Automatic Identification and Tuning of Run-Away Execution Plans
  • [0018]
    The automatic prevention of run-away query executions is performed by a process as shown in FIG. 1. A query execution plan is generated for an SQL statement by a query optimizer, 110. The execution plan is executed by an execution engine, 120. The executing plan is monitored, 130, to detect that the plan is a run-away, or sub-optimal, execution plan. For example, in addition to generating the execution plan, the query optimizer can also estimate the amount of time that the execution engine will spend executing the plan. If the actual execution time exceeds the estimated time, then the plan is potentially a run-away plan. Alternatively, the amount of execution time can be compared to a threshold time, such as two hours for example. If the execution plan is still running after two hours, then the plan may be a run-away plan. The potential run-away plan is further analyzed to determine if the plan actually is a run-away plan, 140. For example, a profile for the SQL statement can be generated to correct or adjust errors in statistics and estimates associated with the plan, and to determine appropriate parameter settings for the statement.
  • [0019]
    Then, a new execution plan, along with a time estimate for executing the new plan, can be generated using the profile. Also, a revised estimate of the execution time of the run-away execution plan is generated using the profile, 150. If the new plan can be executed faster than the currently executing run-away plan, then the current plan is identified as a run-away plan. A second comparison of execution times is performed to determine whether to abort the current execution of the run-away plan and executing the new plan, or to allow the run-away plan to run to completion, 160. If the remaining execution time of the run-away plan is less than the execution time of the new plan, then the current plan is allowed to finish. If the execution time of the new plan is less than the remaining execution time of the currently executing run-away plan, then the run-away plan is aborted and the new plan is executed.
  • [0000]
    Automatic Prevention Architecture
  • [0020]
    An example of a system 200 for automatic prevention of run-away queries is shown in FIG. 2. A query optimizer, 210, receives a SQL statement, and generates an execution plan for the statement, which is executed by execution engine 220. An automatic performance monitor 230 identifies a potential run-away execution plan by observing the elapsed execution time of the plan, for example. The corresponding SQL statement is then input into an automatic tuning optimizer 240, which generates a profile 250 for the SQL statement. The profile can contain information related to missing or stale statistics. The profile can also include one or more tuning actions that can be used by an optimizer to generate an execution plan for the statement. The profile and the statement are received by the query optimizer 210, which generates a new execution plan, along with an estimated amount of time for executing the plan, based on the profile. The query optimizer also revises the estimated amount of time for executing the current plan using the profile. The time estimates are analyzed by a cost based plan selector, 260, which can determine that the current plan is a run-away plan if the corresponding execution time estimate is longer than that of the new plan. The plan selector 260 can also cause the execution engine 220 to abort the run-away plan and execute the new plan if the remaining amount of time to execute the run-away plan is more than the amount of time to execute the new plan. Otherwise, the execution engine continues to execute the current plan. In either case, query results 270 are returned by the system.
  • [0000]
    SQL Profiling
  • [0021]
    A profiling process is performed by the automatic tuning optimizer to produce a set of tuning actions in generating an execution plan for a SQL statement. The profiling process verifies that statistics are not missing or stale, validates the estimates made by the query optimizer for intermediate results, and determines the correct optimizer settings. Tuning actions are created based on the results of the profiling process, to provide missing statistics for an object, validate intermediate results estimate, and select the best setting for optimizer parameters. Then, the Automatic Tuning Optimizer builds a SQL Profile for these tuning actions.
  • [0022]
    The statistics analysis verifies that statistics are not missing or stale. The query optimizer logs the types of statistics that are actually used during the plan generation process, in preparation for the verification process. For example, when a SQL statement contains an equality predicate, it logs the column number of distinct values, whereas for a range predicate it logs the minimum and maximum column values information. Once the logging of used statistics is complete, the query optimizer checks if each of these statistics is available on the associated query object (i.e. table, index or materialized view). If the statistic is available then it verifies whether the statistic is up-to-date. To verify the accuracy of a statistic, it samples data from the corresponding query object and compares it to the statistic. If a statistic is found to be missing, the query optimizer will generate auxiliary information to supply the missing statistic. If a statistic is available but stale, it will generate auxiliary information to compensate for staleness.
  • [0023]
    One feature of a cost-based query optimizer is its ability to derive the size of intermediate results. For example, the optimizer estimates the number of rows from applying table filters when deciding which join algorithm to pick. One factor that causes the optimizer to generate a sub-optimal plan is wrong estimate of intermediate result sizes. Wrong estimates can be caused by a combination of the following factors: The predicate (filter or join) is too complex to use standard statistical methods to derive the number of rows (e.g., the columns are compared thru a complex expression like (a*b)/c=10), The data distribution of the column used in the predicate is skewed, and there is no histogram, leading the optimizer to assume a uniform data distribution, or The data in column values is correlated but the optimizer is not aware of it, causing the optimizer to assume data independence. During SQL Profiling, the Automatic Tuning Optimizer validates the estimates made by the query optimizer, and compensates for missing information or wrong estimates. The validation process may involve running part of the query on a sample of the input data.
  • [0024]
    The Automatic Tuning Optimizer uses the past execution history of a SQL statement to determine the correct optimizer settings. For example, if the execution history shows that a SQL statement is only partially executed in the majority of times then the appropriate setting will be to optimize it for first n rows, where n is derived from the execution history. This constitutes a customized parameter setting for the SQL statement. (Note that past execution statistics are available in the Automatic Workload Repository (AWR) presented later).
  • [0025]
    The tuning information produced from the statistics, estimates, and settings analyses is stored in a SQL Profile. Once a SQL Profile is created, it is used in conjunction with the existing statistics by the compiler to produce a well-tuned plan for the corresponding SQL statement. FIG. 3 shows the process flow of the creation and use of a SQL Profile. The process can have two separate phases: an Automatic SQL Tuning phase, and a regular optimization phase. During the Automatic SQL Tuning phase, a SQL statement with a run-away execution 310 is selected as an input to the SQL Tuning Advisor, which invokes the Automatic Tuning Optimizer to generate tuning actions, 320. The Automatic Tuning Optimizer generates a SQL Profile, along with other recommendations, 330. After a SQL Profile is built, it is stored in the data dictionary, once it is accepted by the user, 340. Later, during the regular optimization phase, a user issues the same SQL statement, 350. The query optimizer finds the matching SQL profiles from the data dictionary, 360, and uses the SQL profile information to build a well-tuned execution plan, 370. The use of SQL Profiles is completely transparent to the user. The creation and use of a SQL Profile doesn't require changes to the application source code. Therefore, SQL profiling provides a way to tune SQL statements issued from packaged applications where the users have no access to or control over the application source code.
  • [0026]
    The automatic prevention of run-away queries can identify a plan that is a potential run-away plan. The process analyzes the SQL statement for the plan to determine if the potential run-away plan is caused by a bad plan. For example, the process can create a profile for the statement, use the profile to generate a new plan, and compare the new plan to the old plan to determine if the old plan is a run-away plan. The process can also use the profile to determine whether the run-away plan is close to finishing, and therefore should run to completion, or if the run-away plan should be aborted and the new plan should be executed in its place. Thus, the automatic prevention of run-away query executions eliminates the overhead incurred by conventional methods, such as monitoring of thresholds and aborting a run just before it finishes.
  • [0027]
    FIG. 4 is a block diagram of a computer system 400 suitable for implementing an embodiment of automatic prevention of run-away query execution. Computer system 400 includes a bus 402 or other communication mechanism for communicating information, which interconnects subsystems and devices, such as processor 404, system memory 406 (e.g., RAM), static storage device 408 (e.g., ROM), disk drive 410 (e.g., magnetic or optical), communication interface 412 (e.g., modem or ethernet card), display 414 (e.g., CRT or LCD), input device 416 (e.g., keyboard), and cursor control 418 (e.g., mouse or trackball).
  • [0028]
    According to one embodiment of the invention, computer system 400 performs specific operations by processor 404 executing one or more sequences of one or more instructions contained in system memory 406. Such instructions may be read into system memory 406 from another computer readable medium, such as static storage device 408 or disk drive 410. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention.
  • [0029]
    The term “computer readable medium” as used herein refers to any medium that participates in providing instructions to processor 404 for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks, such as disk drive 410. Volatile media includes dynamic memory, such as system memory 406. Transmission media includes coaxial cables, copper wire, and fiber optics, including wires that comprise bus 402. Transmission media can also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
  • [0030]
    Common forms of computer readable media includes, for example, floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, carrier wave, or any other medium from which a computer can read.
  • [0031]
    In an embodiment of the invention, execution of the sequences of instructions to practice the invention is performed by a single computer system 400. According to other embodiments of the invention, two or more computer systems 400 coupled by communication link 420 (e.g., LAN, PTSN, or wireless network) may perform the sequence of instructions to practice the invention in coordination with one another. Computer system 400 may transmit and receive messages, data, and instructions, including program, i.e., application code, through communication link 420 and communication interface 412. Received program code may be executed by processor 404 as it is received, and/or stored in disk drive 410, or other non-volatile storage for later execution.
  • [0032]
    In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than restrictive sense.
Citations de brevets
Brevet cité Date de dépôt Date de publication Déposant Titre
US5140685 *16 sept. 199118 août 1992Unisys CorporationRecord lock processing for multiprocessing data system with majority voting
US5260697 *13 nov. 19909 nov. 1993Wang Laboratories, Inc.Computer with separate display plane and user interface processor
US5398183 *10 déc. 199014 mars 1995Biomedical Systems CorporationHolter ECG report generating system
US5408653 *15 avr. 199218 avr. 1995International Business Machines CorporationEfficient data base access using a shared electronic store in a multi-system environment with shared disks
US5481712 *6 avr. 19932 janv. 1996Cognex CorporationMethod and apparatus for interactively generating a computer program for machine vision analysis of an object
US5504917 *14 janv. 19942 avr. 1996National Instruments CorporationMethod and apparatus for providing picture generation and control features in a graphical data flow environment
US5544355 *14 juin 19936 août 1996Hewlett-Packard CompanyMethod and apparatus for query optimization in a relational database system having foreign functions
US5577240 *7 déc. 199419 nov. 1996Xerox CorporationIdentification of stable writes in weakly consistent replicated databases while providing access to all writes in such a database
US5634134 *19 juin 199227 mai 1997Hitachi, Ltd.Method and apparatus for determining character and character mode for multi-lingual keyboard based on input characters
US5737601 *16 janv. 19977 avr. 1998Oracle CorporationMethod and apparatus for peer-to-peer data replication including handling exceptional occurrences
US5761660 *1 août 19962 juin 1998International Business Machines CorporationComputer program product and program storage device for database access using a shared electronic store in a multi-system environment having shared disks
US5765159 *21 mai 19979 juin 1998International Business Machines CorporationSystem and method for generating an optimized set of relational queries for fetching data from a relational database management system in response to object queries received from an object oriented environment
US5781912 *19 déc. 199614 juil. 1998Oracle CorporationRecoverable data replication between source site and destination site without distributed transactions
US5794229 *11 déc. 199511 août 1998Sybase, Inc.Database system with methodology for storing a database table by vertically partitioning all columns of the table
US5806076 *29 oct. 19968 sept. 1998Oracle CorporationTracking dependencies between transactions in a database
US5860069 *11 avr. 199712 janv. 1999Bmc Software, Inc.Method of efficient collection of SQL performance measures
US5870760 *19 déc. 19969 févr. 1999Oracle CorporationDequeuing using queue batch numbers
US5870761 *19 déc. 19969 févr. 1999Oracle CorporationParallel queue propagation
US5940826 *7 janv. 199717 août 1999Unisys CorporationDual XPCS for disaster recovery in multi-host computer complexes
US5991765 *6 mai 199723 nov. 1999Birdstep Technology AsSystem and method for storing and manipulating data in an information handling system
US6052694 *18 mars 199818 avr. 2000Electronic Data Systems CorporationMethod and apparatus for logging database performance characteristics
US6122640 *22 sept. 199819 sept. 2000Platinum Technology Ip, Inc.Method and apparatus for reorganizing an active DBMS table
US6195653 *13 janv. 200027 févr. 2001International Business Machines CorporationSystem and method for selectively preparing customized reports of query explain data
US6275818 *5 nov. 199814 août 2001International Business Machines CorporationCost based optimization of decision support queries using transient views
US6321218 *24 févr. 199920 nov. 2001Oracle CorporationAutomatically determining data that is best suited for index tuning
US6330552 *28 sept. 199811 déc. 2001CompaqDatabase query cost model optimizer
US6349310 *6 juil. 199919 févr. 2002Compaq Computer CorporationDatabase management system and method for accessing rows in a partitioned table
US6353818 *19 août 19985 mars 2002Ncr CorporationPlan-per-tuple optimizing of database queries with user-defined functions
US6356889 *30 sept. 199912 mars 2002International Business Machines CorporationMethod for determining optimal database materializations using a query optimizer
US6374257 *16 juin 199916 avr. 2002Oracle CorporationMethod and system for removing ambiguities in a shared database command
US6397207 *2 nov. 200028 mai 2002International Business Machines Corp.System and method for selectively preparing customized reports of query explain data
US6397227 *6 juil. 199928 mai 2002Compaq Computer CorporationDatabase management system and method for updating specified tuple fields upon transaction rollback
US6434545 *16 déc. 199813 août 2002Microsoft CorporationGraphical query analyzer
US6434568 *31 août 199913 août 2002Accenture LlpInformation services patterns in a netcentric environment
US6442748 *31 août 199927 août 2002Accenture LlpSystem, method and article of manufacture for a persistent state and persistent object separator in an information services patterns environment
US6460027 *14 sept. 19981 oct. 2002International Business Machines CorporationAutomatic recognition and rerouting of queries for optimal performance
US6460043 *26 févr. 19991 oct. 2002Microsoft CorporationMethod and apparatus for operating on data with a conceptual data manipulation language
US6493701 *5 juil. 200110 déc. 2002Sybase, Inc.Database system with methodogy providing faster N-ary nested loop joins
US6496850 *31 août 199917 déc. 2002Accenture LlpClean-up of orphaned server contexts
US6513029 *1 août 200028 janv. 2003Microsoft CorporationInteresting table-subset selection for database workload materialized view selection
US6529901 *25 févr. 20004 mars 2003Microsoft CorporationAutomating statistics management for query optimizers
US6560606 *4 mai 19996 mai 2003MetratechMethod and apparatus for processing data with multiple processing modules and associated counters
US6615223 *29 févr. 20002 sept. 2003Oracle International CorporationMethod and system for data replication
US6701345 *13 avr. 20002 mars 2004Accenture LlpProviding a notification when a plurality of users are altering similar data in a health care solution environment
US6714943 *31 janv. 200130 mars 2004Oracle International CorporationMethod and mechanism for tracking dependencies for referential integrity constrained tables
US6721724 *31 mars 200013 avr. 2004Microsoft CorporationValidating multiple execution plans for database queries
US6728719 *31 janv. 200127 avr. 2004Oracle International CorporationMethod and mechanism for dependency tracking for unique constraints
US6728720 *13 juin 200027 avr. 2004Robert Stephen Gerard LenzieIdentifying preferred indexes for databases
US6744449 *11 juin 20021 juin 2004Microsoft CorporationGraphical query analyzer
US6804672 *31 janv. 200112 oct. 2004Oracle International CorporationMethod and mechanism for dependency tracking
US6816874 *10 sept. 19999 nov. 2004International Business Machines CorporationMethod, system, and program for accessing performance data
US6839713 *12 juil. 20014 janv. 2005Advanced Micro Devices, Inc.System and software for database structure in semiconductor manufacturing and method thereof
US6865567 *19 janv. 20008 mars 2005Basantkumar John OommenMethod of generating attribute cardinality maps
US6910109 *30 sept. 199821 juin 2005Intel CorporationTracking memory page state
US6912547 *26 juin 200228 juin 2005Microsoft CorporationCompressing database workloads
US6934701 *4 janv. 200023 août 2005International Business Machines CorporationUsing a stored procedure to access index configuration data in a remote database management system
US6947927 *9 juil. 200220 sept. 2005Microsoft CorporationMethod and apparatus for exploiting statistics on query expressions for optimization
US6961931 *10 janv. 20011 nov. 2005International Business Machines CorporationDependency specification using target patterns
US6999958 *7 juin 200214 févr. 2006International Business Machines CorporationRuntime query optimization for dynamically selecting from multiple plans in a query based upon runtime-evaluated performance criterion
US7007013 *26 juil. 200228 févr. 2006International Business Machines CorporationFast computation of spatial queries in location-based services
US7031958 *6 févr. 200318 avr. 2006International Business Machines CorporationPatterned based query optimization
US7047231 *18 oct. 200216 mai 2006Software Engineering GmbhGetpage-workload based index optimizer
US20020120617 *24 juil. 200129 août 2002Fujitsu LimitedDatabase retrieving method, apparatus and storage medium thereof
US20020198867 *6 juin 200126 déc. 2002International Business Machines CorporationLearning from empirical results in query optimization
US20030018618 *15 mars 200123 janv. 2003International Business Machines CorporationRepresentation for data used in query optimization
US20030065648 *3 oct. 20013 avr. 2003International Business Machines CorporationReduce database monitor workload by employing predictive query threshold
US20030088541 *21 juin 20028 mai 2003Zilio Daniel C.Method for recommending indexes and materialized views for a database workload
US20030093408 *12 oct. 200115 mai 2003Brown Douglas P.Index selection in a database system
US20030110153 *11 déc. 200112 juin 2003Sprint Communications Company L.P.Database performance monitoring method and tool
US20030115183 *13 déc. 200119 juin 2003International Business Machines CorporationEstimation and use of access plan statistics
US20030126143 *31 mai 20023 juil. 2003Nicholas RoussopoulosDwarf cube architecture for reducing storage sizes of multidimensional data
US20030130985 *17 déc. 200210 juil. 2003Volker DriesenSystems, methods and articles of manufacture for upgrading a database with a shadow system
US20030135478 *31 mai 200217 juil. 2003Computer Associates Think, Inc.Method and system for online reorganization of databases
US20030154216 *14 févr. 200214 août 2003International Business Machines CorporationDatabase optimization apparatus and method
US20030177137 *11 juin 200218 sept. 2003Microsoft CorporationGraphical query analyzer
US20030182276 *24 févr. 200325 sept. 2003International Business Machines CorporationMethod, system, and program for performance tuning a database query
US20030187831 *29 mars 20022 oct. 2003International Business Machines CorporationDatabase query optimizer framework with dynamic strategy dispatch
US20030200537 *18 avr. 200223 oct. 2003International Business Machines CorporationApparatus and method for using database knowledge to optimize a computer program
US20030229621 *29 août 200211 déc. 2003International Business Machines CorporationApparatus and method for refreshing a database query
US20030229639 *7 juin 200211 déc. 2003International Business Machines CorporationRuntime query optimization for dynamically selecting from multiple plans in a query based upon runtime-evaluated performance criterion
US20040003004 *28 juin 20021 janv. 2004Microsoft CorporationTime-bound database tuning
US20040019587 *16 avr. 200329 janv. 2004You-Chin FuhMethod and device for processing a query in a database management system
US20040034643 *19 août 200219 févr. 2004International Business Machines CorporationSystem and method for real time statistics collection for use in the automatic management of a database system
US20040181521 *24 mars 200416 sept. 2004Simmen David E.Query optimization technique for obtaining improved cardinality estimates using statistics on pre-defined queries
US20040215626 *9 avr. 200328 oct. 2004International Business Machines CorporationMethod, system, and program for improving performance of database queries
US20050033734 *5 août 200310 févr. 2005International Business Machines CorporationPerformance prediction system with query mining
US20050097078 *31 oct. 20035 mai 2005Lohman Guy M.System, method, and computer program product for progressive query processing
US20050097091 *7 sept. 20045 mai 2005Oracle International CorporationSQL tuning base
US20050102305 *8 déc. 200412 mai 2005Microsoft CorporationCompressing database workloads
US20050119999 *7 sept. 20042 juin 2005Oracle International CorporationAutomatic learning optimizer
US20050120000 *7 sept. 20042 juin 2005Oracle International CorporationAuto-tuning SQL statements
US20050120001 *7 sept. 20042 juin 2005Oracle International CorporationSQL structure analyzer
US20050125393 *7 sept. 20049 juin 2005Oracle International CorporationSQL tuning sets
US20050125398 *7 sept. 20049 juin 2005Oracle International CorporationGlobal hints
US20050125427 *7 sept. 20049 juin 2005Oracle International CorporationAutomatic SQL tuning advisor
US20050125452 *7 sept. 20049 juin 2005Oracle International CorporationSQL profile
US20050138015 *7 sept. 200423 juin 2005Oracle International CorporationHigh load SQL driven statistics collection
US20050187917 *7 sept. 200425 août 2005Oracle International CorporationMethod for index tuning of a SQL statement, and index merging for a multi-statement SQL workload, using a cost-based relational query optimizer
US20050251523 *7 mai 200410 nov. 2005Oracle International CorporationMinimizing downtime for application changes in database systems
Référencé par
Brevet citant Date de dépôt Date de publication Déposant Titre
US7340448 *13 nov. 20034 mars 2008International Business Machines CorporationMethod, apparatus, and computer program product for implementing enhanced query governor functions
US764406317 août 20075 janv. 2010International Business Machines CorporationApparatus, system, and method for ensuring query execution plan stability in a database management system
US76647307 sept. 200416 févr. 2010Oracle International CorporationMethod and system for implementing a SQL profile
US76647787 sept. 200416 févr. 2010Oracle International CorporationSQL tuning sets
US77392637 sept. 200415 juin 2010Oracle International CorporationGlobal hints
US775722617 mars 200413 juil. 2010Oracle International CorporationMethod and mechanism for performing a rolling upgrade of distributed computer software
US777435726 nov. 200710 août 2010International Business Machines CorporationMethod, apparatus, and computer program product for implementing enhanced query governor functions
US778828514 mai 200431 août 2010Oracle International CorporationFiner grain dependency tracking for database objects
US78054117 sept. 200428 sept. 2010Oracle International CorporationAuto-tuning SQL statements
US806049521 oct. 200815 nov. 2011International Business Machines CorporationQuery execution plan efficiency in a database management system
US8122010 *31 oct. 200721 févr. 2012International Business Machines CorporationDynamic query optimization
US8285707 *8 nov. 20069 oct. 2012International Business Machines CorporationMethod of querying relational database management systems
US83357678 août 200818 déc. 2012Oracle International CorporationMaintaining and utilizing SQL execution plan histories
US8341178 *8 août 200825 déc. 2012Oracle International CorporationSQL performance analyzer
US8346761 *5 août 20041 janv. 2013International Business Machines CorporationMethod and system for data mining for automatic query optimization
US841769015 mai 20099 avr. 2013International Business Machines CorporationAutomatically avoiding unconstrained cartesian product joins
US856630730 avr. 201022 oct. 2013International Business Machines CorporationDatabase query governor with tailored thresholds
US857787131 mars 20085 nov. 2013Oracle International CorporationMethod and mechanism for out-of-the-box real-time SQL monitoring
US86009778 août 20083 déc. 2013Oracle International CorporationAutomatic recognition and capture of SQL execution plans
US87006088 août 200815 avr. 2014Oracle International CorporationSQL execution plan verification
US8775412 *8 janv. 20048 juil. 2014International Business Machines CorporationMethod and system for a self-healing query access plan
US8788532 *20 juin 201222 juil. 2014Salesforce.Com, Inc.Firewalls for securing customer data in a multi-tenant environment
US8799320 *20 juin 20125 août 2014Salesforce.Com, Inc.Firewalls for securing customer data in a multi-tenant environment
US88058522 mars 200912 août 2014International Business Machines CorporationAutomatic query execution plan management and performance stabilization for workloads
US88256297 sept. 20042 sept. 2014Oracle International CorporationMethod for index tuning of a SQL statement, and index merging for a multi-statement SQL workload, using a cost-based relational query optimizer
US884979720 févr. 201330 sept. 2014International Business Machines CorporationDatabase query governor with tailored thresholds
US8903801 *8 août 20082 déc. 2014Oracle International CorporationFully automated SQL tuning
US890380520 août 20102 déc. 2014Oracle International CorporationMethod and system for performing query optimization using a hybrid execution plan
US8938644 *3 déc. 201020 janv. 2015Teradata Us, Inc.Query execution plan revision for error recovery
US89839347 sept. 200417 mars 2015Oracle International CorporationSQL tuning base
US9158814 *30 mars 201213 oct. 2015International Business Machines CorporationObtaining partial results from a database query
US91895228 août 200817 nov. 2015Oracle International CorporationSQL execution plan baselines
US9189524 *15 mai 201417 nov. 2015International Business Machines CorporationObtaining partial results from a database query
US9195730 *4 oct. 201124 nov. 2015International Business Machines CorporationVerifying correctness of a database system via extended access paths
US9213740 *11 oct. 200715 déc. 2015Sybase, Inc.System and methodology for automatic tuning of database query optimizer
US9471631 *30 sept. 201318 oct. 2016Oracle International CorporationCreating and using data that indicates misestimates of actual costs
US9678825 *18 févr. 201413 juin 2017International Business Machines CorporationAutonomous reconfiguration of a failed user action
US972094120 nov. 20141 août 2017Oracle International CorporationFully automated SQL tuning
US972096730 sept. 20131 août 2017Oracle International CorporationAdaptive query optimization
US972760930 sept. 20138 août 2017Oracle International CorporationTriggering hard parses
US97342006 mai 201415 août 2017Oracle International CorporationIdentifying high risk database statements in changing database environments
US97407357 nov. 200722 août 2017Microsoft Technology Licensing, LlcProgramming language extensions in structured queries
US20050108188 *13 nov. 200319 mai 2005International Business Machines CorporationMethod, apparatus, and computer program product for implementing enhanced query governor functions
US20050119999 *7 sept. 20042 juin 2005Oracle International CorporationAutomatic learning optimizer
US20050154740 *8 janv. 200414 juil. 2005International Business Machines CorporationMethod and system for a self-healing query access plan
US20050192937 *26 févr. 20041 sept. 2005International Business Machines CorporationDynamic query optimization
US20050210461 *17 mars 200422 sept. 2005Oracle International CorporationMethod and mechanism for performing a rolling upgrade of distributed computer software
US20060031189 *5 août 20049 févr. 2006International Business Machines CorporationMethod and system for data mining for automatic query optimization
US20070250470 *24 avr. 200625 oct. 2007Microsoft CorporationParallelization of language-integrated collection operations
US20080052720 *31 oct. 200728 févr. 2008International Business Machines CorporationDynamic Query Optimization
US20080065590 *7 sept. 200613 mars 2008Microsoft CorporationLightweight query processing over in-memory data structures
US20080071759 *26 nov. 200720 mars 2008International Business Machines CorporationMethod, apparatus, and computer program product for implementing enhanced query governor functions
US20080109424 *8 nov. 20068 mai 2008Paul Reuben DayMethod of Querying Relational Database Management Systems
US20080178079 *18 janv. 200724 juil. 2008International Business Machines CorporationApparatus and method for a graphical user interface to facilitate tuning sql statements
US20090049012 *17 août 200719 févr. 2009International Business Machines CorporationApparatus, system, and method for ensuring query execution plan stability in a database management system
US20090077016 *8 août 200819 mars 2009Oracle International CorporationFully automated sql tuning
US20090077017 *8 août 200819 mars 2009Oracle International CorporationSql performance analyzer
US20090094191 *8 oct. 20079 avr. 2009Microsoft CorporationExploiting execution feedback for optimizing choice of access methods
US20090100004 *11 oct. 200716 avr. 2009Sybase, Inc.System And Methodology For Automatic Tuning Of Database Query Optimizer
US20090106219 *8 août 200823 avr. 2009Peter BelknapSQL Execution Plan Verification
US20090106306 *8 août 200823 avr. 2009Dinesh DasSQL Execution Plan Baselines
US20090106321 *8 août 200823 avr. 2009Dinesh DasMaintaining and Utilizing SQL Execution Plan Histories
US20090248621 *31 mars 20081 oct. 2009Benoit DagevilleMethod and mechanism for out-of-the-box real-time sql monitoring
US20090271360 *25 avr. 200829 oct. 2009Bestgen Robert JAssigning Plan Volatility Scores to Control Reoptimization Frequency and Number of Stored Reoptimization Plans
US20100114868 *21 oct. 20086 mai 2010International Business Machines CorporationQuery execution plan efficiency in a database management system
US20100223253 *2 mars 20092 sept. 2010International Business Machines CorporationAutomatic query execution plan management and performance stabilization for workloads
US20100293161 *15 mai 200918 nov. 2010International Business Machines CorporationAutomatically avoiding unconstrained cartesian product joins
US20120144234 *3 déc. 20107 juin 2012Teradata Us, Inc.Automatic error recovery mechanism for a database system
US20120173498 *4 oct. 20115 juil. 2012International Business Machines CorporationVerifying Correctness of a Database System
US20120215764 *17 févr. 201123 août 2012International Business Machines CorporationEnergy usage and performance query governor
US20120260341 *20 juin 201211 oct. 2012Salesforce.Com, Inc.Firewalls for securing customer data in a multi-tenant environment
US20130262436 *30 mars 20123 oct. 2013International Business Machines CorporationObtaining partial results from a database query
US20140095474 *30 sept. 20133 avr. 2014Oracle International CorporationCreating and using data that indicates misestimates of actual costs
US20140250103 *15 mai 20144 sept. 2014International Business Machines CorporationObtaining partial results from a database query
US20150234701 *18 févr. 201420 août 2015International Business Machines CorporationAutonomous reconfiguration of a failed user action
US20160196249 *3 janv. 20157 juil. 2016International Business Machines CorporationReprocess Problematic Sections of Input Documents
US20160224688 *3 févr. 20154 août 2016International Business Machines CorporationForecasting query access plan obsolescence
Classifications
Classification aux États-Unis1/1, 707/999.003
Classification internationaleG06F17/00, G06F17/30, G06F7/00
Classification coopérativeG06F17/30306, Y10S707/99944, G06F17/30474, Y10S707/99932, Y10S707/99934
Classification européenneG06F17/30S4P3T7, G06F17/30S1T
Événements juridiques
DateCodeÉvénementDescription
1 févr. 2005ASAssignment
Owner name: ORACLE INTERNATIONAL CORPORATION, CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ZIAUDDIN, MOHAMED;DAGEVILLE, BENOIT;YAGOUB, KHALED;AND OTHERS;REEL/FRAME:015644/0930;SIGNING DATES FROM 20041227 TO 20050110