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

二、日志 备份和恢复

  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 构架与性能优化

时间: 2024-10-29 19:09:39

sqlserver 构架与性能优化的相关文章

性能优化——统计信息——SQLServer自动更新和自动创建统计信息选项 (转载)

原文译自:http://www.mssqltips.com/sqlservertip/2766/sql-server-auto-update-and-auto-create-statistics-options/?utm_source=dailynewsletter&utm_medium=email&utm_content=headline&utm_campaign=2012913 统计信息是如何提高SQLServer查询性能的?统计直方图用作在查询执行计划中查询优化器的选择依据.

SQLServer性能优化之 nolock,大幅提升数据库查询性能

公司数据库随着时间的增长,数据越来越多,查询速度也越来越慢.进数据库看了一下,几十万调的数据,查询起来确实很费时间. 要提升SQL的查询效能,一般来说大家会以建立索引(index)为第一考虑.其实除了index的建立之外,当我们在下SQL Command时,在语法中加一段WITH (NOLOCK)可以改善在线大量查询的环境中数据集被LOCK的现象藉此改善查询的效能. 不过有一点千万要注意的就是,WITH (NOLOCK)的SQL SELECT有可能会造成Dirty Read,就是读到无效的数据.

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

本文转载自:http://blog.csdn.net/andylaudotnet/article/details/1763573 性能调节的目的是通过将网络流通.磁盘 I/O 和 CPU 时间减到最小,使每个查询的响应时间最短并最大限度地提高整个数据库服务器的吞吐量.为达到此目的,需要了解应用程序的需求和数据的逻辑和物理结构,并在相互冲突的数据库使用之间(如联机事务处理 (OLTP) 与决策支持)权衡. 对性能问题的考虑应贯穿于开发阶段的全过程,不应只在最后实现系统时才考虑性能问题.许多使性能得

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

汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 上一篇:01.SQLServer性能优化之----强大的文件组----分盘存储 http://www.cnblogs.com/dunitian/p/5276431.html 在执行SQL脚本的时候要是出现了这些情况我咋办呢? 步入正轨 应用场景:服务器升级,比如原来是2003的系统,现在换成2008或者2012,那么数据库升级了不止一个档次,咋办?分离附加,备份还原都有点悬了,那么就导

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

汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 概  述:http://www.cnblogs.com/dunitian/p/6041323.html#com 以下内容皆为个人摸索,没有人专门指导(公司不给力啊!DBA和大牛都木有...),所以难免出错,如有错误欢迎指正,小子勇于接受批评~(*^__^*) ~ 水平分库分表和垂直分库分表,大家都经常谈,我说下我的理解,看图: 垂直分表就不用说了,基本上会SQLServer的都会. 垂

.Net 性能优化--缓存--分布式缓存 --sqlserver缓存

.Net 性能优化--缓存,主要有内存缓存,分布式缓存,http缓存 分布式缓存 接着上篇的.Net 性能优化--缓存--内存缓存的讲,如有不清晰的地方请参考上篇文章.Net 性能优化--缓存--内存缓存 上上篇的.Net 性能优化--缓存--内存缓存说的是使用asp.net core 自带的扩展 Microsoft.Extensions.Caching.Memory来进行缓存的处理, IMemoryCache缓存处理对于单个应该用程序是很方便,但是对于集群的话就存在一个致命的问题,就是各个集群

C#实用杂记-EF全性能优化技巧

原文链接:http://www.makmong.com/947.html#comment-31 EntityFramework 优化建议 2016年1月15日 下午4:54 LEILINKANG Entity Framework目前最新版本是6.1.3,当然Entity Framework 7 目前还是预览版,并不能投入正式生产环境,估计正式版16年第一季度会出来,了解过EF7的部分新特性后,还是狠狠期待一下滴. EF性能问题一直为开发者所诟病,最让人纠结的也是这块,所以此次我也来谈谈EF的性能

WebPack实例与前端性能优化

[前端构建]WebPack实例与前端性能优化 计划把微信的文章也搬一份上来. 这篇主要介绍一下我在玩Webpack过程中的心得.通过实例介绍WebPack的安装,插件使用及加载策略.感受构建工具给前端优化工作带来的便利. 壹 | Fisrt 曾几何时,我们是如上图的方式引入JS资源的,相信现在很少遇见了.近年来Web前端开发领域朝着规范开发的方向演进.体现在以下两点: MVC研发构架.多多益处(逻辑清晰,程序注重数据与表现分离,可读性强,利于规避和排查问题...) 构建工具层出不穷.多多益处(提

mssql性能优化

总结下SQL SERVER数据库性能优化相关的注意事项,在网上搜索了一下,发现很多文章,有的都列出了上百条,但是仔细看发现,有很多似是而非或者过时(可能对SQL SERVER6.5以前的版本或者ORACLE是适用的)的信息,只好自己根据以前的经验和测试结果进行总结了. 我始终认为,一个系统的性能的提高,不单单是试运行或者维护阶段的性能调优的任务,也不单单是开发阶段的事情,而是在整个软件生命周期都需要注意,进行有效工作才能达到的.所以我希望按照软件生命周期的不同阶段来总结数据库性能优化相关的注意事