Sql server 2008查询性能优化学习笔记一
2015-09-09 10:19
639 查看
一、在调整过程中,必须检查各种可能影响基于Sqlserver的应用程序性能的硬件和软件因素。你应该在性能分析中问自己以下的问题:
1.相同服务器上有没有运行其他的资源密集型应用?
2.硬件子系统是否能承受最大的工作负荷?
3.Sql server 是否被正确配置?
4.Sql server 和数据库应用之间的数据库连接是否有效?
5.数据库设置是否支持最快的数据检索
6.由sql查询组成的用户工作负载是否优化以减少Sqlserver上的负载?
7.在各种等待状态的测量中反映出哪个进程导致系统的减慢?
8.工作负载是否支持最大的并发性?
例:不建议在服务器上连续运行Windows任务管理器。任务管理器也是一个应用程序--taskmgr.exe,它运行在比sqlserver进程更高的优先级。优先级是给予一个资源的权重,使处理器在运行时给它更多的的优先权。
二、Sqlserver 性能杀手
在已经优化了硬件、操作系统和Sqlserver设置的情况下,Sql Server中的性能杀手按照粗略的顺序排列如下:
1.低质量的索引
2.不精确的统计
3.过多的用阻塞和死锁
4.不基于数据集的操作,通常是T-sql游标
5.低质量的查询设计
6.低质量的数据库设计
7.过多的碎片
8.不可重用的执行计划
9.低质量的执行计划,通常是因为参数嗅探(parameter sniffing)所导致的
10.执行计划频繁重编译
11.游标的错误使用
12.数据库日志的错误配置
13.过多使用或者错误配置tempdb
1.相同服务器上有没有运行其他的资源密集型应用?
2.硬件子系统是否能承受最大的工作负荷?
3.Sql server 是否被正确配置?
4.Sql server 和数据库应用之间的数据库连接是否有效?
5.数据库设置是否支持最快的数据检索
6.由sql查询组成的用户工作负载是否优化以减少Sqlserver上的负载?
7.在各种等待状态的测量中反映出哪个进程导致系统的减慢?
8.工作负载是否支持最大的并发性?
例:不建议在服务器上连续运行Windows任务管理器。任务管理器也是一个应用程序--taskmgr.exe,它运行在比sqlserver进程更高的优先级。优先级是给予一个资源的权重,使处理器在运行时给它更多的的优先权。
二、Sqlserver 性能杀手
在已经优化了硬件、操作系统和Sqlserver设置的情况下,Sql Server中的性能杀手按照粗略的顺序排列如下:
1.低质量的索引
2.不精确的统计
3.过多的用阻塞和死锁
4.不基于数据集的操作,通常是T-sql游标
5.低质量的查询设计
6.低质量的数据库设计
7.过多的碎片
8.不可重用的执行计划
9.低质量的执行计划,通常是因为参数嗅探(parameter sniffing)所导致的
10.执行计划频繁重编译
11.游标的错误使用
12.数据库日志的错误配置
13.过多使用或者错误配置tempdb
相关文章推荐
- MySQL 常用命令
- Ubuntu安装配置Mysql
- MySQL 百万级分页优化(Mysql千万级快速分页)
- Ubuntu安装mysql和简单操作
- mysql源码安装(简化版)
- SQLServer-----SQLServer 2008 R2备份、还原数据库
- java中mongodb的查询及排序
- 从关系型数据库到非关系型数据库
- MySQL带参数的存储过程小例子
- CentOS_6安装Oracle_11g_R2手记
- MyBatis的动态SQL详解 (转载)
- MyBatis的动态SQL详解 (转载)
- MyBatis的动态SQL详解
- Mysql开启远程连接方法
- Redis cpu 100%和连接数多分析
- 数据库基本概念
- ORACLE表空间迁移:ASM->ASM的迁移
- sqlserver 存储过程中使用临时表到底会不会导致重编译
- 用plsqldeveloper创建表为字段加注释时出现乱码解决方法
- SQLSERVER 游标的使用