太阳底下没有新鲜事

一、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

二、日志 备份和恢复

  1. 有序的文件事务日志(事务提交九写了事务日至)

描述记录包括 发生改变 数据页 和页 码。 增加或删除的数据,已经这些改变所属的事务 信息,还有事务的起止日期和时间信息

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 构架与性能优化的更多相关文章

  1. SQLServer地址搜索性能优化例子

    这是一个很久以前的例子,现在在整理资料时无意发现,就拿出来再改写分享. 1.需求 1.1 基本需求: 根据输入的地址关键字,搜索出完整的地址路径,耗时要控制在几十毫秒内. 1.2 数据库地址表结构和数 ...

  2. 01.SQLServer性能优化之----强大的文件组----分盘存储

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 文章内容皆自己的理解,如有不足之处欢迎指正~谢谢 前天有学弟问逆天:“逆天,有没有一种方 ...

  3. 03.SQLServer性能优化之---存储优化系列

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 概  述:http://www.cnblogs.com/dunitian/p/60413 ...

  4. 02.SQLServer性能优化之---牛逼的OSQL----大数据导入

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 上一篇:01.SQLServer性能优化之----强大的文件组----分盘存储 http ...

  5. 转载:SqlServer数据库性能优化详解

    本文转载自:http://blog.csdn.net/andylaudotnet/article/details/1763573 性能调节的目的是通过将网络流通.磁盘 I/O 和 CPU 时间减到最小 ...

  6. 性能优化——统计信息——SQLServer自动更新和自动创建统计信息选项

    原文:性能优化--统计信息--SQLServer自动更新和自动创建统计信息选项 原文译自:http://www.mssqltips.com/sqlservertip/2766/sql-server-a ...

  7. SQLServer性能优化专题

    SQLServer性能优化专题 01.SQLServer性能优化之----强大的文件组----分盘存储(水平分库) http://www.cnblogs.com/dunitian/p/5276431. ...

  8. SqlServer数据库性能优化详解

    数据库性能优化详解 性能调节的目的是通过将网络流通.磁盘 I/O 和 CPU 时间减到最小,使每个查询的响应时间最短并最大限度地提高整个数据库服务器的吞吐量.为达到此目的,需要了解应用程序的需求和数据 ...

  9. SQLSERVER SQL性能优化技巧

    这篇文章主要介绍了SQLSERVER SQL性能优化技巧,需要的朋友可以参考下 1.选择最有效率的表名顺序(只在基于规则的优化器中有效)       SQLSERVER的解析器按照从右到左的顺序处理F ...

随机推荐

  1. Codeforces Round #344 (Div. 2) A

    A. Interview time limit per test 1 second memory limit per test 256 megabytes input standard input o ...

  2. mysql的concat用法

    问题提出:mybatis的mapper文件中的模糊查询: mysql CONCAT()函数用于将多个字符串连接成一个字符串,是最重要的mysql函数之一,下面就将为您详细介绍mysql CONCAT( ...

  3. Java Zip压缩

    1.压缩文件或整个目录 // ZipCompression.java import java.io.File;import java.io.FileInputStream;import java.io ...

  4. c++11新特性之atomic

    std::atomic_flag std::atomic_flag是一个原子的布尔类型,可支持两种原子操作: test_and_set, 如果atomic_flag对象被设置,则返回true; 如果a ...

  5. ICPC2017 Urumqi - K - Sum of the Line

    题目描述 Consider a triangle of integers, denoted by T. The value at (r, c) is denoted by Tr,c , where 1 ...

  6. 2017 济南综合班 Day 2

    木棍(stick) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK有很多木棍,具体的,总共有n根,且每根木棍都有一个长度.为了方便起见,我们可以用一个正 ...

  7. (转)Linux下使Shell 命令脱离终端在后台运行

    转自: http://www.linuxidc.com/Linux/2011-05/35723.htm 方法如下: (1)输入命令: nohup 你的shell命令 & (2)回车,使终端回到 ...

  8. Angular2.0 基础:双向数据绑定 [(ngModel)]

    在属性绑定中,值从模型到屏幕上的目标属性 (property). 通过把属性名括在方括号中来标记出目标属性,[]. 这是从模型到视图的单向数据绑定. 而在事件绑定中,值是从屏幕上的目标属性 到 mod ...

  9. Collection包结构,与Collections的区别

    Collection 1.Collection是集合类的顶级接口: 2.实现接口和类主要有Set.List.LinkedList.ArrayList.Vector.Stack.Set: Collect ...

  10. LeetCode 19 Valid Parentheses

    Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the inpu ...