1. A method of managing memory of a database management system running in a virtual machine instantiated on a host computer, wherein the database management system partitions an allocated memory address space into a plurality of memory pools and an initial size for each of the memory pools has been determined based on an initial allocation of physical memory to the virtual machine by the host system and a purpose for which the memory pool has been created, the method comprising: periodically determining a current amount of physical memory allocated by the host computer to the virtual machine during execution of the database management system; determining, for each memory pool, a current memory allocation measurement based on a current size of the memory pool and the determined current amount of physical memory; requesting a release of a portion of memory from a memory pool if the determined current memory allocation measurement for the memory pool is greater than a target memory allocation measurement for the memory pool, wherein the target memory allocation measurement is based on the initial size of the memory pool and the initial allocation of physical memory to the virtual machine; and requesting an additional allocation of a portion of memory for a memory pool if the determined current memory allocation measurement for the memory pool is less than the target memory allocation measurement for the memory pool.