I am running Oracle server 220.127.116.11. on SCO OpenServer 5. Oracle's utility tstshm looks as follows:
"Number of segments gotten by shmget() = 50 Number of segments attached by shmat() = 50 Segments attach at higher addresses Maximum size segments are not attached contiguously!Segment separation = 4194304 bytes
Default shared memory address = 0x80000000
Lowest shared memory address = 0x80000000
Highest shared memory address = 0xc0000000
Total shared memory range = 1075838976
Total shared memory attached = 104857600
Largest single segment size = 2097152
Segment boundaries (SHMLBA) = 4194304 (0x400000)"
Is there any way to attach segments contiguously by tuning?
tstshm doesn't tell you anything about how your SGA is allocated in shared memory. The one thing it can tell you is what your largest single segment size is, and yours appears to be 2097152. That's very small. I'm not sure where the kernel tuneables are on SCO, but you'll want to find how to set shmmax to a value equal to (or at least much closer to) your physical RAM size. That will allow Oracle to allocate fewer, larger segments which can increase efficiency somewhat.
Your focus should be on using fewer segments, not on where they are placed in memory.
By the way, upgrade--really, I mean it.