摘要:
A system and method for optimizing a database query with improved performance enhancements is herein disclosed. The database query consists of one or more logical expressions. Through the repeated application of one or more rules, the logical expressions are transformed into physical expressions and in some cases, execution plans that implement the database query. Each expression has associated with it a set of group attributes that specifies its characteristic inputs and outputs and a cost that estimates the computational expense for executing the expression. The group attributes are used to categorize similar expressions into groups that are stored in a search data structure. They are also used to track duplicate expressions. The cost associated with an expression is used to guide the search process to consider those expressions that will produce low cost plans. The cost is estimated in accordance with a six-fold criteria with each criterion weighted to account for the context of the expression and the application's particular computing environment. The query optimizer is rule-based including transformation and implementation rules that are used to perform transformations on the logical expressions in a subproblem in order to produce a plan. A OnceGuidance guidance method is used to select a set of rules in certain cases that prevent the regeneration of an existing expression.
摘要:
A system and method for optimizing a database query is herein disclosed. The system consists of a search engine and a database implementor that determines an optimal plan for executing a SQL query. The SQL query is represented as a query tree consisting of a number of nested expressions. The search engine generates a number of plans from which an optimal plan is selected. Plans are generated through the application of a set of rules consisting of implementation and transformation rules. Implementation rules are used to obtain plans. Transformation rules are used to determine equivalent expressions. A plan for the query tree entails finding plans for each expression within the tree where each plan is generated in accordance with a prescribed set of rules. The database implementor selects the set of rules such that more promising plans are generated rather than generating all possible plans. In a preferred embodiment of the invention, multiple passes are made by the search engine in order to determine the optimal plan. In a first pass, implementation rules are used in order to generate a first plan having a cost that is used as a threshold when generating for additional plans. In each subsequent pass, a set of implementation and transformation rules is used to generate one or more plans whose cost does not exceed the threshold. An optimal plan is selected from the generated plans as the one having the lowest cost.
摘要:
A system and method for optimizing a database query with improved performance enhancements is herein disclosed. The database query consists of one or more logical expressions. Through the repeated application of one or more rules, the logical expressions are transformed into execution plans. The query optimizer partitions the database query into one or more subproblems with each subproblem consisting of one or more logical expressions. A plan is obtained for each subproblem with the plan for the database query including the plans for each subproblem. The query optimizer is cost-based and uses rules including transformation and implementation rules that are used to perform transformations on the logical expressions in a subproblem in order to produce a plan. The rules are classified into context-free and context-sensitive in order to avoid generating duplicate expressions. Context-free rules are applied once for each logical expression and context-sensitive rules are applied once for each logical expression for a particular optimization goal. In a preferred embodiment, the query optimizer performs several optimization passes over the database query in order to obtain an optimal plan. For each pass, if no optimal plan exists for the requested optimization goal, existing plans having the same optimization goal are utilized with each input reoptimized for a more cost effective plan.
摘要:
A method for subquery elimination for a relational model database based on the SQL language running a database management system (DBMS) under the TANDEM NONSTOP (tm) operating kernel. A series of seven transformation rules are applied to eliminate nested queries in the SQL language. The method and teachings of the present invention generalizes to all types of nested subqueries in SQL, allowing for more efficient computations, allocation and maintenance of system resources.
摘要:
An SQL program executor and an SOL compiler both include options for avoiding recompilations of execution plans whenever the runtime object and the compile time object referenced by an execution plan meet predefined schema similarity criteria. Thus, recompilation is sometimes avoided even though the compile time object has been altered or the run time object is not the same object as the compile time object. To enable late binding, schema information is stored in each execution plan for each object to be accessed by the execution plan. The stored schema information is a subset of the full object schema, and includes information about all the aspects of the objects to be accessed which must remain unchanged in order for the execution plan to be operable. While executing a compiled program, the SQL executor avoids recompilations of execution plans whenever the runtime object and the compile time object referenced by an execution plan meet predefined schema similarity criteria. When a recompilation of an SQL program is required, only the execution plans which do not meet the schema similarity criteria are recompiled if the compiled program has been assigned appropriate runtime parameters. The late binding features of the SQL executor also enable a compiled program to access objects distinct from the objects referenced by the program at compile time. Similarly, the SQL compiler includes the ability to recompile only those execution plans which do not meet the schema similarity criteria and thus are inoperable.
摘要:
Various embodiments of the present invention are directed to a data store comprising Items, Elements, and Relationships. An Item is a unit of data storable in a data store and further comprises said Element and said Relationship. An Element is an instance of a type comprising one or more fields. A Relationship is a link between at least two Items. The data store further comprising a Core Schema to define a set of Core Items by which a hardware/software interface system understands and directly processes said set of Core Items in a predetermined and predictable way. The Core Items are derived (directly or indirectly) from a common single Base Item which, in turn, is a foundational Item in a Base Schema.
摘要:
Various embodiments of the present invention are directed to a storage platform comprising a database engine, a data store, an application programming interface. The data store is implemented on the database engine for storing data therein, and the data store implements a data model that supports the organization, searching, sharing, synchronization, and security of data stored in the data store. Specific types of data are described in schemas. The application programming interface enables application programs to access services and capabilities of the storage platform and to access the data described in the schemas. The storage platform supports interoperability with existing file systems, enables users and systems to synchronize data stored in different instances of the data store, and provides the ability for application programs to be notified about and to track changes made to the data in the data store.
摘要:
A buffer manager that manages blocks of memory amongst multiple levels of buffer pools. For instance, there may be a first level buffer pool for blocks in first level memory, and a second level buffer pool for blocks in second level memory. The first level buffer pool evicts blocks to the second level buffer pool if the blocks are not used above a first threshold level. The second level buffer pool evicts blocks to a yet lower level if they have not used above a second threshold level. The first level memory may be dynamic random access memory, whereas the second level memory may be storage class memory, such as a solid state disk. By using such a storage class memory, the working block set of the buffer manager may be increased without resorting to lower efficiency random block access from yet lower level memory such as disk.
摘要:
Various embodiments of the present invention are directed to a storage platform comprising a database engine, a data store, an application programming interface. The data store is implemented on the database engine for storing data therein, and the data store implements a data model that supports the organization, searching, sharing, synchronization, and security of data stored in the data store. Specific types of data are described in schemas. The application programming interface enables application programs to access services and capabilities of the storage platform and to access the data described in the schemas. The storage platform supports interoperability with existing file systems, enables users and systems to synchronize data stored in different instances of the data store, and provides the ability for application programs to be notified about and to track changes made to the data in the data store.
摘要:
Various embodiments of the present invention are directed to a computer system comprising a plurality of Items, Item Folders, and a hardware/software interface system. The Items constitute discrete storable units of information that can be manipulated by a hardware/software interface system. The Item Folders, which are Items themselves, constitute an organizational structure for Items. Each Item belongs to at least one Item Folder, and Items may belong to more than one Item Folder. However, an Item is not necessarily owned by any particular Item Folder, such that the deletion of said Item Folder does not automatically result in the deletion of said Item. Instead, an Item might be automatically deleted only when it no longer belongs to any Item Folder or, alternately, and Item may be automatically deleted when it is a member of only one Item Folder and that Item Folder is deleted.