Nonstop Database, HiRDB Version 9 Command Reference

[Contents][Index][Back][Next]

12.1.2 Functions of pdpgbfon

Organization of this subsection
(1) Overview of functions
(2) Operating method

(1) Overview of functions

pdpgbfon is used to improve the buffer hit rate, even immediately after startup of online jobs. It does this by reading the applicable pages of resources (tables or indexes) into global buffers. Once an applicable page has been placed in a global buffer, page read operations are not needed.

To execute pdpgbfon, there must be more global buffer sectors than the number of pages used to store the target resource (before execution of pdpgbfon, enough global buffer space to store all the data for the target resource must have been allocated).

Because pdpgbfon pre-reads data in the order that the pages are stored, the prefetch facility is enabled. When you define the global buffer, you can reduce execution time by specifying the prefetch count.

If there are not enough global buffer sectors, the LRU management method removes the oldest page information from the global buffer (the page in the global buffer that was accessed least recently according to the pd_dbbuff_lru_option operand value in the system definition). Therefore, executing pdpgbfon serves no purposes when there are not enough global buffer sectors. You can use the pdbufls command to check the number of global buffer sectors and the database condition analysis utility (pddbst) to check the number of pages being used to store the target resource.

To determine whether or not pdpgbfon read all pages of the target resource into the global buffer, you check the pdpgbfon return code or a processing result output to the standard output (reference buffer flush count). Note that the pdpgbfon processing result contains only information about the resource processed by pdpgbfon. To obtain all the global buffer processing results and global buffer status details, use the pdbufls command.

(2) Operating method

The figure below shows an example of the pdpgbfon operating method.

Figure 12-2 Example of pdpgbfon operating method

[Figure]

Explanation
  1. pdbufls command is executed to display global buffer statistical information. The purpose is to initialize the statistical information (the displayed information is not used).
  2. pdpgbfon is executed as many times as there are resource elements to be read into the global buffer (table data pages or index pages). If the pdpgbfon return code is 0 every time is executes, there is no need to execute step 3.
  3. pdbufls command is executed again to display global buffer statistical information. If the displayed reference buffer flush count (RFFLS) or update buffer flush count#1 (UPFLS) is not 0, some pages have been swept out of the global buffer. In this case, either increase the size of the global buffer or consider reorganization of the table.#2 Note that the reference GET count (REFGET) is greater than the actual number of data storage pages because it includes the management page re-read count.
#1: pdpgbfon does not update data. Because the global buffer may be used by multiple processes, this item must be checked if there are processes other than pdpgbfon that have accessed the global buffer.
#2: If the cause is an increase in the number of data items stored in the database, increase the global buffer size. If the cause is an increase in the number of storage pages due to disorganization of the database, execute the free page release utility (pdreclaim) or the database reorganization utility (pdrorg) to obtain the appropriate number of storage pages.