易截截图软件、单文件、免安装、纯绿色、仅160KB

执行缓存以优化SQL Server的内存占用

作者:superhasty
  2007-11-29
在论坛上常见有朋友抱怨,说SQL Server太吃内存了。这里笔者根据经验简单介绍一下内存相关的调优知识。首先说明一下SQL
Server内存占用由哪几部分组成。SQL Server占用的内存主要由三部分组成:数据缓存(Data
Buffer)、执行缓存(Procedure Cache)、以及SQL Server引擎程序。SQL
Server引擎程序所占用缓存一般相对变化不大,则我们进行内存调优的主要着眼点在数据缓存和执行缓存的控制上。本文主要介绍一下执行缓存的调优。数据
缓存的调优将在另外的文章中介绍。
    对于减少执行缓存的占用,主要可以通过使用参数化查询减少内存占用。
    1、使用参数化查询减少执行缓存占用
我们通过如下例子来说明一下使用参数化查询对缓存占用的影响。为方便试验,我们使用了一台没有其它负载的SQL Server进行如下实验。
    下面的脚本循环执行一个简单的查询,共执行10000次。 
    首先,我们清空一下SQL Server已经占用的缓存:
    dbcc freeproccache
    然后,执行脚本:
DECLARE

@t

datetime
SET

@t

=

getdate
()
SET
NOCOUNT
ON
DECLARE

@i

INT
,
@count

INT
,
@sql

nvarchar
(
4000
)
SET

@i

=

20000
WHILE

@i

<=

30000
BEGIN
SET

@sql

=

'
SELECT @count=count(*) from P_Order WHERE MobileNo =
'

+

cast
(
@i

as

varchar
(
10
) )
EXEC
sp_executesql
@sql
,N
'
@count INT OUTPUT
'
,
@count
OUTPUT
SET

@i

=

@i

+

1
END
PRINT

DATEDIFF
( second,
@t
,
current_timestamp
)
    输出:
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
    11
    使用了11秒完成10000次查询。
    我们看一下SQL Server缓存中所占用的查询计划:
Select

Count
(
*
) CNT,
sum
(size_in_bytes) TotalSize
from
sys.dm_exec_cached_plans
    查询结果:共有2628条执行计划缓存在SQL Server中。它们所占用的缓存达到:
    92172288字节 = 90012KB = 87 MB。
 


相关文档:

SQL Server的系统表及其应用研究


  1. SQL Server的系统表
  Microsoft的SQL Server是一个可伸缩的高性能数据库管理系统,专为分布式客户机/服
务器环境而设计,SQL Server几乎将所有的配置信息、安全性信息和对象信息都存储在了它自
身的系统表中,而系统表存在于每个独立的数据库中,存储一个特定数据库对象信息的系统表
通常称为数据库目录,M ......

实例名 (SQL Server Express)

使用 Microsoft SQL Server 安装向导的"实例名"页,可指定创建默认实例还是创建 SQL Server Express 命名实例。除非您选择默认实例,否则 SQL Server Express 将始终安装命名实例 (SQLExpress)。此行为与 SQL Server 2005 不同,后者在未选择命名实例的情况下,将始终安装默认实例。
 选项
选项
说明
默认实例 ......

SQL插入语句(INSERT INTO )

INSERT INTO
 tableName ( columnName1, columnName2, columnName3, columnName4)
VALUES      (  '45', '西藏办',  TO_Date( '2010-03-10 12:00:00', 'YYYY-MM-DD HH24:MI:SS'), NULL,);
commit; ......

转 SQL server 与Oracle开发比较

原文地址:http://www.cnblogs.com/wangxiaohuo/archive/2008/04/20/1162631.html
 
本文档主要从oracle与sql server语法上进行差异性比较,诸如两者在管理,性能,优化等方面的差异不作比较。
●概念上区别
   1.Oracle 是一种对象关系数据库管理系统(ORDBMS),而Sql server 只是关系型数据库管
&nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号