SQL性能优化 第4章 调整SQL Server

news/2024/7/20 15:49:03 标签: 运维, 操作系统, 内存管理
1 、决定 CPU瓶颈依据,使用Windows NT性能监视器,对监控器选择以下对象和计数器:
  •  处理器对象,处理器时间计数器百分比。按右边窗口显示的数字选择所有处理器,这个计数给出了每个处理器的处理器使用情况
  • 系统对象,总的处理器时间计数器百分比。这个计数器给出了系统中所有处理器的平均总处理时间。
处理器的使用持续保持在 8 0%或8 0%以上,或者它经常会到达这个比率,就可能具有一个 C P U瓶颈
 
2 调整磁盘驱动器
  • 监控磁盘I / O,使用 Windows NT/2000性能监视器监控磁盘活动,必须先启用一个称为 diskperf的选项。在 DOS提示符下输入如下命令:Diskperf -Y(系统重启时,开启所有磁盘性能计数器)
  • 首先计算每个磁盘上进行了多少次I/O,根据所采用的RAID级别使用相应的I/O计算公式,只需要查看一下监视器记录下来每次读和写的秒数的值,就可以意识到系统中是否存在磁盘瓶颈
把序列I/O操作与随机I/O操作分离,
 
3 调整内存,通过使用 Windows NT/2000性能监视器( P e r f M o n )监控以下对象和计数器:
  • 内存对象,可用字节计数器 进程可以使用的系统中可用的内存数量,以字节为单位
  • 内存对象,页/秒计数器 每秒从内存调出页面到磁盘或从磁盘调入页面到内存的页数
  • SQLServer:内存管理对象,总的服务器内存(KB)计数器SQL Server当前使用内存的总的大小,以K B为单位
  • SQLServer:缓存管理器对象,高速缓存命中率计数器 在数据高速缓存中发现请求数据的百分比
  • 进程对象,工作区计数器 每个进程基础上的工作区大小 (一个进程当前正在使用的内存大小),以字节为单位。在性能监视器的 Instance (实例)下拉菜单中,选择需要监控的进程
  • 进程对象,页错误/秒计数器 进程指向内存中不在自己工作区中的页的时间数。如果页仍在主存中,或与另一个进程共享,将不会出现从磁盘调入页;否则,必须从磁盘调入页
3 、分离日志文件和数据文件以及分布数据,因为当序列I/O与随机I/O在同一个词盘时,只能采用随机I/O读写操作
 
4 文件和文件组使用
  • 将数据库的表和索引放在特定的磁盘驱动器上,必须创建用户定义文件组
  • 将用户的表和索引与系统表分离,在这种情况下,需要为你的文件创建用户定义文件组
  • 建立文件组,可以分散I/O负载
5 、SQL Server配置参数
  • 相似掩码(a ffinity mask)参数用以指明在多处理器环境下, SQL Server 可以运行在哪个CPU上
  • 轻量缓冲池,纤维的使用可以减少环境切换,原理是允许 SQL Server 维护调度表而不是使用 Windows NT 或Windows 2000调度表
  • 锁,QL Server可以分配给锁的最大的内存数为内存总数的4 0%。我们建议将锁参数保留为缺省值 0,允许SQL Server在必要时分配锁
  • 最大异步I/O(max async I/O)选项指明每个数据文件上可以进行的未完成的异步 I/O的最大数量,缺省值 3 2表明在任何时间,每个文件上可以有 3 2个读和3 2个写未完成,选项的最大值为 2 5 5
  • 最大工作者线程(max worker thread)选项指明了SQL Server可以用于处理的最大线程数 (或纤维,如果启用了轻量缓冲池 ),如果最大线程数量导致了过多的环境切换,试着减小这个值
  • 恢复时间间隔,系统在故障时进行恢复花费的最大时间,以分钟为单位。缺省值为0,它指明了SQL Server将替你决定时间间隔—大约一分钟的恢复时间
  •  用户连接:缺省情况下是动态配置的. SQL Server允许最大32 767个用户连接,这也是这个参数的最大值
 
 
 
 

转载于:https://www.cnblogs.com/dyuan/archive/2004/03/23/3949.html


http://www.niftyadmin.cn/n/1864918.html

相关文章

flume linux守护进程,Docker容器中运行flume及启动不输出运行日志问题

flume配置文件如下:# Name the components on this agentapp1.sources r1app1.sinks k1app1.channels c1# Describe/configure the sourceapp1.sources.r1.type avroapp1.sources.r1.bind 0.0.0.0app1.sources.r1.port 44444# Describe the sink#a1.sinks.k1.…

C#中处理字符串和数字

在CSDN上有人问:C#中有没有判断一个string类型变量是否为数字类型的系统函数(如vb中的IsNumeric(s))? 答案肯定是没有的。有人提议用int.Parse(string)的方法,然后通过捕获异常来判断返回的值。更好的方法是用正则表达式:public i…

人人都可以教张小龙做产品

前几天微信十周年,微信之父张小龙进行了一番演讲,再一次向大家阐述了他非凡的产品观。然后昨天微信推出 8.0 版本,又引起了大家广泛的讨论。有太多人叹服龙哥的纯粹与超前,然而也有人大肆批判。 「微信垃圾」、「人人都可以教张小…

linux redis 普通用户,非root用户安装redis

1、普通用户安装redis[centos6localhost ~]$ tar -xfredis-4.0.2.tar.gz[centos6localhost ~]$ cd redis-4.0.2[centos6localhost redis-4.0.2]$ make[centos6localhost redis-4.0.2]$ sudo make install2、普通用户下用sudo命令以root启动2.1. 以root身份启动redis服务$ sudo …

我们为什么要用 IoC 和 AOP

作为一名 Java 开发,对 Spring 框架是再熟悉不过的了。Spring 支持的控制反转(Inversion of Control,缩写为IoC)和面向切面编程(Aspect-oriented programming,缩写为AOP)早已成为我们的开发习惯…

C#实现抓屏

using System;using System.Runtime.InteropServices;using System.Drawing;using System.Drawing.Imaging; namespace ScreenShotDemo{ /// <summary> /// 提供捕获全屏或者一个不规则窗口函数&#xff0c;并保存。 /// </summary> public class ScreenCapture { …

linux杀进程sql,linux下杀死进程的N中方法

转载一篇&#xff0c;最原始的出处已不可考&#xff0c;望见谅&#xff01;常规篇&#xff1a;首先&#xff0c;用ps查看进程&#xff0c;方法如下&#xff1a;$ ps -ef……smx 1822 1 0 11:38 ? 00:00:49 gnome-terminalsmx 1823 1822 0 11:38 ? …

.NET建议使用的大小写命名原则

在托管类库中要保证可预见性和可发现性的其中一个重要因素就是使用一致的命名原则。的确&#xff0c;在团队中如果可以使用一致的命名原则可以避免许多常见的问题。 例如大小写原则&#xff0c;如果以前是使用VC的就会发现&#xff0c;.NET提供的例子和我们习惯看到的大小写原则…