6

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?

mike nelson
  • 161
  • 1
  • 4

2 Answers2

9

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:

<ul>
<li>A single-core, hyper-threaded processor with 2 logical CPUs per socket.</li>
<li>A dual-core processor with 2 logical CPUs.</li>
<li>A quad-core processor with 4 logical CPUs.</li>
</ul>
  • 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

Remus Rusanu
  • 52,054
  • 4
  • 96
  • 172
0

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