SQLServer性能调优之1影响SQLServer性能的因素

1.1服务器硬件

1.1.1版本和人为因素:

影响数据库性能的因素有很多,从Windows2000到Win10,再加上32位64位,数据库版本又从SQLServer2000到SQLServer2014开发版本,专业版本。但影响最大的还是程序员。性能问题人为因素占比75%

 

1.1.2.内存:

IO偏高且CPU繁忙,说明新查询的东西不在内存中,需要去硬盘中读取。如果长期这样,内存存到瓶颈

 

1.1.3.CPU:

CPU 30%空闲,50-60,繁忙工作。长时超过80%,需要查询原因,是否有性能不高的SQL,执行频率还高

 

1.1.4.磁盘I/O:

数据库内存中不够用时会把长时不使用的东西存储到硬盘中,数据库日志也会时时的记录。通常情况下,一次IO时间为10毫秒

 

1.1.5.网络带宽

 

1.2.SQLServer系统的配置

1.2.1.最大内存

为操作系统和其它服务如IIS服务站点预留内存,不允许把数据库内存设置到最大

 

1.2.2.数据文件配置

如果是高并发系统,使用如下方案:

1。将主数据库的数据文件拆分成多个文件。与CPU个数相当。

2。将数据文件与日志文件存到在不同的物理磁盘。提高IO并发。

3。将数据库文件放到独立的物理磁盘。

 

1.3.数据库结构

1.3.1.表设计

1。尽可能添加数据完整约束:非空约束,默认值约束,唯一约束,外键约束。有助于数据库关系引擎分析SQL语句。

2。尽可能使用小的字段类型。占用空间越小搜索性能更佳。

3。表可以支持很多字段 ,但不要把大部分字段放到一张表中。理由同上。

4。SQL越简单越好,避免过多或不必要的关联。

1.3.2.约束

1。默认值约束,影响最小,忽略

2。Check约束

指定Check约束时,逻辑越简单越好。有Check约束,相当于告诉查询优化器这个只有某些值,而不再进行检索。

3。唯一约束

筛选率非常高,有查询优化有极大的帮助。

4。外键约束

保证数据完整性。需要对外键增加索引,否则全表搜索。

不要对日志表和历史表增加索引

1.3.3.冗余

适当冗余可以避免过多关联。这一点需要权衡。

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值