HomeSearchSite MapContact Us

   RemoteDBA Services for CODASYL DBMS and Rdb Remote Management of OpenVMS Systems Preserving Mission Critical IT Applications Through Virtualization

DATABASE
ADMINISTRATION

 
 

DB Access Methods (DBMS only)
TECHNICAL ARTICLES -> DB ACCESS ARTICLES
Back ] Printer Friendly Version ]

Q:

We converted our application from another network (CODASYL) database running on another platform. Our database is relatively small, yet we are experiencing some performance problems.

 

A:

After reviewing your environment, there are two primary causes of your performance bottlenecks:

  1. The database needs to be reorganized to achieve optimal placement of records which were stored in extended areas. This includes determining the optimal page sizes, allocations and thresholds for each storage area.

  2. It appears that the platform from which you converted either did not provide for keyed access to member of user-owned sets or the application did not take advantage of this feature. The following describes some of the enhancements you may want to consider.

Except for CALC and SYSTEM owned indexed sets, your application always performs sequential walks of any user-owned set, performing your own test of the record selection criteria. That is, after each "find next <record> within <set>" your application performs its own test of the selection criteria. As a first step, you will want to modify your DML programs to include your record selection criteria within the DML verbs. Example:

 

PERFORM UNTIL FOUND OR END
FIND NEXT <record>
WITHIN <set>
IF PART_ID = WS_PART_ID
SET FOUND TRUE
END IF
END PERFORM

becomes:

FIND NEXT <record>
WITHIN <set>
WHERE PART_ID
= WS_PART_ID

 

This will simplify your code, as well as allow you to easily identify the primary access paths into your data. As part of a later exercise, you can modify your database design to provide keyed access to these primary access paths.

 

Although data sharing is not a significant requirement at this point in your application, this would be a good opportunity to add RETAINING (currency indicator...) qualifiers to the DML statements in your programs. This will help avoid future locking problems and also provides a modest performance boost.

 

Top


Was this article helpful? 
This information and more was originally published in SCI's technical newsletter, DBAdvisor.
Past issues are available online; you may also fill out a subscription form.

If you have a technical question about this article or about any other 
CODASYL DBMS or Rdb topic, then ask our experts.

How would you rate this article?

5 (Highest)
4
3
2

0 (Did not apply)
Comments about this article or topic suggestions for new articles

Copyright © 2008 Software Concepts International
All Rights Reserved