Automatically determining an optimal database subsection
First Claim
1. A method comprising:
- storing a first schema definition describing a first plurality of database objects;
storing a first workload description describing access to the first plurality of database objects at a first database system, wherein the first workload description comprises information about execution of queries against at least a portion of the first plurality of database objects;
generating a second schema definition describing a second plurality of database objects,wherein each database object of the second plurality of database objects is a counter-part to one or more database objects of the first plurality of database objects and is compatible with a second database system;
wherein the generating of the second schema definition includes, based on the first workload description and the first schema definition, selecting a subset of database objects to translate to a particular form that is described by said second schema definition and that is compatible with the second database system, wherein the subset of database objects belong to said first plurality of database objects.
2 Assignments
0 Petitions
Accused Products
Abstract
A method, apparatus, and system for automatically determining an optimal database subsection is provided. A database subsection is selected to optimize certain benefits when the database subsection is translated, transferred, and cached on an alternative database system, which may utilize a different technology or database engine that provides certain performance benefits compared to the original database system. Algorithms such as multi-path greedy selection and/or dynamic programming may provide optimal or near-optimal results. A host for the alternative database server may be shared with or otherwise located in close physical proximity to improve latency for a database application or client layer. Once the database subsection analysis is completed, a report may be generated and presented to the user, and an implementation script may also be created to automatically configure a client host to function as a cache or replacement system according various cache size configurations described in the report.
-
Citations
39 Claims
-
1. A method comprising:
-
storing a first schema definition describing a first plurality of database objects; storing a first workload description describing access to the first plurality of database objects at a first database system, wherein the first workload description comprises information about execution of queries against at least a portion of the first plurality of database objects; generating a second schema definition describing a second plurality of database objects, wherein each database object of the second plurality of database objects is a counter-part to one or more database objects of the first plurality of database objects and is compatible with a second database system; wherein the generating of the second schema definition includes, based on the first workload description and the first schema definition, selecting a subset of database objects to translate to a particular form that is described by said second schema definition and that is compatible with the second database system, wherein the subset of database objects belong to said first plurality of database objects. - View Dependent Claims (2, 3, 4, 5, 6, 14, 15, 16, 24)
-
-
7. A method comprising:
-
storing a first schema definition describing a first plurality of database objects; storing a first workload description describing access to the first plurality of database objects at a first database system; generating a second schema definition describing a second plurality of database objects, wherein each database object of the second plurality of database objects is a counter-part to one or more database objects of the first plurality of database objects; wherein the generating of the second schema definition includes, based on the first workload description and the first schema definition, selecting particular database objects in the first plurality of database objects, wherein one or more second database objects in the second plurality of database objects are counter-parts to the particular database objects; wherein the first workload description comprises a plurality of queries, and wherein the selecting of the particular database objects comprises; arranging the plurality of queries into a plurality of hierarchies, wherein; each hierarchy includes a query set having a root query on a parent database object set, wherein all queries in the query set are on database objects within the parent database object set; each hierarchy is associated with a value reflecting an execution time reduction when comparing an execution time of the query set on the first database system to an execution time of a corresponding query set on a second database system, wherein the corresponding query set is on a corresponding set of database objects in the second plurality of database objects that are counter-parts to the parent database object set; determining an optimized hierarchy set from the plurality of hierarchies based on maximizing a total value of the optimized hierarchy set when the particular database objects are selected to include the parent database object set from each of the root queries of the optimized hierarchy set. - View Dependent Claims (8, 9, 10, 11, 12, 13, 21, 22, 23)
-
-
17. A non-transitory computer-readable medium storing one or more sequences of instructions which, when executed by one or more processors, cause:
-
storing a first schema definition describing a first plurality of database objects; storing a first workload description describing access to the first plurality of database objects at a first database system, wherein the first workload description comprises information about execution of queries against at least a portion of the first plurality of database objects; generating a second schema definition describing a second plurality of database objects, wherein each database object of the second plurality of database objects is a counter-part to one or more database objects of the first plurality of database objects and is compatible with a second database system; wherein the generating of the second schema definition includes, based on the first workload description and the first schema definition, selecting a subset of database objects to translate to a particular form that is described by said second schema definition and that is compatible with the second database system, wherein the subset of database objects belong to said first plurality of database objects. - View Dependent Claims (18, 25, 33, 34, 35, 39)
-
-
19. A database advisor system comprising one or more computing devices configured to:
-
store a first schema definition describing a first plurality of database objects; store a first workload description describing access to the first plurality of database objects at a first database system, wherein the first workload description comprises information about execution of queries against at least a portion of the first plurality of database objects; generate a second schema definition describing a second plurality of database objects, wherein each database object of the second plurality of database objects is a counter-part to one or more database objects of the first plurality of database objects and is compatible with a second database system; wherein the generating of the second schema definition includes, based on the first workload description and the first schema definition, selecting a subset of database objects to translate to a particular form that is described by said second schema definition and that is compatible with the second database system, wherein the subset of database objects belong to said first plurality of database objects. - View Dependent Claims (20)
-
-
26. A non-transitory computer-readable medium storing one or more sequences of instructions which, when executed by one or more processors, cause:
-
storing a first schema definition describing a first plurality of database objects; storing a first workload description describing access to the first plurality of database objects at a first database system; generating a second schema definition describing a second plurality of database objects, wherein each database object of the second plurality of database objects is a counter-part to one or more database objects of the first plurality of database objects; wherein the generating of the second schema definition includes, based on the first workload description and the first schema definition, selecting particular database objects in the first plurality of database objects, wherein one or more second database objects in the second plurality of database objects are counter-parts to the particular database objects; wherein the first workload description comprises a plurality of queries, and wherein the selecting of the particular database objects comprises; arranging the plurality of queries into a plurality of hierarchies, wherein; each hierarchy includes a query set having a root query on a parent database object set, wherein all queries in the query set are on database objects within the parent database object set; each hierarchy is associated with a value reflecting an execution time reduction when comparing an execution time of the query set on the first database system to an execution time of a corresponding query set on a second database system, wherein the corresponding query set is on a corresponding set of database objects in the second plurality of database objects that are counter-parts to the parent database object set; determining an optimized hierarchy set from the plurality of hierarchies based on maximizing a total value of the optimized hierarchy set when the particular database objects are selected to include the parent database object set from each of the root queries of the optimized hierarchy set. - View Dependent Claims (27, 28, 29, 30, 31, 32, 36, 37, 38)
-
Specification