QUOTE:
原帖由
Yong Huang 于 2008-5-19 07:42 发表
If I remember right, Oracle allocates all memory specified by sga_max_size. Here's something everybody working on Windows should understand about a Windows process:
Virtual memory is measured by perfmon virtual bytes;
Working set (resident set) part of virtual memory is Mem Usage in Task Manager (TM);
Private part of virtual memory is VM Size in Task Manager.
Sounds confusing? Just read it a few times and memorize it. Process virtual memory can be split into working set and non-working set (the part paged out). TM Mem Usage measures the first part only. Alternatively, virtual memory can also be split into private memory and shared memory. TM VM Size measures the first part only.
catan's problem is due to incomplete measurement. He's probably looking at Mem Usage which hasn't reached its normal workload level yet. The only reliable way is to use perfmon, and look at oracle.exe process's virtual bytes or use Process Explorer to look at virtual size.
I'll be surprised if Oracle decides to allocate less than sga_max_size virtual memory for oracle.exe on instance startup. On UNIX/Linux, that might be true if you turned off _use_ism; even then I doubt it but we can verify. On Windows, _use_ism is unlikely to have any effect at all.
Yong Huang