您的位置:首页 > 数据库

sqlserver性能性能调优实战学习总结一

2017-04-11 16:03 281 查看
基本要求:

1,配置最大服务器内存,为操作系统和其他服务程序预留足够内存;

2,将主数据库的数据文件拆分成多个文件;将数据文件和日志文件放在不同物理磁盘,提高io并发;系统数据库Tempdb数据文件放在独立物理磁盘,并拆分多个,最好与cpu个数相同,提高并发;

3,默认值约束性能影响极低;Check约束保持逻辑尽量简单;唯一约束至少有一个,提高查询;外键约束时,子表关联字段需要建立索引(子表为日志表,历史表等除外);

TSql优化:

1,select语句

a,只查询需要的字段;

b,尽量限制结果集大小;

2,order by 语句

a,尽量在排序字段加上索引;

b,尽量控制排序的数据量;数据量过大则会使用Tempdb,增大磁盘io,所以必须加索引;

3,Group by 语句

a,尽量使用索引;

b,distinct等同于group by;

4,update语句

a,update会对select造成阻塞,小数据量更新,使用主键或者唯一键过滤需要更新的数据;

b,大数据量或者复杂更新,预先计算好结果,分批更新;

5,delete语句

a,Truncate table tablename;删除表,并且不记录日志,性能优;

b,delete会记录日志,将删除的数据整条记录下来,并且还会更新索引,减少删除操作,合理设计表结构;

6,where语句

a,合理利用索引;

b,减少函数计算,会影响索引使用;

7,子查询

a,子查询尽量写在where子句中;

b,子查询数量不超过3个,整个查询语句涉及的表不超过5个;

8, 字段合并尽可能使用for xml子句; 

9,连接操作,尽可能使用索引字段;小数据作为主查询;

10,批量操作

a,bulk insert;

b,insert select;

c,select into插入新表;

d,output子句;

e,merge数据合并;

f,bcp工具;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: