SQL Server数据库占用过多内存时产生的一些问题

数据库 SQL Server
此文章主要向大家介绍的是SQL Server数据库在占用过多内存时产生的一些问题的解决,以下就是文章的主要内容的描述。

在实际操作种经常会有网友会问道,SQL Server数据库占用了太多的内存,而且其还会不断的增长;或是已经设置了相关的使用内存,可是它却没有用到那么多,这是怎么一回事儿呢?

下面,我们来具体看以看SQL Server数据库是怎样使用内存的。

***的开销一般是用于数据缓存,如果内存足够,它会把用过的数据和觉得你会用到的数据统统扔到内存中,直到内存不足的时候,才把命中率低的数据给清掉。所以一般我们在看statistics io的时候,看到的physics read都是0。

其次就是查询的开销,一般地说,hash join是会带来比较大的内存开销的,而merge join和nested loop的开销比较小,还有排序和中间表、游标也是会有比较大的开销的。所以用于关联和排序的列上一般需要有索引。

再次就是对执行计划、系统数据的存储,这些都是比较小的。

我们先来看数据缓存对性能的影响,如果系统中没有其它应用程序来争夺内存,数据缓存一般是越多越好,甚至有些时候我们会强行把一些数据pin在高速缓存中。但是如果有其它应用程序,虽然在需要的时候MS SQL会释放内存,但是线程切换、IO等待这些工作也是需要时间的,所以就会造成性能的降低。这样我们就必须设置MS SQL的***内存使用。可以在SQL Server数据库 属性(内存选项卡)中找到配置***使用内存的地方,或者也可以使用sp_configure来完成。如果没有其它应用程序,那么就不要限制MS SQL对内存的使用。

***我们来看查询的开销,这个开销显然是越低越好,因为我们不能从中得到好处,相反,使用了越多的内存多半意味着查询速度的降低。所以我们一般要避免中间表和游标的使用,在经常作关联和排序的列上建立索引。
SQL Server占用过多内存的问题

上述的相关内容就是对SQL Server数据库占用过多内存的问题的描述,希望会给你带来一些帮助在此方面。

【编辑推荐】

  1. SQL Server 2008 升级顾问大盘点
  2. 如何判断SQL Server BIT类型占用空间的多少?
  3. SQL Server CLR之去除字符串中的指定字符串
  4. SQL Server数据库对大数据量表数据进行DELETE
  5. 优化SQL Server数据库的几个大招
责任编辑:佚名 来源: 比特网
相关推荐

2011-03-30 16:10:08

SQL Server数内存

2009-06-30 14:23:02

ORACLE数据库JSP

2010-06-30 10:23:27

SQL Server数

2011-08-25 14:50:42

SQL Server数常用操作

2010-08-31 14:13:48

DB2数据库

2020-07-29 08:03:26

Celery异步项目

2017-01-03 15:23:56

Android动态加载SO库

2010-08-25 14:32:49

DB2数据库迁移

2023-03-06 08:34:39

FURPS模型数据库

2016-10-18 22:10:02

HTTP推送HTML

2014-02-27 13:30:26

CacheLinux系统内存不足

2011-03-08 14:28:03

proftpdGentoo

2010-08-03 14:20:26

2011-07-27 15:01:48

MySQL数据库内存表

2009-06-12 10:25:42

Webservices

2022-01-16 08:04:44

集群部署canal

2018-06-12 15:39:41

容器部署云平台

2010-07-21 14:33:27

SQL Server

2009-08-06 16:01:30

C#接口成员

2010-05-04 15:59:05

Oracle字符集
点赞
收藏

51CTO技术栈公众号