"Volker Hetzer" <volker.hetzerieee.org> wrote in message
IIRC, it uses the read() and write() low-level I/O calls,> I've no idea but I thought that oracle somehow doesn't use the fs
> system calls. If it still seeks and tells, what's the use?
regardless of file being cooked or raw. What determines
if file is raw or not is the device name itself, which has
to be opened as a file and associated with a file unit
for use with the above calls, using the normal fopen().
Unix drivers then use raw addressing instead of asynch
Unix buffer indirection. There is a flag on ioctl block
that defines if file has raw or cooked access.
IOW, it's handled by Unix I/O mechanism itself. Not
a different I/O call by Oracle. Although direct buffer
offset access is of course then not possible. On the
other hand, I/O goes directly to the SGA instead of to
the Unix buffer cache. Which saves CPU and memory cycles
copying buffers between the two. Around 20% CPU save
on a busy I/O system. Typically, if you keep a gander
on the sar stats, you see the system wait counter drop
significantly with raw I/O. With (hopefully) a corresponding
jump in the user counter.