This article is not only intended to provide you with 'need to know' information but to also hopefully peak your interest in attending some of the four courses I will be teaching at Scaling New Heights 2018 being held in Atlanta, Georgia June 17 - 20, 2018.
Over the last 10 years or so I have been continually asked to explain how QuickBooks Desktop really works because to most people all they kind of understand is the actual QuickBooks software that runs on your desktop, they don't have a clue about what happens behind-the-scenes.
QuickBooks Desktop Essentials
There really are five essential components of QuickBooks, three of them are directly associated with the application (or result from the application) and two of them are critical components of your computer(s). While everyone recognizes the QuickBooks application that they do their work in, and they know that there is a QuickBooks Company File containing their data, they hardly have a clue about the other three essential components and how they all must work together for QuickBooks to work properly.
The five essential elements of QuickBooks are:
- The QuickBooks Application
- The QuickBooks Database Server
- Your QuickBooks Company File
- Your Computer's Hard-drive (or Solid-state Drive if you are so lucky), and
- Your Computer's RAM Memory (specifically 'cache memory')
Five Essentials of QuickBooks
Without all five of these essentials being configured, and working, properly QuickBooks will not perform properly, in fact it may not function at all.
QuickBooks Application - this is the part of QuickBooks that everybody recognizes, even if they are looking at an old Home Page like the one shown on the left above. This after all is where you do your QuickBooks work, when you want to create a new Invoice you work in the Application, if you want to look at a report of past transactions you call the report from the Application.
QuickBooks Company File - every QuickBooks user also knows their data is stored in something called a 'company file', you might have just one company file, or you might have 200. Each company file contains the data that is unique to the business (or company) it represents. In addition to the actual company file, there are a few other 'auxiliary or related' files and we will talk about those in another discussion.
Computer's Hard Drive - Most users realize that their various QuickBooks Company files are stored on a computer hard drive somewhere. It maybe their local hard drive, or it might be the hard drive of another workstation, or even the hard drive of a centralized server computer. An important concept to realize about computer hard drives is directly related to their performance.
Generally, the faster and bigger the hard drive, the greater the performance of the drive. There is a noted exception and that is the relationship between hard drive capacity (how big the drive is), used hard drive space (how much of the drive is full of data), and free hard drive space (how much of the drive is not filled with data). Drives that have free space exceeding 50% of their capacity will perform better than hard drives with used space exceeding 50% of their capacity.
QuickBooks Database Server - is really that portion of QuickBooks that does 'all the work'. You see only the Database Server actually talks to the file to look for information, to write new information, or to edit/change existing data. In a few cases the Database Server can also delete/remove data.
Several years ago, Intuit migrated QuickBooks from a C-index database structure to a Sybase database; QuickBooks provides two versions of the Sybase database server, which controls the flow of data between the application and the Company file. The personal database server executable is installed when QuickBooks has been set-up as a stand-alone application and QuickBooks and the data-files are on the same machine. The personal database server is provided for single-user, same-computer use, as an embedded database server. This database server runs as a windows process under the logged-in windows user’s account as QBDBMgr.exe.
When QuickBooks is installed for networking, or ‘hosting’ is turned on in the QuickBooks application, the network database server is activated; this server supports client/server communications over a local area or terminal server network and permits multi-user use. Because the network database server can run unattended and is not reliant upon an actual user being logged into QuickBooks, a unique windows user account is created for the server. The network version of the server is QBDBMgrN.exe, and the User Name is QBDataServiceUser ## (where the ## represents the year of the product; for example, 28 is the year designator for 2018).
QuickBooks also provides an interface utility for the network server version, called the QuickBooks Database Server ‘Manager’.
Computer's RAM (Cache) Memory - is the component of all computers that provides short-term data access. Your computer's moment-to-moment operations are typically performed using short-term data access; functions like loading applications, browsing the Web or editing a database like QuickBooks all rely on Memory; so the amount, speed and type of memory play a critical role in your computer's performance.
Inside your computer, the memory works in conjunction with your processor and hard drive (or Solid-State-Drive, if you are lucky enough to have one) to access and use your data. So, your computer’s RAM greatly affects the performance of QuickBooks which makes use of Cache to control the orderly and safe flow of data between the QuickBooks application and your Company file.
How the Five Must Work Together for QuickBooks to Work Properly
Let's say you want to access data within QuickBooks and post some changes to a transaction, here's what's going on inside your computer. (For purposes of this discussion we are going to assume you are running in Single-user mode.)
- Both the QuickBooks application and your QuickBooks Company File(s) are resident on your hard drive.
- When you click on the QuickBooks Icon your computer’s processor directs the Windows operating system to load the QuickBooks application from your hard drive into to the computer’s memory for short-term access and use.
- As soon as you tell QuickBooks to open a specific Company File (even if it defaults to your last open company), the computer’s processor directs the operating system to begin loading your QuickBooks Company File into the computer’s memory; this data is held in a section of memory that computer professionals refer to as ‘cache’. Typically, QuickBooks will load only a portion of your Company File into cache (memory), and the portions of the file that it loads depends on several factors including your preferences, the data last or most commonly accessed (such as lists) and other data you have ‘rights to’ (if security protocols are in force).
- As you start to perform specific tasks in QuickBooks, your computer’s processor begins to access data from the memory based upon instructions from the QuickBooks database server (yes even in single-user mode, QuickBooks still has a windows process that serves as the database server).
- If the processor can’t find the data in memory the database server identifies the information for the processor, which then tells the operating system (Windows) to go find the information on your computer’s disk drive, and to write that data into ‘cache’ (memory). If cache memory is already full, some of the data in cache memory must be written back to the computer’s disk drive before additional data from the disk drive can be written to cache.
Even though most very small businesses are using QuickBooks in a single-user configuration (as in the above example) there is definitely a lot going on behind the scenes in your computer just to post a few changes to QuickBooks transactions.
Obviously, the amount of behind-the-scenes activity is compounded when you are dealing with multiple QuickBooks Users running multiple instances of the QuickBooks Application and accessing multiple QuickBooks Company files across the same network in a multi-user configuration. Even so, this is the most common use of QuickBooks for mid-sized businesses, and we can kind of get the picture in this illustration.
QuickBooks Multi-user_Multi-file
Anything that limits, restricts, or otherwise compromises any of the five essential components will impact QuickBooks performance. In some cases, these limitations, restrictions or compromises can actually prevent QuickBooks from accessing your file, even in a single-user configuration. In those cases, you almost always find yourself 'at odds' with QuickBooks technology.
In my conference courses titled Enhancing QuickBooks Desktop File Stability & Performance along with QuickBooks Desktop Super-Geek 101 – Database Essentials you will learn different approaches for 'taming the machines' associated with the five QuickBooks essentials.
We will also discuss ways you can improve your QuickBooks Performance based upon each of the five essentials. For example:
What can improve the performance of the QuickBooks Application on your desktop?
What can improve the access to, and load time of, the data in your QuickBooks file?
What can reduce the time it takes to compile large QuickBooks reports?
What can improve (reduce) the amount of time it takes to save large transactions when 29 other users are all in the same Company file?
What can improve the flow of information between your QuickBooks Workstation and your Company's QuickBooks server?
These are just a few of the topics we will cover in my courses, but I don't want to leave you with just questions in your head, so I will also give you a little hint in this primer. Like the picture of the rattlesnake hidden in a brush pile, why don't you see if you can find the clues in the picture below? (Hint compare this picture to the first one in this article.)
Improving QuickBooks Performance
I really hope to see you in Atlanta. For more information about this year's conference, or register, see the Scaling New Heights 2018 website.