Consultor Eletrônico



Kbase 17074: Building a Database: Design Limitations in V7 and V8
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   5/10/1998
SUMMARY:

When planning a database structure there are certain platform-specific factors to keep in mind. This article summarizes limits you may need to take into consideration in building your database.

EXPLANATION:

-- Database Limits:

Database Due to blocksize limitations up through version 8.1A,
maximum database size is 64GB. Beginning with
version 8.2A and above Progress uses variable
blocksize up to 8K. Consequently, the maximum database
size increases to 256GB

Indexes Maximum of 4096 per database. For version 8.2 and
above, the maximum is 32,768 with a 8K database block
size.
No explicit limit per file. Maximum of 16 fields per
index. Total variable length storage requirements of
all fields in an index entry must be less than 127
characters (this includes storage overhead - the
actual index key is limited to approximately 115
characters).

Records Maximum of 32,000 bytes per record. (In practice,
buffer and stack size limitations reduce the maximum
record size to approx. 15K bytes). On DOS, OS2, XENIX
286, and on BTOS/CTOS machines, all active records,
variables (logical, shared, global), and work files in
all active work procedures for a given user must fit
in a buffer area of size 1k - 63k bytes. The buffer
size can be up to 4GB on all other systems. (See
also the local buffer size (-1) startup option).

Fields Number per file constrained by the record size.

Record Locks Maximum number of records that might be simultaneously
SHARE or EXCLUSIVE locked is machine dependent and
determined by the -L parameter.

Work Files Minimum record length is 64 bytes.


-- Data Values:

Character Constrained by record size.

Date 1/1/32768 BC through 12/31/32767 AD.

Decimal 50 digits total. Up to 10 decimal places.

Integer -2,147,483,648 through 2,147,483,647.

Logical true/false, yes
o.


-- Number of Users Per Database:

Single-User 1

Multi-User The maximum is machine dependent Progress version
dependent: up to 2048 on UNIX and VMS systems with
shared memory, and up to 4000 for Progress version
8.3A and later, unless constrained by semaphore
limits, process limits, or machine performance.

For bsd 4.2 without shared memory, Version 7, UNIX
System 3, and XENIX machines, the limit is the number
of file descriptors per process minus 10. Typically,
this means the maximum number of users is between 10
and 54.

For BTOS/CTOS machines, the maximum number of users is
64.


-- Number of Simultaneous Transactions Per Database:

Single-User 1

Multi-User One per user (up to the maximum number of users per
database).


-- Editor:

Number of (Edit buffer size)/82. The edit buffer can be sized
Lines at 2k - 63k on DOS, OS2, BTOS/CTOS, and XENIX 286
systems, and at 2k - 4GB for all other systems. Note
that regardless of the size of the text in a procedure
its compiled .r version must be smaller than 63k.
See also the Edit Buffer Size (-e on v6) startup
option.


-- Input/Output:

Terminal Line UNIX, VMS, BTOS/CTOS: 80 to 132.
Width DOS, OS/2: 80.

Printer Line Up to 255.
Width

Export File 3000 characters per field, 32k characters per record.

Import File 3000 characters per field, 32k characters per record.

Streams Maximum of 5 named streams per procedure.

Sorting Maximum of 16 fields or expressions.
Levels

Sorting Maximum of 127 characters in the combined size of all
Size fields being sorted together. For version 8, maximum
size is 197 character.


-- Names:

Procedures UNIX: 1 - 12 characters.
DOS, OS/2: 1 - 8 characters.
Windows 95, NT: 1 - 256 characters.
VMS: 1 - 39 characters.
BTOS/CTOS: 1 - 50 characters.

File, Field, Up to 32 characters in length; begin with a-z or A-Z;
Index, consist of any combination of letters, numbers and the
Variable characters # $ % & - (The dash (-) is illegal in
PROGRESS/SQL).

Database DOS, OS/2: 1 - 8 characters.
Other platforms: 1 - 11 characters.


-- Compiler:

Variables On DOS, OS/2, XENIX 286, and BTOS/CTOS, all active
records, variables (local, shared, global), and work
files in all active procedures for a given user must
fit in a buffer area of size 1k - 63k bytes. The
Buffer area can be up to 4GB on all other systems.
(See also the Logical Buffer Size (-1) startup option)

Statements The default is 4096 characters. The -inp startup
parameter allows you to expand available buffer space
for a single statement. If not in use and 4096
characters is exceeded in a statement, Progress will
display a message, prompting you to increase this
parameter.

Frames Maximum width of 255 characters. For version 8, 320
characters.

Nested Blocks Maximum of 255 blocks, including called procedures.
(See also the Nested Blocks (-nb) startup option).


References to Written Documentation:

Further details on this subject matter can be found using the on-line reference in GUI mode.

Progress Knowledge Base Solution:
21286 "Summary of Progress V9.X RDBMS limits"