登录
注册
论坛
空间
帮助
会员
界面
简洁版本
在线
微软BI开拓者
数据库专区
SQL Server开发
Understanding Hardware Performance Components
数据库专区
SQL Server管理
SQL Server开发
SQL Azure云数据库
商业智能综述区
BI探讨
BI项目管理
数据仓库专区
ETCL设计
SSIS使用与管理
SSIS二次开发
多维分析专区
多维建模
SSAS配置管理
MDX
SSAS二次开发
数据挖掘专区
数据挖掘建模
DMX
DM应用开发
前端应用专区
SharePoint Excel PowerPivot
SQL Server Reporting Services
PerformancePoint及其相关产品
其他
站务
灌水区
培训相关
求职招聘区
1
/ 1 页
1
跳转
页
查看:
4240
Understanding Hardware Performance Components
chenjing957
流浪的牙膏皮
个人空间
组别:
版主
性别:
生日:
1983-2-15
来自:
积分:
154
帖子:
162
注册:
2007-05-25
2007-05-27 16:19
|
只看楼主
树型
|
收藏
|
小
中
大
1
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
,如果只是需要
customer
的
firstname
字段,那么最好把代码写成:
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 Server
由
8
个处理器并行处理表扫描——每个处理器只需要处理
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,一经发现,马上删除。
希望通过我们的努力,能为大家打造一个健康有序的交流平台。
发送短消息
查看公共资料
查找该会员全部帖子
UID:
98
精华:
1
威望:
2
金钱:
154.35 元
ProSrv-:
0
状态:
离线
46124097
wsri
个人空间
组别:
新手上路
性别:
来自:
积分:
0
帖子:
1
注册:
2007-05-27
2007-05-27 16:41
|
树型
|
收藏
|
小
中
大
2
回复: Understanding Hardware Performance Components
在硬件的问题上有些过时了!
发送短消息
查看公共资料
查找该会员全部帖子
UID:
101
精华:
0
威望:
0
金钱:
0.1 元
ProSrv-:
0
状态:
离线
chenjing957
流浪的牙膏皮
个人空间
组别:
版主
性别:
生日:
1983-2-15
来自:
积分:
154
帖子:
162
注册:
2007-05-25
2007-05-27 17:12
|
只看楼主
树型
|
收藏
|
小
中
大
3
回复: Understanding Hardware Performance Components
谢谢,我会努力的
SQL Server技术交流群:71791281(有些问题在线解决或许会更快)
本群将从即日起严厉打击:刷屏、打广告、粘贴各种垃圾信息的ID,一经发现,马上删除。
希望通过我们的努力,能为大家打造一个健康有序的交流平台。
发送短消息
查看公共资料
查找该会员全部帖子
UID:
98
精华:
1
威望:
2
金钱:
154.35 元
ProSrv-:
0
状态:
离线
46124097
Administrator
Administrator
个人空间
组别:
管理员
性别:
来自:
积分:
104
帖子:
290
注册:
2007-05-22
2007-05-28 09:05
|
树型
|
收藏
|
小
中
大
4
回复: Understanding Hardware Performance Components
最起码,在运行你的应用程序或者执行你所写的查询语句的时候,不得不保持对硬件利用率达到最佳.
mark.
翻译得很不错呢.
发送短消息
查看公共资料
查找该会员全部帖子
UID:
1
精华:
5
威望:
14
金钱:
104.15 元
ProSrv-:
0
状态:
离线
suntt
地主宝宝
个人空间
组别:
版主
性别:
来自:
积分:
100
帖子:
245
注册:
2007-05-23
2007-05-28 16:15
|
树型
|
收藏
|
小
中
大
5
回复: Understanding Hardware Performance Components
Raid5的读取是按照磁盘分散I/O,但写入效率较低,需要四次I/O操作(二读二写),在流水作业较为频繁的系统,应该避免使用Raid5
发送短消息
查看公共资料
查找该会员全部帖子
UID:
5
精华:
8
威望:
16
金钱:
100.3 元
ProSrv-:
0
状态:
离线
di.bao@hotmail.com
66998541
<<
上一主题
|
下一主题
>>
1
/ 1 页
1
跳转
页
论坛跳转...
数据库专区
SQL Server管理
SQL Server开发
SQL Azure云数据库
商业智能综述区
BI探讨
BI项目管理
数据仓库专区
ETCL设计
SSIS使用与管理
SSIS二次开发
多维分析专区
多维建模
SSAS配置管理
MDX
SSAS二次开发
数据挖掘专区
数据挖掘建模
DMX
DM应用开发
前端应用专区
SharePoint Excel PowerPivot
SQL Server Reporting Services
PerformancePoint及其相关产品
其他
站务
灌水区
培训相关
求职招聘区
内务
服务测试区
我的主题
我的帖子
我的精华
我的空间
帖子标题
空间日志
相册标题
作 者
我的主题
我的帖子
我的附件
我的精华
我的空间