首先说明一下sql Server内存占用由哪几部分组成。sql Server占用的内存主要由三部分组成:数据缓存(Data Buffer)、执行缓存(Procedure Cache)、以及sql Server引擎程序。sql Server引擎程序所占用缓存一般相对变化不大,则我们进行内存调优的主要着眼点在数据缓存和执行缓存的控制上。本文主要介绍一下执行缓存的调优。数据缓存的调优将在另外的文章中介绍。 对于减少执行缓存的占用,主要可以通过使用参数化查询减少内存占用。
1、使用参数化查询减少执行缓存占用
我们通过如下例子来说明一下使用参数化查询对缓存占用的影响。为方便试验,我们使用了一台没有其它负载的sql Server进行如下实验。
下面的脚本循环执行一个简单的查询,共执行10000次。 首先,我们清空一下sql Server已经占用的缓存:
dbcc freeproccache 然后,执行脚本:
<div class="codetitle"><a style="CURSOR: pointer" data="6647" class="copybut" id="copybut6647" onclick="doCopy('code6647')"> 代码如下: