Sure,

I will try, but I may get some things wrong as I am not a SQL expert.

Depending on your minimum and maximum settings in SQL (amount of RAM), which can be set using the SSMS (a program to allow you to access SQL's inner workings), when you reboot your server, all of the memory in SQL is flushed. This memory is made up of pages (the smallest unit of data in SQL) So, you have data from your database in SQL contained in the RAM. As you know, data that is accessed from RAM will be accessed much more quickly than from a hard drive due to I/O, etc.

Each time you query the database for data, it will look at the pages first. If it can't find the data there, it will go to the actual database and get it. This will go to AC, but it will also be stored in memory in SQL. All the pages will stay there unless it is full and then the oldest page(s) will be let go. This is referred to as a memory leak which many people confuse with SQL showing it is using more and more memory in your task manager. You freak out because as the available memory for the server goes down, and you can most likely see that it is going to SQL.

I am going to guess that you are using 4GB or less on your machine. SQL will "grab" as much memory as it can as it is more efficient with more memory. Some SQL Servers (not the Express versions) are unlimited in the capability of how much RAM they can use. So, if it is unlimited, and your server has 64GBs of RAM, eventually your server will be very slow or crash. So, when your SQL Server Express grabs its 1GB of RAM, your server becomes very slow, because it doesn't have much RAM left. Remember, with 32-bit machines and only 4GBs of memory, it isn't 4 minus 1 = 3, it is 3.2 minus 1 = 2.2 - everything else on the computer that is requiring memory.

The more memory and the more pages in SQL the more efficient it will run. But, the server will run more slowly. Also, if you have 12 users, SQL can easily handle the 12 users querying data at the same time, but your SQL Server is acquiring memory/pages four times faster than a 3 user office.

There are four things you can do to remedy this. The first is to make sure your virtual memory (properties in My Computer) is 1.5 times your memory and hopefully on a different drive. Secondly, using SSMS (you will need the sa and password) you can set the minimums and maximums for SQL. So, your max could be 600. Kind of splind the difference between SQL performance and Server performance. Thirdly, you can go to a 64-bit OS and add RAM. Even a machine with 8GB isn't going to hiccup at a mere 1GB of memory. Obviously a SQL Server which can use 16GBs with a server that has 32GBs will be very efficient, but for a small office it is probably not necessary. The fourth thing is what you and a lot of people do, which is the Band-Aid approach it is rewarded since the server gets new speed and life when it gets all of SQLs memory and other memory and now has 2.5GBs or so of memory to use. But, this comes at the cost of losing all those saved (used more often) pages.

Hope this helps.



Bert
Pediatrics
Brewer, Maine