When I first installed Oracle XE, I was quite impressed how much of the maximum amount of 1GB RAM it uses per default: In my case, about 880MB. I din’t really care, because my machine has 3GB RAM, and my XP with some old software did not use up too much…
However, having switched to Windows Vista and brand-new versions of all the tools one needs, I have actually hit the limit of my machine - a small window popped up, suggesting to kill both instances of Visual Studio so I would regain free RAM… For a developer system, it is obviously a good idea to trim the database system’s size rather than not using the IDE…
So, even though most people would like their XE Oracles to consume more RAM:
How to make Oracle’s memory footprint smaller:
1. Start Oracle with its default configuration. You can type
net start OracleServiceXE on the (administrator-) console.
2. Find ‘C:\YourOracleDirectory\app\oracle\product\10.2.0\server\config\scripts\init.ora’
Open it and search for
sga_target=768M. Replace this with some reasonable value for your machine. You cannot, however, set this value arbitrarily small or Oracle will not work. I used
Also search for
pga_aggregate_target=140M and set it to, say,
Save the file.
3. Log into SQLplus. In command window, type
SQL> CONNECT / AS SYSDBA
SQL> create spfile=’C:\YourOracleDirectory\app\oracle\product\10.2.0\server\dbs/spfilexe_small.ora’
4. Stop Oracle:
C:\> net stop OracleServiceXE
5. Back up ‘C:\YourOracleDirectory\app\oracle\product\10.2.0\server\dbs/spfilexe.ora’ and replace it with our newly-created spfile.
6. Start Oracle again:
C:\> net start OracleServiceXE
Now, oracle should consume merely about 180MB RAM.
You can also edit the spfile with a hex editor if you are brave enough… But you have to work very carefully then.