通过内存和CPU进行SQL Server性能调优

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:
   SQL Server内存还会影响性能,而如果在SQL Server系统中有太多的内存就是浪费钱,内存太少就又对性能十分有害。遗憾的是,决定你什么时候在系统里需要更多的内存很灵活。当内存出现问题时,你就会发现disk I/O就会增加,同样磁盘列队也会增加。你也会发现buffer cache hit ratio减少、page life会延长。随着内存需求的增加,你就会开始发现日志文件里的错误信息。

  SQL Server内存的一个重要部分已经分开了,这样一来就造成了性能退化。持续时间:%n秒、工作组(KB):%w、committed (KB)::%c、内存利用:%u。

  SQL Server遇到了%o IO请求事件用15秒以上的时间在数据库[%d] (%i)里的[%f]文件上完成。OS文件处理为%h。偏移的最新IO 长度为: %l.。

  但是这并不是这些错误被报告的唯一的一次,所以你需要和性能监控器metric一起使用来测定内存是否真的太低。

  在处理SQL Server内存问题方面也有一些解决办法,最简单的就是解决办法就是扩大服务器内存增加可使用的buffer cache的数量。这样做就增加了内存数据量、减少了你的disk I/O。其他的解决办法包括迁移大空间表的集群式索引以及只使用这些表的非集群式的索引,包括Primary Key。

  在集群式索引用于查找并且使用了集群式的index seeks时就不同了。如果使用了另一个索引,它就不可能减轻任何内存压力,因为集群式的索引并没有在内存里。如果使用了集群式的index scans,那么在不迁移索引的情况下一个新的非集群式的索引可能会有用。

  如何监控CPU对列(CPU queuing)

  CPU是硬件的另一个部分,它能够导致潜在的性能问题。大多数人只看CPU的速度或数量。然而就如同磁盘一样,CPU能够成为瓶颈。如果出现了CPU瓶颈,你可能100%不会去查看CPU的性能。CPU拥有命令对列的方式就如同I/O对列一样。命令被下载到CPU队列中,并且执行之前的操作程序等待CPU变得可以使用。由于CPU的速度变得更快了,我们在CPU里面做任何事情的速度也就加快了,但是我们一次也只能做同样多的事情。现在我们可以使用双核、三核、四核以及多核的CPU。这样我们一次能够执行更多的命令。

  你可以利用SQL Server性能监控器监控你的CPU。你会在System目标下面发现PerfMon,它有一个计算器的名字“处理机队列长度”。几乎任何其他大于零的队列长度都表明你需要增加一些操作程序,这些操作程序是SQL Server都能同时执行的。但是这并不表明需要一个更快的CPU,而是需要一个更多核的CPU。今天最新的服务器每台服务器都支持32核,一些高级的服务器支持64核(当chase按比例范围共同支持64核时)也可以创建(仅仅是某些厂商)。

  在第一部分和第二部分里,我已经指出了硬件里的一些地方。这些技巧不是解决性能问题最全面的、最终的解决方案。表的设计和索引的调整经常是并且长期是非常重要的。今天的SQL Server有望在更长的时间内做更多的事情,这样才能使硬件调整对数据库平台更加重要。用arsenal里的一些工具解决性能问题,这样你就能从还未或已经行最小限度升级的现存的每项硬件性能。但是当你的确需要购买时,这些技巧有助于你作出正确的决策,做到物有所值。


    本文转自 Fanr_Zh 博客园博客,原文链接:http://www.cnblogs.com/Amaranthus/archive/2011/03/27/1997087.html,如需转载请自行联系原作者



相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
7天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
45 10
|
25天前
|
JSON Java Serverless
nacos常见问题之cpu和内存占用高如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
138 0
|
1月前
|
SQL 数据库 数据安全/隐私保护
Sql Server数据库Sa密码如何修改
Sql Server数据库Sa密码如何修改
|
17天前
|
SQL
启动mysq异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
启动mysq异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
15 0
|
7天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
62 6
|
7天前
|
SQL 存储 数据挖掘
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
服务器数据恢复环境: 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。 服务器故障&初检: 由于未知原因,Sql Server数据库文件丢失,丢失数据涉及到3个库,表的数量有3000左右。数据库文件丢失原因还没有查清楚,也不能确定数据存储位置。 数据库文件丢失后服务器仍处于开机状态,所幸没有大量数据写入。 将raid5中所有磁盘编号后取出,经过硬件工程师检测,没有发现明显的硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
|
11天前
|
SQL 安全 Java
SQL server 2017安装教程
SQL server 2017安装教程
14 1
|
18天前
|
存储 缓存 PHP
阿里云服务器实例、CPU内存、带宽、操作系统选择参考
对于使用阿里云服务器的用户来说,云服务器的选择和使用非常重要,如果实例、内存、CPU、带宽等配置选择错误,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文为大家介绍一下阿里云服务器实例、CPU内存、带宽、操作系统的选择注意事项,以供参考。
阿里云服务器实例、CPU内存、带宽、操作系统选择参考
|
24天前
|
SQL 存储 Python
Microsoft SQL Server 编写汉字转拼音函数
Microsoft SQL Server 编写汉字转拼音函数
|
1月前
|
弹性计算 固态存储 Linux
2024年阿里云服务器租用详细价格表(CPU/内存/带宽/系统盘)
2024阿里云服务器租用优惠价格表,轻量服务器2核2G3M带宽轻量服务器一年61元,2核4G4M带宽轻量服务器一年165元12个月,ECS云服务器e系列2核2G配置、3M固定带宽、40G ESSD Entry云盘,99元一年、2核4G服务器30元3个月、2核4G配置365元一年、2核8G配置522元一年,云服务器u1、云服务器c7、g7和r7优惠价格表,CPU内存带宽系统盘配置详细报价:
731 3