Method and apparatus for improving the performance of a generated code cache search operation through the use of static key values
AssigneeBull HN Information Systems Inc.
InventorsDonald P. Levine, Anne Marie Wunderlin, David A. Egolf
Life of this patent
Estimating the term…
Abstract
A cache manager of a relational database management system (RDBMS) is able to bypass time consuming search operations through the use of a key memory structure and locate generated code segments within an SQL cache within a minimum of time. The SQL cache contains the generated code segments used to execute SQL statements as well as the structures and program logic used for maintaining the cache. The key memory structure is located in an area of memory utilized by the SQL runtime routines in executing applications. The runtime routines provide an interface between the application and the RDBMS.
Claims25
A cache manager for processing SQL statements included within an application that result in the retrieval and storage of data within a database, the cache manager being operatively coupled to a runtime library interface over which the SQL statements are received and the cache manager including an SQL cache for storing code segments generated for executing the SQL statements, the cache manager utilizing a search function for performing lengthy complex search operation involving comparing attributes of each SQL statement for locating an applicable code segment stored in the SQL cache to execute the particular SQL statement, the system further including:
- (a) static storage being associated with the runtime library interface, the static storage having a plurality of key areas for storing a corresponding number of key values, each key value established for each previously processed SQL statement;
- and,
- (b) the cache manager being operative for each SQL statement for which a key value has been established to access the key area within the static storage associated with the SQL statement to obtain the key value for locating the applicable code segment stored in the SQL cache for executing the SQL statement bypassing the search function.
A relational database management system (RDBMS) for processing SQL statements included within an application that result in the retrieval and storage of data within a database, the database system including a cache manager and a runtime library interface located between the application and the RDBMS, the cache manager including an SQL cache for storing code segments generated for executing the SQL statements processed by the database system and the cache manager utilizing a search function for performing a complex search operation involving comparing attributes of each SQL statement for locating an applicable code segment stored in the SQL cache to execute the particular SQL statement, the system further including:
- (a) static storage associated with the runtime library interface, the static storage having a plurality of key areas for storing a corresponding number of key values, each key value established for each previously processed SQL statement;
- and,
- (b) the cache manager testing a key mode function indicator;
- when the key mode function indicator is on, the cache manager being operative in searching for a generated code segment for each SQL statement encountered in the application to access the key area within the static storage associated with the SQL statement to obtain the key value for locating the applicable generated code segment stored in the SQL cache for executing the SQL statement, bypassing the search function.
A method of improving the performance of a cache manager within a relational database management system (RDBMS) in searching for applicable code segments within a SQL cache included therein for executing SQL statements contained in an application, the cache manager invoking a search function for performing complex search operations for locating the applicable generated code segments stored in the SQL cache, the method comprising the steps of
- (a) allocating a plurality of key areas within a key structure for storing a corresponding number of key values, each key value being established for each SQL statement for which a code segment is generated during the processing of the statement and stored in the SQL cache;
- and,
- (b) accessing the key area within the key structure for each SQL statement for which a key value has been established to obtain the key value to locate the applicable code segment in the SQL cache for executing a particular SQL statement, bypassing the search function.
Dependencies are inferred from the claim text.