Physical Oracle Database Limits
| Item | Type of Limit | Limit Value |
| Database Block Size | Minimum | 2048 bytes; must be a multiple of operating system physical block size |
| Maximum | Operating system dependent; never more than 32 KB | |
| Database Blocks | Minimum in initial extent of a segment. | 2 blocks |
| Maximum per datafile | Platform dependent; typically 222-1 blocks | |
| Controlfiles | Number of control files | 1 minimum; 2 or more (on separate devices) strongly recommended |
| Size of a control file | Dependent on operating system and database creation options; maximum of 20,000 x (database block size) | |
| Database files | Maximum per tablespace | Operating system dependent; usually 1022 |
| Maximum per database | 65533May be less on some operating systemsLimited also by size of database blocks and by the DB_FILES initialization parameter for a particular instance | |
| Database extents | Maximum | 4 GB, regardless of the maximum file size allowed by the operating system |
| Database file size | Maximum | Operating system dependent. Limited by maximum operating system file size; typically 222 or 4M blocks |
| MAXEXTENTS | Default value | Derived from tablespace default storage or DB_BLOCK_SIZE initialization parameter |
| Maximum | Unlimited | |
| Redo Log Files | Maximum number of logfiles | Limited by value of MAXLOGFILES parameter in the CREATE DATABASE statementControl file can be resized to allow more entries; ultimately an operating system limit |
| Maximum number of logfiles per group | Unlimited | |
| Redo Log File Size | Minimum size | 50 KB |
| Maximum size | Operating system limit; typically 2 GB | |
| Tablespaces | Maximum number per database | 64 KNumber of tablespaces cannot exceed the number of database files, as each tablespace must include at least one file |
Logical Database Limits
| Item | Type | Limit |
| GROUP BYclause | Maximum length | The GROUP BY expression and all of the nondistinct aggregate functions (for example, SUM, AVG) must fit within a single database block. |
| Indexes | Maximum per table | Unlimited |
| total size of indexed column | 75% of the database block size minus some overhead | |
| Columns | Per table | 1000 columns maximum |
| Per index (or clustered index) | 32 columns maximum | |
| Per bitmapped index | 30 columns maximum | |
| Constraints | Maximum per column | Unlimited |
| Subqueries | Maximum levels of subqueries in a SQL statement | Unlimited in the FROM clause of the top-level query255 subqueries in the WHERE clause |
| Partitions | Maximum length of linear partitioning key | 4 KB – overhead |
| Maximum number of columns in partition key | 16 columns | |
| Maximum number of partitions allowed per table or index | 64 K-1 partitions | |
| Rollback Segments | Maximum number per database | No limit; limited within a session by the MAX_ROLLBACK_SEGMENTS initialization parameter |
| Rows | Maximum number per table | Unlimited |
| SQL Statement Length | Maximum length of statements | 64 K maximum; particular tools may impose lower limits |
| Stored Packages | Maximum size | PL/SQL and Developer/2000 may have limits on the size of stored procedures they can call. The limits typically range from 2000 to 3000 lines of code.See Also: Your PL/SQL or Developer/2000 documentation for details |
| Trigger Cascade Limit | Maximum value | Operating system-dependent, typically 32 |
| Users and Roles | Maximum | 2,147,483,638 |
| Tables | Maximum per clustered table | 32 tables |
| Maximum per database | Unlimited |
Process and Runtime Limits
| Item | Type | Limit |
| Instances per database | Maximum number of cluster database instances per database | Operating system-dependent |
| Locks | Row-level | Unlimited |
| Distributed Lock Manager | Operating system dependent | |
| SGA size | Maximum value | Operating system-dependent; typically 2 to 4 GB for 32-bit operating systems, and > 4 GB for 64-bit operating systems |
| Advanced Queuing Processes | Maximum per instance | 10 |
| Job Queue Processes | Maximum per instance | 1000 |
| I/O Slave Processes | Maximum per background process (DBWR, LGWR, etc.) | 15 |
| Maximum per Backup session | 15 | |
| Sessions | Maximum per instance | 32 KB; limited by the PROCESSES and SESSIONS initialization parameters |
| Global Cache Service Processes | Maximum per instance | 10 |
| Shared Servers | Maximum per instance | Unlimited within constraints set by the PROCESSES and SESSIONS initialization parameters, for instance |
| Dispatchers | Maximum per instance | Unlimited within constraints set by PROCESSES and SESSIONS initialization parameters, for instance |
| Parallel Execution Slaves | Maximum per instance | Unlimited within constraints set by PROCESSES and SESSIONS initialization parameters, for instance |
| Backup Sessions | Maximum per instance | Unlimited within constraints set by PROCESSES and SESSIONS initialization parameters, for instance |
References: Oracle 9i docs.