微软BI开拓者数据库专区SQL Server开发 Understanding Hardware Performance Components

1  /  1  页   1 跳转 查看:4240

Understanding Hardware Performance Components

Understanding Hardware Performance Components

数据库管理员通常采用调试查询语句来获得更好的执行时间,因为他们知道相比之下对服务器硬件的更新要困难得多,实际上,为了数据库开发人员和数据库管理员自己的应用程序跑得更快,最主要的调整还是在硬件设备上,这并不意味着你的应用程序或者查询语句没有什么可写的,最起码,在运行你的应用程序或者执行你所写的查询语句的时候,不得不保持对硬件利用率达到最佳。
因为所有的性能问题最终会回到硬件上来,你必须有足够的时间来理解SQL Server在运行过程中是如何与硬件进行交互的。从性能的角度上看,做这件事情将帮助你选择更好的硬件来成为你新的SQL Server服务器的一部分并且帮助你的SQL Server更有效地利用这些硬件。下面就有四个基本的硬件概念:磁盘、网络、处理器和存储器(内存):

磁盘I/O
正如我们已经提到的,磁盘吞吐量通常是SQL Server服务器的一个瓶颈,即使你运行在一个拥有8GBRAM的服务器里,你的数据库也很可能很多次访问到RAM中空的内容,这就意味着SQL Server得频繁访问磁盘,因此,得想办法改进磁盘I/O
想象一下,比如你需要手抄一本1000页的书,当然你也可以有一个助手以至于你们两个人可以每人分担500页的手抄工作,或者你能一次请到九个人,这样你们每个人就只需要抄100页,因为你在一定时间段内所需要抄写的页数是固定的,帮手越多越好,同样这种想法也可以应用到磁盘上:磁盘也是越多越好,单个磁盘每秒钟只能传递一定量的数据块,如果你想加速你的磁盘子系统,最简单的方法就是为你的SQL Server增加磁盘的数量,有一种简单的方式是采用RAID,在RAID中,如RAID 5,数据是分布在磁盘组中的,每个磁盘都存储了整个数据的一小部分。
SQL Server也采用通过多磁盘来分散磁盘的工作量,比如:SQL Server存储它的数据库和事务日志在不同的文件里,把这两个文件如果放在不同的磁盘里将会使得SQL Server的访问这两个文件的时候更加迅速,SQL Server也能划分整个数据库到多个磁盘,通过对多磁盘的访问来提高磁盘性能,

网络I/O
网络I/O的速度是指SQL Server将数据发送到网络然后由使用者通过网络接收到数据的速度——它并不是常见的SQL Server服务器所遇到的瓶颈。大多数公司运行在100Mbps或者更快的网络上,并且通常服务器建立在10Gbps的主干网上。于是,基于这样的模式下,网络拥塞会使得SQL Server看上去运行非常慢,这里有一些提示,用来增加网络支持大范围SQL Server服务:
1、
SQL Server服务器连接到一台交换机上,并且所有来自客户端的对SQL Server的请求都通过交换机的不同端口。理论上,用一个多速交换机允许SQL Server区连接比客户机更高的带宽,这样就使得SQL Server允许同时和多个客户端保持会话。
2、
Windows server
操作系统有一个强制的最大吞吐量500Mbps,记住这个值,并且使你的服务器利用效率接近这个值,考虑多个服务器分担你的数据库工作量。

3、
用总线型PCI网络适配器,它有能力访问服务器的内存而不是利用处理器,理论上,安装网络适配器在PCI总线上能够适配器一个足够大的带宽到服务器的内存。
4、
避免运行其它服务,比如在SQL Server服务器上运行IIS。这些服务将会竞争网络带宽并且可能认为限制SQL Server的网络吞吐量。
5、
在编写查询语句的时候,要尽可能的使传递的数据量最少,比如:select * from customers,如果只是需要customerfirstname字段,那么最好把代码写成:select firstname from customers

处理器
处理器是导致性能问题最常见的设备,SQL Server是处理器的重要客户——每一个查询操作就需要通过处理器完成。多处理器是SQL Server优化的一种方式,并且大规模SQL Server执行通常包括4个或者8个处理器。通常,Win2K数据中心版本的操作系统能运行32个处理器,Win2K高级服务器版支持8个处理器,Win2K服务器版支持4个处理器。
多处理器计算机允许SQL Server2000具有并行处理事务的能力,即使SQL Server用多处理器运行一个简单的查询语句。并行通常能够允许SQL Server去做一些不常见的查询操作,例如:你有一个中等大小的表,大约几千行数据,你执行一个查询,这个可能会用到索引,但是SQL Server却选择做表的基本扫描。这个决定可能看上去很奇怪,直到你想到了SQL Server8个处理器并行处理表扫描——每个处理器只需要处理1/8的表——比起话一段时间打开索引然后找到适当的行,再去找到对应得物理数据页,前者会更有效率。
除了磁盘I/O,处理器利用通常是第一个性能瓶颈,它也是通常是不能改变的。因为不像磁盘或网络适配器,服务器能接受只有一定数量的处理器,并且一般来说能接受特殊的处理器速度,在你安装很多以后,就不再能更新处理器子系统了,大多数时间你唯一能做的就是调整数据操作来使得处理器降低负载或提高效率。

内存
内存是SQL Server另一个最重要的一个属性, SQL Server的内存能帮助解决磁盘I/O问题并且甚至帮助减轻处理器高负荷利用的症状。一般来说,SQL Server在需要的时候请求内存空间,在不再使用的时候释放它。理论上,这种行为意味着SQL Server能像一般应用程序一样运行得很好,而实际上,你将发现许多SQL Server类型的产品通常需要你所能提供的全部内存。SQL Server标准版支持最大2GB的应用程序内存,这种限制其实是Win2K服务器版操作系统对每个应用程序强制的,动态分配2GB存储空间——无论是物理RAM或者系统交换页的虚拟内存。
Win2K高级服务器版支持8G存储空间,数据中心服务器版支持64GB存储空间,SQL Server并不需要动态存储管理,相反,它能够尽可能的自己分配存储空间,一般情况下,你能够通过修改服务器配置选项来修改SQL所需要的存储空间最大值(但不能超过系统默认的最大值)。
SQL Server技术交流群:71791281(有些问题在线解决或许会更快)

本群将从即日起严厉打击:刷屏、打广告、粘贴各种垃圾信息的ID,一经发现,马上删除。

希望通过我们的努力,能为大家打造一个健康有序的交流平台。
 

回复: Understanding Hardware Performance Components

在硬件的问题上有些过时了!
 

回复: Understanding Hardware Performance Components

谢谢,我会努力的
SQL Server技术交流群:71791281(有些问题在线解决或许会更快)

本群将从即日起严厉打击:刷屏、打广告、粘贴各种垃圾信息的ID,一经发现,马上删除。

希望通过我们的努力,能为大家打造一个健康有序的交流平台。
 

回复: Understanding Hardware Performance Components

最起码,在运行你的应用程序或者执行你所写的查询语句的时候,不得不保持对硬件利用率达到最佳.

mark.

翻译得很不错呢.
 

回复: Understanding Hardware Performance Components

Raid5的读取是按照磁盘分散I/O,但写入效率较低,需要四次I/O操作(二读二写),在流水作业较为频繁的系统,应该避免使用Raid5
 
1  /  1  页   1 跳转

版权所有 微软BI开拓者 

Powered by Discuz!NT 2.1.202    Copyright © 2001-2012 Comsenz Inc.
Processed in 0.2656352 second(s) , 3 queries.
返顶部