I've been testing SQL Server 2008R2 Express to see if it is limited to 1GB of RAM and 1 CPU.

It certainly seems to be using more than one CPU, as I see spikes on all 4 CPUs in Task Manager when I run a big query. I've selected * from all the tables in the database I have, and it got it to use 1.4GB RAM when looking at the Total Server Memory in perfmon (I gather this is the correct stat to look at). This is showing as 1.5GB Mem Usage on Task Manager (which I gather isn't reliable).

However, it does not seem to want to go any further than 1,441,792KB. This seems odd, so I am not convinced either way.

Anyone have any knowledge of why this might happen and whether the limits are actually enforced?

  • I've seen mine go above 3GB, which I find really weird. When I restart SQL Server it goes around 1.4/1.5GB for a few days but always ends around 3GB after a week or so.
    – DermFrench
    Mar 11 '14 at 14:17

SQL Server Express does enforce the limits, but the limits are not what you expect:

SQL Server supports the specified number of processor sockets multiplied by the number of logical CPUs in each socket. For example, the following is considered a single processor for purposes of this table:

  • A single-core, hyper-threaded processor with 2 logical CPUs per socket.
  • A dual-core processor with 2 logical CPUs.
  • A quad-core processor with 4 logical CPUs.
  • Memory: Express restricts the max size of the buffer pool to only 1GB. The buffer pool accounts only for some of the overall process memory.

See Thread and Task Architecture and Memory Management Architecture

  • Thanks! That makes sense. The link you gave explains it well, and talks about the performance counters. However it does refer to "Total Server Memory" but it appears that "Maximum Workspace Memory" perf counter is about 1GB and won't go any higher, so I would say that is in fact the one to look at. On another version of SQL Server I have, this goes over 1GB.
    – mike nelson
    Feb 9 '12 at 2:26

for the limit in cache you can take in account this performance counters that i found. MSSQL$SQLEXPRESS:Memory Manager/Database Cache Memory (KB)

 Amount of memory the server is currently using for the database cache.

MSSQL$SQLEXPRESS:Plan Cache/Cache Hit Ratio (KB)

 Ratio between cache hits and lookups

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.