You are using a 32-bit software which is limited to 2GB of memory (3GB with special configuration of Windows). Long startup time indicates a very big database. All templates are loaded into memory during startup. Look in Task Manager how much virtual memory (not real memory) is allocated after startup. If this is around 2GB, you have reached limit of the 32-bit machine. For larger databases, it is better to use 64bit version of our software or 32bit ExpressID AFIS Government with multiple Nodes which can pool resources from multiple machines to store and match fingerprints.
A quick fix is to enable 3GB mode in Windows. Here are instructions on how to do it:
http://technet.microsoft.com/en-us/library/bb124810.aspx
2GB of memory is normally enough for 2 million users, but there are a few possibilities that can cause increased memory consumption. First, how many fingers per user do you register? And how many views of the same finger do you register? Every fingerprint view takes around 1KB of memory. Second, the 1KB average applies to slap fingerprints from standard sensors. Template size roughly depends on fingerprint area which is at least 4x larger with rolled fingerprints.
Check average template size. Load some random users from the database, export their templates (in ICS format) into byte buffer and check how big this byte buffer is.