日期:2014-05-17  浏览次数:20571 次

缓冲区对数据库性能的影响的实验设计
   本实验要求通过调整缓冲区管理系统的一些参数,并通过编写程序模拟高、低负载等多种情况,测试缓冲区对数据库性能的影响。以SQL Server数据库为例吧。
   1、应该编写怎样的程序?
   2、如何设置SQL Server 的缓冲区的大小?
   3、就题而言,缓冲区对数据库性能的影响到底是什么?
   

------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

其实sql server的缓冲区,一般只需要设置一个参数:

max server memory (MB)

然后,sql server会自动针对系统的负载,来使用这个缓冲区,你可以通过如下的命令,来调整缓冲区的大小:


sp_configure 'show advanced options',1
go
reconfigure
go

sp_configure 'max server memory (MB)',2048 --2GB
go
reconfigure
go


   我自己现在的实验思路是在数据库中建立一张表,表中的属性只有一个,然后将圆周率小数点之后的3200万位数字,以十个为一组,插入值到这张表中,共320万个记录,而且这会是320万个不同的记录。十个数字为一组是以字符串的形式储存的。最后通过调整SQL Server的缓冲区大小,来测试select语句查询某一特定记录的反映时间。
肯定会是缓冲区小于一定大小时,反映时间会与缓冲区大小反向变化;大于一定大小时,反映时间不再随缓冲区大小变化而变化。
   现在就是不知道怎样去调整这个缓冲区的大小。而且我能设置这个缓冲区到多小,以便于能够像我实验设计的那样进行测试。
   谢谢!


你的表建好后,你看看这个表有多大:

sp_spaceused @objname = '你的表名称'

比如,这个表有1GB,那么你可以考虑设置为 300MB,不过这个需要不断尝试调整的。
如果,这个表的数据,都存储在了内存中,那么速度就快,否则应该会慢


那能不能对单个查询设置缓冲区啊?


这个在sql server 好像是做不到的。