Update: Intuit has now posted detailed instructions for all versions of QuickBooks®. You can view these instructions here, but please feel free to continue to ask us any questions you might have.
Update: It has been brought to our attention that in the latest release of QBES 12 and all versions of 13 Intuit has possibly implamented a change that would affect the memory allocation discussed in this artical. I have not been able to test this at this time but I will post a new article once I have some results. The change in question could reset the RAM allocation everytime QuickBooks® starts up, which would cause an issue with the changes discussed in this post. Again more info will be posted soon.
QuickBooks® speed and performance is something that we all deal with. As our QuickBooks® files get bigger the worse performance becomes. When you are dealing with Enterprise the typical file begins to demonstrate performance issues at around 500MB while Pro and Premier files typically show degradation around 256MB. There are two reasons for this, first the number of transactions and list sizes create more data for the software to work through. The second reason is what we want to discuss in depth with this post and seems to be something most people don’t know about.
In any system the more data you have in the database the more of an effect you will see on the overall performance of the system; however in a SQL or Oracle type environment you don’t see these types of performance issues with this amount of data. I don’t have a lot of background in how all the various systems utilize memory and other system resources but I have learned quite a bit about how QuickBooks® seems to work, at least in the area of RAM usage.
When QuickBooks® is installed there is a setting in the registry that tells the system how much of the system’s RAM to utilize initially and the maximum amount it is allowed to use. In Pro and Premier these numbers are 128MB and 256MB, in Enterprise they are 256MB and 512MB. What does this mean to us? Well, the amount of RAM set is going to be how much of your QuickBooks® file is loaded into cache. It also means that initially it will load the amount of data equal to the lower number, and as the file is used more data will be loaded into cache. For example, if you have a large file and you open it, 256MB of the data will be loaded and then if you run an A/R Aging report more data will be loaded and so on.
Let’s look at this in relation to a “large” QuickBooks® file. I like to use our first introduction to a “large” file as an example for all of this. We were contacted by a customer with a QuickBooks® file that was 1.2GB in size and it contained about a year and a half worth of data. The client was completely against starting a new file, like most users they wanted to be able to see history when viewing reports and such. We started with basic troubleshooting, things like network setup and such. Nothing we tried was helping the fact that a 10 line invoice took 3 minutes to save, and that the user would often surf the web between entering invoices.
We had to find a way to resolve this issue because honestly the customer was close to abandoning QuickBooks® altogether. One day while speaking with an Intuit employee something was said about this registry setting that could possibly help the situation. After a little research we found the setting and applied the change on the clients system. We changed the setting to allow for 2GB of RAM to be dedicated to QuickBooks® to allow for file growth. Invoice processing went from 3 minutes to 3 seconds, and we had a very happy customer. Since then we have had a customer that has a 3.8GB file and a 40 line invoice took about 6 minutes to save and now it takes about a minute.
Here are some things to understand about this registry change. First off, the numbers mentioned above are the defaults; however these may not be the settings your system is using. I have seen situations where the maximum setting was 32MB! This means users began to see performance issue after the file reached only 32MB in size, and in an Enterprise file that isn’t very much data. The only thing I can come up with on this one is that the system did not have the typical 512MB of RAM free at the time of install so QuickBooks® determined that 32MB was the “safe” amount of RAM it could use without causing major issues for the system. With that being said, I like to check any system I get my hands on to verify that it is at least using the default amount of RAM. Also, the system information screen (F2) always shows the default numbers at the bottom of the window no matter what the settings are, so don’t go by those.
Something else to keep in mind is that the registry setting will reset when an update is installed, so you will have to make the change again after you update the system. Please note that this is on the system that is hosting the QuickBooks® file (the “server”) and not on the client.
I could continue to talk about this for some time, but I think the basics have been covered here. The only other thing I would like to cover is when multiple files are being used at the same time. You will need to ensure that you have enough RAM allocated to accommodate the total of all the files that are being accessed at the same time by all users.
The final thing I would like to add is that we are changing the system registry and that it is always recommended to make a backup before any modifications are made.
This is not a change that will allow for unlimited file growth, but it will help you get more out of your QuickBooks® file before having to split your file or start a new one. I hope this has been an educating and helpful piece of information for everyone that reads it and even more importantly I hope it helps make for happier QuickBooks® users!
If you would like to discuss this further, have questions or would like to have detailed instructions on how to make the registry change please feel free to contact us at firstname.lastname@example.org.