A method and computer program product are provided for processing system files. An associated trigger program is attached to each respective system file. The associated trigger program is utilized for pre-processing the respective system file to identify predetermined information. The identified predetermined information is stored in an internal structure. The internal structure is utilized to access the predetermined information when required to perform a query.
|
1. A method for processing system files in a computer system; said system files storing information used for processing a query, said system files including structured query language (SQL) catalog files and system initialization files; said method comprising the steps of:
attaching an associated trigger program to each respective system file; utilizing said associated trigger program for capturing all input/output (I/O) requests against said respective system file; utilizing said associated trigger program for pre-processing said respective system file to identify predetermined information, utilizing said associated trigger program for storing said identified predetermined information in an internal structure; and utilizing said internal structure to access said predetermined information when required to perform a query.
6. A computer program product for processing system files in a computer system; said system files storing information used for processing a query, said system files including structured query language (SQL) catalog files and system initialization files; said computer program product comprising:
a recording medium; means, recorded on the recording medium, for attaching an associated trigger program to each respective system file; means, recorded on the recording medium, for utilizing said associated trigger program for capturing all input/output (I/O) requests against said respective system file; means, recorded on the recording medium, for utilizing said associated trigger program for pre-processing said respective system file to identify predetermined information, means, recorded on the recording medium, for utilizing said associated trigger program for storing said identified predetermined information in an internal structure; and means, recorded on the recording medium, for utilizing said internal structure to access said predetermined information when required to perform a query.
9. A computer system comprising:
a processor, a memory coupled to the processor for storing a computer program product for processing system files; said system files storing information used for processing a query, said system files including structured query language (SQL) catalog files and system initialization files; said computer program product including a plurality of computer executable instructions stored on a computer readable medium, wherein said instructions, when executed by said computer, cause the computer to perform the steps of: attaching an associated trigger program to each respective system file; utilizing said associated trigger program for capturing all input/output (I/O) requests against said respective system file; utilizing said associated trigger program for pre-processing said respective system file to identify predetermined information, utilizing said associated trigger program for storing said identified predetermined information in an internal structure; and utilizing said internal structure to access said predetermined information when required to perform a query. 2. The method for processing system files as recited in
3. The method for processing system files as recited in
4. The method for processing system files as recited in
5. The method for processing system files as recited in
7. The computer program product for processing system files as recited in
8. The computer program product for processing system files as recited in
|
The present invention relates to the data processing field, and more particularly, relates to a method and computer program product for processing system files using a trigger program.
Many Database Management Systems (DBMS) use system files to store information used to process queries. These files must then be probed to extract that information before it is used. Since I/O operations are generally very expensive and DBMS are performance critical, any additional I/O requests to extract this information can influence the overall system performance.
Performing any additional I/O operation while processing-a query request can be very expensive, this is why many of the DBMS try to pre-process as many queries as possible and store the implementation (query plans) for those queries so they do not have to be re-calculated them at run-time. This is normally done at program compilation or bind time and that information is stored as part of the program itself. This works fine for those queries that can be interpreted once and re-used many times (statistic SQL), but when dealing with dynamic SQL, where the query plans must be generated each time the query is executed, the SQL Catalog tables and initialization files must all be accessed in order to extract the information required to generated an appropriate plan.
Other implementations have been devised to allow more queries to be calculated one time and have that query plan bound to the program itself. The SQL Call Level Interface API's is one example of this implementation.
A need exists for a mechanism for processing system files to improve overall system performance in a computer system.
A principal object of the present invention is to provide a method and computer program product for processing system files. Other important objects of the present invention are to provide such method and apparatus for processing system files substantially without negative effects and that overcome many disadvantages of prior art arrangements.
In brief, a method and computer program product are provided for processing system files. An associated trigger program is attached to each respective system file. The associated trigger program is utilized for pre-processing the respective system file to identify predetermined information. The identified predetermined information is stored in an internal structure. The internal structure is utilized to access the predetermined information when required to perform a query.
The present invention together with the above and other objects and advantages may best be understood from the following detailed description of the preferred embodiments of the invention illustrated in the drawings, wherein:
Having reference now to the drawings, in
As shown in
In accordance with features of the preferred embodiment, the trigger program 136 is enabled to pre-process its associated system file 134 that contains information required to perform any queries. The system files 134 contain information required by operating system 130 or query optimizer 132 to determine the implementation that should be chosen to perform a query. By allowing the trigger program 136 to pre-process the file 134 and store the results in the internal work structure 140, the need to perform this same operation for each query that is to be run on computer system 100 is avoided. This isolates all of the I/O operations to the point when the record was initially added or changed to the system file 134, taking the system file 134 out of the performance critical runtime code path. Examples of files 134 that can be used to take advantage of the system file processing of the preferred embodiment include any of the structured query language (SQL) Catalog or initialization (.INI) files used by most DBMS.
In accordance with features of the preferred embodiment, the associated trigger program 136 attached to each system files 134 is used to interpret any I/O operations against the respective system files 134. The trigger program 136 receives the record and then processes that record, storing the information into the internal structure 140. The internal structure 140 can be stored in a central location that can be accessed immediately by any process on computer system 100. This makes the process that caused the record to be inserted into the file to be the only process that has to pay for the costs of parsing, validating and storing into the internal structure 140 along with the I/O operation. All of the jobs on the machine can take advantage of this centrally located internal structure 140.
For example, the trigger program 136 is attached to the system .INI file 134. This trigger program is used to capture all of the I/O requests against the system .INI file 134. The trigger program 136 passes the record off to a system module that will parse the parameter and options and set the information into internal structure 140 accordingly. The internal structure 140 can be attached to the file header itself so that it actually becomes part of the system .INI file 134 that can be accessed by all of the jobs on the computer system 100. When a query is executed, the query optimizer 132 will extract the internal structure 140 from the .INI file 134 and use the information stored within there to influence the query plan it chooses. This way the query being executed does not have to pay any of the costs to open, read, parse and interpret the options stored within the .INI file. This forces the user that is changing the option in the .INI file to pay the additional expense of updating the structure 140 and sparing other jobs.
The trigger program 136 can serve an additional purpose of providing a security function that will prevent unauthorized users from setting options that might effect the behavior of the queries on system 100. Since the trigger program is the only interface that can interpret and set the internal structure 140, if a user is restricted from invoking the trigger program 136, then the I/O operation will fail. Also, if the user detaches the trigger program in order to perform the I/O operation, the underlying internal structure 140 would not be updated with this invalid record.
Referring now to
The method of the preferred embodiment as illustrated in
In
Referring now to
A sequence of program instructions or a logical assembly of one or more interrelated modules defined by the recorded program means 504, 506, 508, 510, direct the computer system 100 for processing system files using trigger program of the preferred embodiment.
While the present invention has been described with reference to the details of the embodiments of the invention shown in the drawing, these details are not intended to limit the scope of the invention as claimed in the appended claims.
Anderson, Mark John, Driesch, Jr., Robert Douglas
Patent | Priority | Assignee | Title |
8898124, | Dec 16 2010 | International Business Machines Corporation | Controlling database trigger execution with trigger return data |
Patent | Priority | Assignee | Title |
5642505, | Mar 04 1993 | Mitsubishi Denki Kabushiki Kaisha | Backup, restoration, migration systems of a database |
5742810, | Aug 31 1995 | International Business Machines Corporation | System, method and computer program product for passing host variables to a database management system |
5758072, | Mar 23 1989 | International Business Machines Corp. | Interactive computer network and method of operation |
5870733, | Jun 14 1996 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Automated system and method for providing access data concerning an item of business property |
6006224, | Feb 14 1997 | INSTANCIA, INC | Crucible query system |
6012067, | Mar 02 1998 | Method and apparatus for storing and manipulating objects in a plurality of relational data managers on the web | |
6044367, | Aug 02 1996 | Hewlett Packard Enterprise Development LP | Distributed I/O store |
6134546, | Jun 25 1998 | International Business Machines Corporation | Method and computer program product for implementing subquery join |
6192370, | Jun 19 1998 | SAP SE | Method and system for rapid memory-resident processing of transactional data |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jan 07 1999 | DRIESCH, ROBERT DOUGLAS JR | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 009779 | /0182 | |
Jan 08 1999 | International Business Machines Corporation | (assignment on the face of the patent) | / | |||
Feb 08 1999 | ANDERSON, MARK JOHN | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 009779 | /0182 |
Date | Maintenance Fee Events |
Jul 07 2005 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Aug 24 2005 | ASPN: Payor Number Assigned. |
Oct 19 2009 | REM: Maintenance Fee Reminder Mailed. |
Mar 12 2010 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Mar 12 2005 | 4 years fee payment window open |
Sep 12 2005 | 6 months grace period start (w surcharge) |
Mar 12 2006 | patent expiry (for year 4) |
Mar 12 2008 | 2 years to revive unintentionally abandoned end. (for year 4) |
Mar 12 2009 | 8 years fee payment window open |
Sep 12 2009 | 6 months grace period start (w surcharge) |
Mar 12 2010 | patent expiry (for year 8) |
Mar 12 2012 | 2 years to revive unintentionally abandoned end. (for year 8) |
Mar 12 2013 | 12 years fee payment window open |
Sep 12 2013 | 6 months grace period start (w surcharge) |
Mar 12 2014 | patent expiry (for year 12) |
Mar 12 2016 | 2 years to revive unintentionally abandoned end. (for year 12) |