Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: raw devices, how to?
"Volker Hetzer" <volker.hetzer_at_ieee.org> wrote in message
news:bdu8in$8am$1_at_news.fujitsu-siemens.com...
> 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?
>
IIRC, it uses the read() and write() low-level I/O calls, 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.
-- Cheers Nuno Souto wizofoz2k_at_yahoo.com.au.nospamReceived on Wed Jul 02 2003 - 05:06:09 CDT