Nonstop Database, HiRDB Version 9 Description

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

4.3 Page design

This section describes page statuses and explains page design policy.

Organization of this section
(1) Page statuses
(2) Page design policy
(3) Ratio of unused area in a page
(4) Allocating and releasing pages

(1) Page statuses

The following table lists and describes the statuses that are assigned to pages.

Table 4-3 Page statuses

Page status Description
Unused page A page that has not been assigned.
Used free page A page in which no data is being stored, as a result of data deletion.#
Active page A page on which data is being stored, and that has free space to which data can be added.
For a table on which the free space reusage facility is being used, its active pages include those pages to which data could not be added because the free space on the page could not be used due to data deletion.#
Used full page A page on which data is being stored, but that has no free area to which data can be added.
For a table or index on which the free space reusage facility is not being used, its used full pages include those pages to which data could not be added because the free space on the page could not be used due to data deletion.#

#
Free space that is generated as a result of data deletion cannot be used until the transaction that executed data deletion is committed.

(2) Page design policy

Pages must be designed with care, because the page size affects data I/O times. For details about page design, see the HiRDB Version 9 Installation and Design Guide.

(3) Ratio of unused area in a page

When you define a table or index, you can specify the ratio of unused area in a page. This concept is illustrated in the following figure.

Figure 4-4 Ratio of unused area in a page

[Figure]

Explanation
  • In this example, the page unused area ratio is set to 30%.
  • The page unused area ratio is specified with the PCTFREE option of the CREATE TABLE or CREATE INDEX. This ratio can be specified in the 0-99% range; the default is 30%.
  • When data is loaded into the table, no data is stored in the unused area.

The data storage efficiency improves as the page unused area ratio becomes smaller. Increasing the page unused area ratio sometimes improves performance. For example, when data is updated, you can reduce the number of data I/O operations, provided that either of the following occurs:

For details about determining the page unused area ratio, see the HiRDB Version 9 Installation and Design Guide.

(4) Allocating and releasing pages

(a) Allocating pages

Pages are not allocated when the table is defined. Instead, pages are allocated as needed when data is saved to the table. Once a page is allocated (once it becomes a used page), it cannot be reused until it is released.

When an index is defined, the system allocates pages according to the number of data items to be included in the index. If there are no data items, only one page (root page) is allocated. However, if the EMPTY option is specified in the CREATE INDEX (index entries not to be created), no pages will be allocated.

Reference note
  • If data in a non-FIX table is updated and as a result there is a change in the row size, any area freed up by a reduction in the row size cannot be reused.
  • An index page cannot be reused until a key value that is identical to a key value that was stored in the deleted page is added.
Note
Reusing a page freed up by deletion of data is subject to the following restrictions:
  • The page cannot be used by VARCHARs of 256 bytes or greater, BINARY types, abstract data types, and branch rows of repetition columns.
  • The page cannot be used when data is inserted until the segment utilization rate reaches 100%.
  • A transaction that executes DELETE cannot use the space freed by the DELETE until COMMIT is issued.
(b) Releasing pages