sqlserver 构架与性能优化
太阳底下没有新鲜事
一、sqlserver 构架结构

1、查询优化器三阶段
1)、找计划缓存如果找到直接使用
2)、简单语句生成0开销的执行计划
3)、正式优化 一般情况下优化到开销小于1.0就会停止
定义…
Select * from sys.dm_os_memory_cache_entries where type=’cachestore_phdr’
2、写入数据页
1)、惰性写入器(定期检验缓冲区的邻居l领进临界值,如果过小就会去检验很久么有的缓存(老化页)直接干掉,脏页写入到硬盘,然后把这个内存空间标注为空闲)
2)、Checkpoint 检验点进程只把脏页面写入到数据页,如果断电重启会从日志文件读取恢复
3)、内存配置的依据
select count(*)*8/1024 as 'Buffer cached size(MB)'
, case database_id when 32767 THEN 'ResourceDb' else db_name(database_id)
end AS 'Database'
from sys.dm_os_buffer_descriptors group by db_name(database_id), database_id
order by 'Buffer cached size(MB)' desc
二、日志 备份和恢复
- 有序的文件事务日志(事务提交九写了事务日至)
描述记录包括 发生改变 数据页 和页 码。 增加或删除的数据,已经这些改变所属的事务 信息,还有事务的起止日期和时间信息
2、事务日志的数据恢复
在最后一个检查点之后发生的数据将被用作恢复
ldf ,
问题: 事务日志一直不断增长采取办法
恢复模式
简单,完整,大容量日志
1、 完整模式只有做了事务日志才会截断
2、 可以改成简单模式直接截断(强烈不建议使用)简单恢复模式只要checkpoint就会截断
3、 搜索
全备
差异备份
事务日志备份
三、深入理解索引

Mssql 只有一种索引模式 B-Tree 模式
1、 非聚集索引

2、 聚集索索引

|
动作描述 |
使用聚集索引 |
使用非聚集索引 |
|
列经常被分组排序 |
应 |
应 |
|
返回某范围内的数据 |
应 |
不应 |
|
一个或极少不同值 |
不应 |
不应 |
|
小数目的不同值 |
应 |
不应 |
|
大数目的不同值 |
不应 |
应 |
|
频繁更新的列 |
不应 |
应 |
|
外键列 |
应 |
应 |
|
主键列 |
应 |
应 |
|
频繁修改索引列 |
不应 |
应 |
SELECT * FROM dbo.PCE_Admin_Info WHERE Admin_Account='admina' AND Admin_Id = 1
四、优化工具使用
1、 执行计划-- EXPLAIN
2、 查询优化顾问
3、 活动监视器
4、 Sql 分析器
索引查找 和索引扫描
USE db_30014
SELECT * FROM dbo.PCE_Site_Mobile_Region_Bind
SELECT * FROM dbo.PCE_Site_Mobile_Region_Bind WHERE Bind_MobileNo >1000
缓存体现
SELECT * FROM dbo.PCE_Site_Mobile_Region_Bind WHERE Bind_MobileNo >1900000
SELECT * FROM dbo.PCE_Site_Mobile_Region_Bind
sqlserver 构架与性能优化的更多相关文章
- SQLServer地址搜索性能优化例子
这是一个很久以前的例子,现在在整理资料时无意发现,就拿出来再改写分享. 1.需求 1.1 基本需求: 根据输入的地址关键字,搜索出完整的地址路径,耗时要控制在几十毫秒内. 1.2 数据库地址表结构和数 ...
- 01.SQLServer性能优化之----强大的文件组----分盘存储
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 文章内容皆自己的理解,如有不足之处欢迎指正~谢谢 前天有学弟问逆天:“逆天,有没有一种方 ...
- 03.SQLServer性能优化之---存储优化系列
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 概 述:http://www.cnblogs.com/dunitian/p/60413 ...
- 02.SQLServer性能优化之---牛逼的OSQL----大数据导入
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 上一篇:01.SQLServer性能优化之----强大的文件组----分盘存储 http ...
- 转载:SqlServer数据库性能优化详解
本文转载自:http://blog.csdn.net/andylaudotnet/article/details/1763573 性能调节的目的是通过将网络流通.磁盘 I/O 和 CPU 时间减到最小 ...
- 性能优化——统计信息——SQLServer自动更新和自动创建统计信息选项
原文:性能优化--统计信息--SQLServer自动更新和自动创建统计信息选项 原文译自:http://www.mssqltips.com/sqlservertip/2766/sql-server-a ...
- SQLServer性能优化专题
SQLServer性能优化专题 01.SQLServer性能优化之----强大的文件组----分盘存储(水平分库) http://www.cnblogs.com/dunitian/p/5276431. ...
- SqlServer数据库性能优化详解
数据库性能优化详解 性能调节的目的是通过将网络流通.磁盘 I/O 和 CPU 时间减到最小,使每个查询的响应时间最短并最大限度地提高整个数据库服务器的吞吐量.为达到此目的,需要了解应用程序的需求和数据 ...
- SQLSERVER SQL性能优化技巧
这篇文章主要介绍了SQLSERVER SQL性能优化技巧,需要的朋友可以参考下 1.选择最有效率的表名顺序(只在基于规则的优化器中有效) SQLSERVER的解析器按照从右到左的顺序处理F ...
随机推荐
- https客户端遇到过的问题
1.用.p12格式的证书,在windows上调试完全没问题,在Linux服务器上,提示无效证书格式. 解决方法:将.p12格式的证书转换为.jks格式的证书. 将.p12格式的证书转换为.jks格式的 ...
- java入门实现转换
设计思想 首先不用多说就是建立最基础的java创建,然后抛出一个异常处理来替我们检测用户的输入,这一点十分重要.然后就要进行输入工作,不必多说,网上的教程有一个Scanner的输入方法,我们引入一下. ...
- Java多线程之“同步”
好习惯要坚持,这是我第二篇博文,任务略重,但是要坚持努力!!! 1.竞争条件 首先,我们回顾一下<Java核心技术卷>里讲到的多线程的“竞争条件”.由于各线程访问数据的次序,可能会产生讹误 ...
- ZooKeeper管理员指南(九)
部署 这部分包含了部署ZooKeeper的信息和覆盖这些话题 系统要求 集群(多服务)安装 单服务和开发者安装 前两部分假定你对在例如数据中心的生产环境安装ZooKeeper有兴趣.最后一部分包含你在 ...
- MyBatis框架的使用及源码分析(十一) StatementHandler
我们回忆一下<MyBatis框架的使用及源码分析(十) CacheExecutor,SimpleExecutor,BatchExecutor ,ReuseExecutor> , 这4个Ex ...
- WCF使用注意事项
执行如下 批处理:"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\svcutil.exe" http://127.0.0.1: ...
- for in、each; for 、forEach、map
1.jQuery.each(object, [callback]) 用于例遍任何对象.回调函数拥有两个参数:第一个为对象的成员或数组的索引,第二个为对应变量或内容.如果需要退出 each 循环可使回调 ...
- Java线程(一)
1. java什么叫线程安全?什么叫不安全? 就是线程同步的意思,就是当一个程序对一个线程安全的方法或者语句进行访问的时候,其他的不能再对他进行操作了,必须等到这次访问结束以后才能对这个线程安全的方法 ...
- netcat、nc工具随记
netcat又称nc工具,其最主要的作用就是建立连接并返回两个数据流,剩下的就看各位的想象力了,想象力是很重要的,这也是这个工具的强大之处的所在,所以重要的东西才要说三遍,想象力! 具体参数如下: - ...
- bing查询旁站脚本
#!/usr/bin/env python # -*- coding: UTF-8 -*- #by i3ekr import re,optparse,sys,requests,time,os pars ...