调整Windows参数提高MSSQL Server性能

调整Windows参数提高MSSQL Server性能,第1张

SQL Server数据与Windows操作系统来自同一个家庭,在技术上具有一定的共通性。我们可以调整Windows操作系统的一些参数来提高SQLServer数据服务器的性能,使之更高效的运行。

一、 提高虚拟内存来提高数据库服务器性能。

虚拟内存简单的来说就是内盘中的一块空间。当物理内存不够时,操作系统会自动把某些驻留在内存中暂时不用的内容移植到这个在硬盘上的虚拟内存中,以释放更多的空间给新的应用程序使用。也就是说,当物理内存使用完时操作系统会拿出一部分硬盘空间来充当内存使用,以缓解内存的压力。为此从某种程度来说,这个虚拟内存的设置也会影响到数据库服务器的性能。那么这个虚拟内存到底该设置多少为好呢这没有一个固定的标准。这需要数据库管理员根据部署的应用来确定。

如数据库没有一些高级的应用,如数据仓库、全文索引或者不适多个应用服务一身的话,笔者认为只要把虚拟内存设置为物理内存的15倍即可。但是,如果在数据库服务器上配置了数据仓库或者全文索引的话,则这个15倍的虚拟内存往往是不够的。此时笔者建议需要把虚拟内存配置为物理内存的3倍到四倍。同时,需要调整数据库中的最大服务器内存选项,将其设置为物理内存的15倍。也就是说,其在使用内存的时候,可以使用虚拟内存大小的一半。注意这个设置时必须的,否则的话,调整数据库虚拟内存很难起到应有的效果。而且当以后内存升级了,则也需要同时更改这个两个参数。

最后需要说明的一点就是,虚拟内存并不是越大越好。如果设置为10倍、20倍,那么这是浪费。以往内存中没有这么多的内容可以往虚拟内存中存放。所以,针对SQL Server数据库与Windows服务器来说,4倍于物理内存的虚拟内存已经足够了。设置的再大的话,就没有多少的实际意义了。

二、 调整本地客户端的任务优先级。

在数据库初始化的过程中,有大部分的任务需要在本地客户端上完成。即时在后续维护中,出于某种原因仍然要在本地客户端上操作。那么什么是本地客户端呢其实本地客户端就是跟数据库服务器部署在同一台计算机上的客户端。如我们在导入期初数据的时候,为了方便会在本地客户端上直接进行操作。因为这可以节省数据在网络上传输的时间。

不过在本地客户端上进行操作的时候,往往分为前台运行与后台运行。操作系统这么设计的本意是为了提高远程客户端的执行效率。如在远程客户端生成物料需求计划的时候,由于运算量比较大,其花费的时间可能比较久,如可能需要20分钟。为了提高工作效率,对于类似的作业,应用程序可以把这个运算放置在后台运行。不过需要注意的是,把某个作业放置在后台运行,并不能够节省其运行的时间,而往往由于放置在后台的作业其优先级比较低,往往实际花费的时间还会延长,如会延长到23分钟等等。之所以要把这个长时间运行的作业放置在后台,主要是为了让用户不用干等,可以先作其他事情。等到运行完成后,系统会自动把相关的结果返回给用户。这在感觉上是缩短了运行的时间(往往在等待的过程中时间过得特别慢),而实际上其运行的时间根本没有缩短,甚至会更长。

这个处理策略对于远程客户端来说确实有用,至少可以在感觉上缩短用户的等待时间。而且可以让用户先进行其他的操作。但是如果在本地客户端上,处理某些作业的时候,可能并不希望如此。如在本地客户度进行物料需求计划测试,数据库管理员希望即时把这个计划放置在后台运行,其也能够与前台应用程序具有相同的优先级,以减少这个处理时间。所以,当数据库管理员遇到类似情况时,就需要调整操作系统的相关设置,让作为在后台运行的应用程序,也能够与前台运行的其他应用程序具有相同的优先级。

通常情况下,安装完干净的SQL Server数据库时,服务器任务调度设置为“务”,即前后台应用程序没有优先级的分别。也就是说,此时将为前台应用程序与后台应用程序提供相等的处理时间。但是有时候为了兼顾远程客户端,在部署实例的时候,会改变这设置。如把降低后台应用程序的优先级,让更多的资源能够服务于前台应用程序。在大部分情况下,这个设置是必要的。不过如果出于某些原因需要在本地客户端执行某些操作的话,则数据库管理员需要暂时调整这个配置,以节省某些作业的运行时间。有时候甚至可以将服务器任务调度设置为最大或者应用程序,这就可以为前台应用程序提高最大的处理器时间。

可见,任务调度计划设置也没有一个统一的优劣标准。主要还是需要看数据库服务器到底用来做什么为此这也对数据库管理员提出了比较高的要求。此时数据库管理员必须要理解各种优先级设置对于数据库服务器性能的影响。然后再根据当时的实际应用来合理的调整任务级别的优先级,以取得本地客户端操作的最大性能。

三、 限制系统内存用户文件缓存的大小。

毋庸置疑,数据库服务器的物理内存对于数据库的性能具有至关重要的影响。但是有时候我们会发现一个奇怪的现象,即即时增加了数据库服务器的物理内存,但是仍然没有发现数据库的性能有很大的改善,或则说比原先的还要差一点。这是什么原因呢如结合SQLServer数据库来说,这主要是内存的分配不是很合理。如大部分的内存被用来存放文件缓存。此时如果增加的内存都被用来存放文件缓存了,那么光靠简单的增加内存并不能够提高数据库的性能。所以,有时候我们数据库管理员需要优化SQL Server服务器的内存使用情况,如需要限制用户文件缓存的内存量。

那么该如何限制呢这不是SQLServer数据库服务器来完成的,而是需要通过Windows操作下系统的配置来实现。如要限制文件系统缓存,需要确保没有选择“最大化文件共享数据吞吐量”这个选项(其原来是为文件共享所准备的),然后选择“最小化使用对内存”或者“平衡”选项,来制定最小文件系统缓存。

具体来说,可以按如下步骤来调整这个选项,以提高服务器的性能。首先,依次打开控制面板、选择网络连接、单击本地连接。然后打开常规选项卡,选择属性。在本地连接属性对话框中选择常规选项卡,选择微软网络的文件和打印机共享,并单击属性。在弹出来的对话框中,去掉“最大化文件共享数据吞吐量”选择,可以选择“最大化网络应用程序的数据吞吐量”。然后按确定即可。如此操作系统就会自动调整内存的分配,不会给文件缓存保留很大的空间,从而可以提高数据库内部处理的性能。往往这对于事务性的应用系统很有作用,能够在很大程度上提高数据库的性能。

不过在调整这个配置后,如果在站台服务器上还部署有文件服务器的话,那么这个文件服务器的性能就会受到比较大的影响。因为对于文件服务器应用来说,需要比较大的文件缓存量。为此在某种程度上来说,数据库服务器与文件服务器在这方面是相互冲突的。数据库管理员就需要相互权衡,然后确定一个最佳的处理方案。不过一般情况下,不建议将数据库服务器与文件服务器、打印服务器等等部署在同一个服务器上。因为这三种不同的应用,彼此之间的资源争用还是很厉害的。为此会给数据库的性能带来比较大的负面影响。

如果光从数据库服务器来说,限制文件缓存的内存使用量,确实可以提高数据库服务器的性能。特别是对于某些特别的应用与计算,由于需要用到比较大的内存,故可以大幅度提高这些作业的运算量。

可见我们在优化数据库性能的时候,有时还不能够光从数据库服务器着手。必要的时候,我们需要换一个角度,从操作系统出发,调整操作系统的相关配置,也能够明显的提高数据库的性能。

数据库优化一方面是找出系统的瓶颈,提高MySQL数据库的整体性能,而另一方面需要合理的结构设计和参数调整,以提高用户的相应速度,同时还要尽可能的节约系统资源,以便让系统提供更大的负荷

1 优化一览图

2 优化

笔者将优化分为了两大类,软优化和硬优化,软优化一般是操作数据库即可,而硬优化则是操作服务器硬件及参数设置

21 软优化

211 查询语句优化

1首先我们可以用EXPLAIN或DESCRIBE(简写:DESC)命令分析一条查询语句的执行信息

2例:

显示:

其中会显示索引和查询数据读取数据条数等信息

212 优化子查询

在MySQL中,尽量使用JOIN来代替子查询因为子查询需要嵌套查询,嵌套查询时会建立一张临时表,临时表的建立和删除都会有较大的系统开销,而连接查询不会创建临时表,因此效率比嵌套子查询高

213 使用索引

索引是提高数据库查询速度最重要的方法之一,关于索引可以参高笔者<MySQL数据库索引>一文,介绍比较详细,此处记录使用索引的三大注意事项:

214 分解表

对于字段较多的表,如果某些字段使用频率较低,此时应当,将其分离出来从而形成新的表,

215 中间表

对于将大量连接查询的表可以创建中间表,从而减少在查询时造成的连接耗时

216 增加冗余字段

类似于创建中间表,增加冗余也是为了减少连接查询

217 分析表,,检查表,优化表

分析表主要是分析表中关键字的分布,检查表主要是检查表中是否存在错误,优化表主要是消除删除或更新造成的表空间浪费

1 分析表: 使用 ANALYZE 关键字,如ANALYZE TABLE user;

2 检查表: 使用 CHECK关键字,如CHECK TABLE user [option]

option 只对MyISAM有效,共五个参数值:

3 优化表:使用OPTIMIZE关键字,如OPTIMIZE [LOCAL|NO_WRITE_TO_BINLOG] TABLE user;

LOCAL|NO_WRITE_TO_BINLOG都是表示不写入日志,优化表只对VARCHAR,BLOB和TEXT有效,通过OPTIMIZE TABLE语句可以消除文件碎片,在执行过程中会加上只读锁

22 硬优化

221 硬件三件套

1配置多核心和频率高的cpu,多核心可以执行多个线程

2配置大内存,提高内存,即可提高缓存区容量,因此能减少磁盘I/O时间,从而提高响应速度

3配置高速磁盘或合理分布磁盘:高速磁盘提高I/O,分布磁盘能提高并行操作的能力

222 优化数据库参数

优化数据库参数可以提高资源利用率,从而提高MySQL服务器性能MySQL服务的配置参数都在mycnf或myini,下面列出性能影响较大的几个参数

223 分库分表

因为数据库压力过大,首先一个问题就是高峰期系统性能可能会降低,因为数据库负载过高对性能会有影响。另外一个,压力过大把你的数据库给搞挂了怎么办?所以此时你必须得对系统做分库分表 + 读写分离,也就是把一个库拆分为多个库,部署在多个数据库服务上,这时作为主库承载写入请求。然后每个主库都挂载至少一个从库,由从库来承载读请求。

224 缓存集群

如果用户量越来越大,此时你可以不停的加机器,比如说系统层面不停加机器,就可以承载更高的并发请求。然后数据库层面如果写入并发越来越高,就扩容加数据库服务器,通过分库分表是可以支持扩容机器的,如果数据库层面的读并发越来越高,就扩容加更多的从库。但是这里有一个很大的问题:数据库其实本身不是用来承载高并发请求的,所以通常来说,数据库单机每秒承载的并发就在几千的数量级,而且数据库使用的机器都是比较高配置,比较昂贵的机器,成本很高。如果你就是简单的不停的加机器,其实是不对的。所以在高并发架构里通常都有缓存这个环节,缓存系统的设计就是为了承载高并发而生。所以单机承载的并发量都在每秒几万,甚至每秒数十万,对高并发的承载能力比数据库系统要高出一到两个数量级。所以你完全可以根据系统的业务特性,对那种写少读多的请求,引入缓存集群。具体来说,就是在写数据库的时候同时写一份数据到缓存集群里,然后用缓存集群来承载大部分的读请求。这样的话,通过缓存集群,就可以用更少的机器资源承载更高的并发。

一个完整而复杂的高并发系统架构中,一定会包含:各种复杂的自研基础架构系统。各种精妙的架构设计因此一篇小文顶多具有抛砖引玉的效果,但是数据库优化的思想差不多就这些了

这个参数一般是指服务器的配置硬件和网络配置参数,比如:

名称:1999/年快云VPS经济型服务器

CPU: E5-2600系列 四核

内存:3GB DDR3 ECC 1333MHz

硬盘:140G SAS硬盘( 40G系统盘+ 100G数据盘)

网卡:千兆网卡

地址:独享IP地址一个

线路:类型BGP多线(电信、联通、移动、铁通)

带宽:配额5M独享

赠送:云数据库DB-1型 3G+3G备份 MySQL55或MS SQL Server2012

系统:Windows2003/windows2008/centos 66

参数详情中详细列出了硬件各配置的具体数值,以及网络配置和系统的详情选择。这就是服务器参数。

 Oracle数据库服务器是整个系统的核心 它的性能高低直接影响整个系统的性能 为了调整Oracle数据库服务器的性能 主要从以下几个方面考虑

 

 ◆ 调整操作系统以适合Oracle数据库服务器运行 Oracle数据库服务器很大程度上依赖于运行服务器的操作系统 如果操作系统不能提供最好性能 那么无论如何调整 Oracle数据库服务器也无法发挥其应有的性能

 

  为Oracle数据库服务器规划系统资源

 

 据已有计算机可用资源 规划分配给Oracle服务器资源原则是 尽可能使Oracle服务器使用资源最大化 特别在Client/Server中尽量让服务器上所有资源都来运行Oracle服务

 

  调整计算机系统中的内存配置

 多数操作系统都用虚存来模拟计算机上更大的内存 它实际上是硬盘上的一定的磁盘空间 当实际的内存空间不能满足应用软件的要求时 操作系统就将用这部分的磁盘空间对内存中的信息进行页面替换 这将引起大量的磁盘I/O操作 使整个服务器的性能下降 为了避免过多地使用虚存 应加大计算机的内存

 

  为Oracle数据库服务器设置操作系统进程优先级

 

 不要在操作系统中调整Oracle进程的优先级 因为在Oracle数据库系统中 所有的后台和前台数据库服务器进程执行的是同等重要的工作 需要同等的优先级 所以在安装时 让所有的数据库服务器进程都使用缺省的优先级运行

 

 ◆ 调整内存分配

 

 Oracle数据库服务器保留 个基本的内存高速缓存 分别对应 种不同类型的数据 库高速缓存 字典高速缓存和缓冲区高速缓存 库高速缓存和字典高速缓存一起构成共享池 共享池再加上缓冲区高速缓存便构成了系统全程区(SGA) SGA是对数据库数据进行快速访问的一个系统全程区 若SGA本身需要频繁地进行释放 分配 则不能达到快速访问数据的目的 因此应把SGA放在主存中 不要放在虚拟内存中 内存的调整主要是指调整组成SGA的内存结构的大小来提高系统性能 由于Oracle数据库服务器的内存结构需求与应用密切相关 所以内存结构的调整应在磁盘I/O调整之前进行

 

  库缓冲区的调整

 

 库缓冲区中包含私用和共享SQL和PL/SQL区 通过比较库缓冲区的命中率决定它的大小 要调整库缓冲区 必须首先了解该库缓冲区的活动情况 库缓冲区的活动统计信息保留在动态性能表v$librarycache数据字典中 可通过查询该表来了解其活动情况 以决定如何调整 Select sum(pins) sum(reloads) from v$librarycache; Pins列给出SQL语句 PL/SQL块及被访问对象定义的总次数 Reloads列给出SQL 和PL/SQL块的隐式分析或对象定义重装载时在库程序缓冲区中发生的错误 如果sum(pins)/sum(reloads) ≈ 则库缓冲区的命中率合适 若sum(pins)/sum(reloads)> 则需调整初始化参数 shared_pool_size来重新调整分配给共享池的内存量

 

  数据字典缓冲区的调整

 

 数据字典缓冲区包含了有关数据库的结构 用户 实体信息 数据字典的命中率 对系统性能影响极大 数据字典缓冲区的使用情况记录在动态性能表v$librarycache中 可通过查询该表来了解其活动情况 以决定如何调整 Select sum(gets) sum(getmisses) from v$rowcache; Gets列是对相应项请求次数的统计 Getmisses 列是引起缓冲区出错的数据的请求次数 对于频繁访问的数据字典缓冲区 sum(getmisses)/sum(gets)< %~ % 若大于此百分数 则应考虑增加数据字典缓冲区的容量 即需调整初始化参数shared_pool_size来重新调整分配给共享池的内存量

 

  缓冲区高速缓存的调整

 

 用户进程所存取的所有数据都是经过缓冲区高速缓存来存取 所以该部分的命中率 对性能至关重要 缓冲区高速缓存的使用情况记录在动态性能表v$sysstat中 可通过查询该表来了解其活动情况 以决定如何调整

 

 Select name value from v$sysstat

 

 where name in ( dbblock gets consistent gets physical reads );

 

 dbblock gets和consistent gets的值是请求数据缓冲区中读的总次数 physical reads的值是请求数据时引起从盘中读文件的次数 从缓冲区高速缓存中读的可能性的高低称为缓冲区的命中率 计算公式

 

 Hit Ratio= (physical reds/(dbblock gets+consistent gets))如果Hit Ratio< %~ % 则应增大db_block_buffers的参数值 db_block_buffers可以调整分配给缓冲区高速缓存的内存量 即db_block_buffers可设置分配缓冲区高速缓存的数据块的个数 缓冲区高速缓存的总字节数=db_block_buffers的值db_block_size的值 db_block_size 的值表示数据块大小的字节数 可查询 v$parameter 表 select name value from v$parameter where name= db_block_size ; 在修改了上述数据库的初始化参数以后 必须先关闭数据库 在重新启动数据库后才能使新的设置起作用

 

 ◆ 调整磁盘 I/O

 

 磁盘的I/O速度对整个系统性能有重要影响 解决好磁盘I/O问题 可显著提高性能 影响磁盘I/O的性能的主要原因有磁盘竞争 I/O次数过多和数据块空间的分配管理

 

 为Oracle数据库服务器创建新文件时 不论是表空间所用的数据文件还是数据事务登录所用的日志文件 都应仔细考虑数据库服务器上的可用磁盘资源 如果服务器上有多个磁盘 则可将文件分散存储到各个可用磁盘上 减少对数据库的数据文件及事务日志文件的竞争 从而有效地改善服务器的性能 对于不同的应用系统都有各自的数据集 应当创见不同的表空间分别存储各自应用系统的数据 并且尽可能的把表空间对应的数据文件存放在不同的磁盘上 这种从物理上把每个应用系统的表空间分散存放的方法 可以排除两个应用系统竞争磁盘的可能性 数据文件 事务日志文件分别存放在不同的磁盘上 这样事务处理执行的磁盘访问不妨碍对相应的事物日志登记的磁盘访问 如果有多个磁盘可用 将两个事物日志成员放在不同的磁盘驱动器上 就可以消除日志文件可能产生的磁盘竞争 应把一个应用的表数据和索引数据分散存放不同表空间上 并且尽量把不同类型的表空间存放在不同磁盘上 这样就消除了表数据和索引数据的磁盘竞争

 

 ◆ 调整数据库服务器的回滚段

 

 回滚段是一个存储区域 数据库使用该存储区域存放曾经由一个事务更新或删除的行的原始数据值 如果用户要回滚一个事务所做的改变 那么数据库就从回滚段中读回改变前的数据并使该事务影响的行改变为它们的原状态 回滚段控制着数据库处理事务的能力 因而在数据库成功中起著关键性的作用 不管数据库的其它部分设计得多好 如果它设计得不合理 将会严重影响系统的性能 建立和调整回滚段的原则如下

 

  分离回滚段

 

 分离回滚段是指单独为回滚段创建一个以上的表空间 使回滚段与数据字典 用户数据 索引等分离开来 由于回滚段的写入与数据和索引的写入是并行进行的 因此将它分离出来可以减少I/O争用 如果回滚段与数据不分离 倘若要某个表空间脱机或撤消 那么在该表空间中的各个回滚段没有全部脱机之前 不能将这个表空间脱机或撤消 而一旦该表空间不可用 则该表空间中的所有回滚段也不能使用 这将浪费所有分配的磁盘空间 所以 独立回滚段可使数据库管理变得容易 回滚段的经常性收缩 使得表空间的自由块更容易形成碎片 分离回滚段可以减少数据库表空间的碎片产生

 

  创建不同大小的回滚段群

 

lishixinzhi/Article/program/Oracle/201311/18922

怎么查看中科方德服务器配置

怎么查看中科方德服务器配置

1、中科方德操作系统查看cpu型号的方法很简单。打开电脑,鼠标右击此电脑,选择属性,就可以找到cpu型号了。

2、点击电脑左下角的开始按钮,打开系统菜单。在打开的菜单中,点击所有程序,查找附件文件夹。找到附件文件夹后点击打开,在该文件夹下有个命令提示符的图标,点击打开。

3、首先打开中科方德桌面操作系统,点击系统设置中心。其次点击界面设置,点击时间进入。最后设置系统时间即可。

4、。中科方德是主要国产操作系统厂商之一,拥有成熟完善的服务器操作系统,其安全管理员初始默认密码为123456。

5、针对科方德系统开机显示自动,可能是由于系统设置的自动启动功能导致的。

如何查看linux服务器的版本和配置信息

如何查看linux服务器的版本和配置信息

linux下看配置,可没有windows那么直观。你只能一个一个查看。

:登录到linux服务器执行lsb_release-a命令,即可查看所有版本信息。2:登录到linux执行cat/etc/issue(切记cat后要空一格)即可看到版本信息。

查看Linux系统版本的命令方法一:lsb_release-a用法:[root@S-CentOS~]#lsb_release-a注意:使用该命令即可列出所有版本信息,这个命令适用于所有的Linux发行版,包括RedHat、SUSE、Debian等发行版。

需要准备的材料分别是:电脑、linux连接工具。首先连接上linux主机,进入等待输入指令的linux命令行状态。输入:bash--version,按回车。此时打印出的“version46(1)-release”就是该shell的版本。

查看操作系统的版本(我现在只用过redhat,所以只以这个为例):cat/etc/redhat-release。

首先,连接相应linux主机,进入到linux命令行状态下,等待输入shell指令。在linux命令行下输入shell指令:cat/proc/cpuinfo,按回车,会看到cpu的信息。输入shell指令:fdisk-l,按回车,会看到硬盘的信息。

oracle怎么查看服务器配置

oracle怎么查看服务器配置

1、如果本机测试,可以不配置监听和连接串,直接使用用户名和密码就可以连接当然也可以使用按远程服务器配置一样使用NetConfigurationAssistant来配置连接串。

2、通过命令来查看,如用户权限,表名,存储位置,版本等等。

3、安装了oracle客户端以及PLSQLdeveloper了吗?如果这些都安装了,你去配置一下监听文件tnsnamesora即可。里面配置一下别名,IP,以及SID就可以。

4、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。在命令行下输入shell指令:whereisoracle。最后,按下回车键执行shell指令,此时会看到数据库oracle的具体位置被打印了出来。

5、察看本机oracle安装目录下的tns配置。HOME/network/admin/tnsnamesora。

6、步骤1:打开企业管理器,如下。步骤2:选择数据库,安全性,点击新建链接服务器。步骤3:选择链接服务器属性,常规,输入名称:TEST,选择ORACLE数据库提供程序,输入名称、数据源。步骤4:进行安全性设置。

服务器配置怎么看的

服务器配置怎么看的

1、服务器配置可以从该服务器的参数里得知。另外可以和普通电脑一样看服务器配置,比普通电脑配置高很多。

2、在登录进入服务器系统后,点击左下角的开始,进入开始菜单。在开始的菜单中,选择“运行”图标。点击后,进入到运行的界面。在运行界面栏中,输入CMD命令。输入后,点击确定,进入命令窗口。

3、查看DELL服务器阵列的方法开机时看到CTRL+R时迅速按下相应的组合键然后会自动进入RAID配置界面。进入到RAID阵列配直界面后可用上下键查看RAID信息红框内显示的是RAID5,这就是已经配置好的阵列。

4、怎么查看电脑服务器地址和端口配置的方法首先在右下角电脑连接右键打开网络连接设置。选择一个正常使用的网络连接右键属性。打开本地连接属性后看到高级选项。在高级里面点击设置。在这个界面里打开例外,如图。添加端口就好了。

5、首先,连接相应linux主机,进入到linux命令行状态下,等待输入shell指令。在linux命令行下输入shell指令:cat/proc/cpuinfo,按回车,会看到cpu的信息。输入shell指令:fdisk-l,按回车,会看到硬盘的信息。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 调整Windows参数提高MSSQL Server性能

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情