728x90
Technote (FAQ)
Question
Maximum number of pages and rows allowed in fragmented and unfragmented tables are related to the ROWID.
Encountered an sql error along with error 136, no more extents.
Maximum number of pages and rows allowed in fragmented and unfragmented tables are related to the ROWID.
Encountered an sql error along with error 136, no more extents.
Answer
Limits in unfragmented tables and indexes
Every row in an unfragmented table has a number called a ROWID that uniquely identifies the row within the table and also indicates where in the table the row is stored. The ROWID for a row is represented by a 4 byte integer, the most significant 3 bytes of that integer indicate the page where the row is stored and the least significant byte indicates the slot on that page where the row is stored.
Tip: If you represent the ROWID as a hexidecimal number the leftmost 6 digits are the page number and the rightmost 2 digits are the slot number.
Example:
A row with a ROWID of 0x4F0033 is located in slot 0x33 (51) of page 0x4F00 (20224).
3 bytes are used to store the page number a maximum of 16,777,215 pages can be used in one table.
1 byte is used to store the slot number, a single page can have at most 255 slots/rows.
The maximum number of rows in a table or fragment is 4,278,189,825.
These are all theoretical limits. The practical limits are lower because of the following:
- Pages are also used for purposes other than rows of data. Examples include attached indexes, and bitmap pages.
- Some pages are used as remainder pages.
- To fit the maximum number of rows in a data page the rows must be very small. Most of the time fewer rows are stored on a page, reducing the maximum number of rows that the table can hold.
Limits for fragmented tables and indexes
If a table is fragmented then the ROWID for each row is only guaranteed to be unique within its fragment. So to determine the limits in a fragmented table multiply the limits for an unfragmented table times the number of fragments used by your table. (The number of rows per page remains the same, of course)
OnLine and Informix Dynamic Server (IDS) engines allow a maximum of 2047 fragments in a single table. IBM Informix Extended Parallel Server (XPS) allows 32766.
Limits in unfragmented tables and indexes
Every row in an unfragmented table has a number called a ROWID that uniquely identifies the row within the table and also indicates where in the table the row is stored. The ROWID for a row is represented by a 4 byte integer, the most significant 3 bytes of that integer indicate the page where the row is stored and the least significant byte indicates the slot on that page where the row is stored.
- Tip: If you represent the ROWID as a hexidecimal number the leftmost 6 digits are the page number and the rightmost 2 digits are the slot number.
- Example:
A row with a ROWID of 0x4F0033 is located in slot 0x33 (51) of page 0x4F00 (20224).
3 bytes are used to store the page number a maximum of 16,777,215 pages can be used in one table.
1 byte is used to store the slot number, a single page can have at most 255 slots/rows.
The maximum number of rows in a table or fragment is 4,278,189,825.
These are all theoretical limits. The practical limits are lower because of the following:
- Pages are also used for purposes other than rows of data. Examples include attached indexes, and bitmap pages.
- Some pages are used as remainder pages.
- To fit the maximum number of rows in a data page the rows must be very small. Most of the time fewer rows are stored on a page, reducing the maximum number of rows that the table can hold.
Limits for fragmented tables and indexes
If a table is fragmented then the ROWID for each row is only guaranteed to be unique within its fragment. So to determine the limits in a fragmented table multiply the limits for an unfragmented table times the number of fragments used by your table. (The number of rows per page remains the same, of course)
OnLine and Informix Dynamic Server (IDS) engines allow a maximum of 2047 fragments in a single table. IBM Informix Extended Parallel Server (XPS) allows 32766.
http://www-01.ibm.com/support/docview.wss?uid=swg21105506
728x90
'Informix > informix troubleshooting' 카테고리의 다른 글
Preventing Informix Servers system overload from intensive I/O activity (0) | 2015.04.22 |
---|---|
Informix ISAM error 136: no more extents (0) | 2015.03.06 |
Rebuilding sysadmin database manually (0) | 2014.11.22 |
How To Remove Shared Memory Segments (0) | 2014.10.22 |
Is there an Alternative to hosts.equiv for High Availability Data Replication? (0) | 2014.05.20 |