自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MVP黄钊吉(發糞塗牆)

博學多才謙虛謹慎,不學無術目中無人

  • 博客(19)
  • 资源 (29)
  • 收藏
  • 关注

原创 T-SQL执行内幕(11)——Read Ahead

本文属于SQL Server T-SQL执行内幕系列     每当操作读取页的数据,意味着这些数据需要固定到缓存(buffer pool)中。这个时候可能会导致操作被阻塞,因为当所需要的数据不在内存时,需要把数据从磁盘载入内存,这个时候操作需要等待页从磁盘搜索并载入内存。如果由于系统负担很重或者载入的量很大,磁盘I/O响应不及时,那么此时操作就会被阻塞(stall),性能将会暴跌。    从现实生...

2018-03-31 15:52:53 1545 1

原创 T-SQL执行内幕(10)——读取数据

本文属于SQL Server T-SQL执行内幕系列    关系型数据库的数据访问操作总是从内存的缓存中读取数据而不是从磁盘中读取。这个缓存称为Buffer Pool。如果数据访问操作符未能在缓存中找到所需的数据,那么就需要从磁盘中加载,这就会产生一个磁盘I/O读(set statistics io on中的物理读),并且需要等待这个物理读完成(及从磁盘找到数据并加载到缓存为止)之后,才能进行操作...

2018-03-31 15:39:06 1084

原创 T-SQL执行内幕(9)——数据访问

本文属于SQL Server T-SQL执行内幕系列    在执行树的叶子端(通常就是图形化执行计划每个分支的最右端),一般是实际访问数据的操作符。当调用这些操作符上的next()方法时,会返回表或者索引上的实际数据。数据访问通常有三类可能的操作符:Scan:    各类扫描,扫描操作会在数据上循环访问所有的行。它永远不会定位一个特定的行,取而代之的是扫描整个数据集。在执行计划中常见的扫描操作符有...

2018-03-31 15:14:04 897

原创 T-SQL执行内幕(8)——数据存储

本文属于SQL Server T-SQL执行内幕系列    前面提到了数据访问,那么如何访问?访问什么?为此必须介绍一下数据存储的概念。SQL Server以三种方式存储和组织数据:均可从sys.partitions中查到Heaps:堆,指没有聚集索引(注意主键并非一定是聚集索引)的表。另外诸如select …into … from …语句生成的表也是堆表。SQL Server堆结构    在sy...

2018-03-31 11:16:37 918

原创 T-SQL执行内幕(7)——内存授予

本文属于SQL Server T-SQL执行内幕系列    前面提到,在执行过程中,很多操作符都需要内存来支持运作。比如Sort操作符,需要存储所有的输入以便进行排序,而Hash操作,为了创建大型的hash表,也需要申请资源来存储数据。    基于操作符的类型和预估的影响行数及列的大小(这些都可以从统计信息获得),执行计划可以知道这些操作符需要的大概内存。整个执行计划所需的内存总和称为内存授予(M...

2018-03-30 15:31:50 980

原创 T-SQL执行内幕(6)——返回结果

本文属于SQL Server T-SQL执行内幕系列     在执行引擎按照执行计划的要求把数据成功检索之后,就需要把数据返回给客户端。这里的结果不是单纯的数据库引擎完成查询数据之后的结果,而是客户端(如SSMS)接收到数据的结果。一旦数据已经“填满”执行树的各个操作符,那么最顶端的根操作符就会负责把数据写入网络缓存(network buffer)并把这些数据发送给客户端。    结果集并不是直接...

2018-03-28 15:54:10 1005

原创 T-SQL执行内幕(5)——执行

本文属于SQL Server T-SQL执行内幕系列     一旦优化器选择了开销最低的预估执行计划之后,就会把预估执行计划转换成实际执行树(Actual Execution Tree)进行查询执行。树的每个节点都是一个操作符。操作符及一系列的有向箭头(代表数据流的方向及结果集的数据量(箭头粗细)) 组成了整个执行计划,这里指的是图形化执行计划。    所有的操作符都实现一个具有三个方法(open...

2018-03-28 15:19:38 1079

原创 T-SQL执行内幕(4)——优化

本文属于SQL Server T-SQL执行内幕系列    接上文,当解析和编译完成后,请求的生命周期就进入下一步——优化(Optimisation)。在SQL语言中,优化的本质就是找最好的路线。意思是在多种可能的候选数据访问方式中选择最佳一个。比如两表关联的简单查询语句,每个表有1个索引,那么就有4种可能的数据访问方式(AB两表的索引扫描、AB两表的索引查找,A扫描B查找、A查找B扫描)。随着表...

2018-03-28 14:30:48 1335

原创 T-SQL执行内幕(3)——解析和编译

本文属于SQL Server T-SQL执行内幕系列    接上文,当请求被任务接收同时得到工作线程指派执行后,就开始在SQL Server内部进行运作。当请求被执行时,第一步就是要先解析(Parsing)请求,把TDS数据流转换成SQL Server可识别的格式。    从客户端发送的是T-SQL文本,然后转换成TDS数据流,到达SQL Server之后变回T-SQL文本。但是由于纯T-SQL文...

2018-03-23 16:53:32 1263

原创 T-SQL执行内幕(2)——Tasks、Workers、Threads、Scheduler、Sessions、Connections、Requests

本文属于SQL Server T-SQL执行内幕系列    接上文:T-SQL执行内幕(1)——简介    本节以介绍一些基础的但又容易混淆的概念。包括:Tasks、Workers、Threads、Scheduler、Sessions、Connections、RequestsScheduler:计划程序,特指SQL OS的Scheduler,用于管理SQL Server中的线程调度的对象,每个计划...

2018-03-23 14:57:08 1252

原创 T-SQL执行内幕(1)——简介

本文属于SQL Server T-SQL执行内幕系列前言:    本文主体内容来自于:http://rusanu.com/2013/08/01/understanding-how-sql-server-executes-a-query/但是经常打不开,本人又在:https://www.codeproject.com/Articles/630346/Understanding-how-SQL-Ser...

2018-03-23 14:54:46 2590

原创 SQL Server新基数估量器

本系列属于 SQL Server性能优化案例分享 专题    当你使用SQL Server 2014及以上版本并且数据库的兼容级别为120或以上时,可能会有一个比较奇怪的现象,原本在SQL 2008/2012上运行正常的数据库,可能因为迁移到SQL Server 2014版本,在新环境突然变慢了。    一般来说,迁移/升级实例版本时,我们必不可少的工作有:备份、重建全库索引、全库更新统计信息。但...

2018-03-21 16:05:16 870

原创 SQL Server性能优化案例分享(1)——CPU持续过高——CPU高使用率的常见原因及处理方向

本系列属于 SQL Server性能优化案例分享 专题    部分内容借用《SQL Server 2012实施与管理实战指南》P592,如果SQL Server错误日志里面并没有17883/17884这类错误,但是SQL Server CPU很高,那一般就是工作负载太高导致的。意味着SQL Server并没有什么大问题,但是很辛苦地在完成用户发过来的请求。    由于CPU较于内存、阻塞、磁盘等资...

2018-03-12 17:23:14 6218

翻译 什么东西导致了执行计划的严重错误——需要更新统计信息吗?

    原文出处:What caused that plan to go horribly wrong – should you update statistics?    由于本人确实遇到过这类问题,但是基于水平和经历,不打算重复造轮子,所以把大牛的文章翻译一下以供大家参考。以下是译文:过去几年里,我(作者)遇到这类情景:    有一个存储过程在大部分时间里面都运行得很好,但是突然就不行了。其性...

2018-03-12 11:08:23 1536

原创 SQL Server Hash Warning 优化

本系列属于 SQL Server性能优化案例分享 专题    最近遇到服务器CPU持续居高问题,通过计数器的检查,初步断定存在语句性能问题,然后有针对性地抓取问题语句(来龙去脉将会在另外一篇文章解释,本文关注Hash Warning),其执行计划如下:    因为这是生产环境,所以下面例子把表名替换成A/B/C/D等表。代码很简单,大概样子如下:SELECT bo.Scode ,d.PCode ,...

2018-03-08 14:50:59 1174

原创 SQL Server Table Spool优化

本系列属于 SQL Server性能优化案例分享 专题    在执行计划中出现的Spool操作符,往往都具有明显的性能问题,也意味着数据库的设计、编码等可能存在问题,所以本文专门介绍一下这个操作符。   Spool介绍    Spool是内存或者磁盘上的缓存(cache)或临时表。SQL Server用这个结构来提升在执行过程中需要多次执行的复杂的子表达式的性能。注意几个次:一次运行中多次执行、复...

2018-03-06 08:24:34 5226

原创 Securing Checklists

本文属于SQL Server安全专题系列    确保非授权用户不能非法进入系统环境。只安装所需的软件组件。最小化访问SQL Server的用户,强烈建议借助操作系统使用Windows身份验证或者SQL On Linux的集成身份验证来访问。 哪怕是DBA,也应该仅在需要时采用sysadmin登录,更安全的方式是使用Windows身份验证登录。SA帐号如果启用,应该设置强密码。但是依旧建议使用Win...

2018-03-05 10:49:28 648

原创 SQL Server性能优化案例分享专题

    写了那么久的文章,觉得文章篇数很多,但是缺乏一定的管理,混乱无序的知识归档,对于一个专职DBA来说,有点“不称职”,所以为了自己后续快速查找,也为了方便读者查看,所以整理一个专题。这个专题可能会涉及过百篇文章,在本人工作过程陆续添加。    目前根据个人习惯,我偏向于以“主要现象”来做分类,比如CPU过高,连接失败等。这样在搜索时更加容易,同时从标题来看更加有针对性。但是作者不保证在编写了...

2018-03-02 14:29:47 1598 1

原创 SQL Server 安全篇——降低外围威胁(2)——禁用不安全功能

本文属于SQL Server安全专题系列    SQL Server默认禁用不安全的功能。如果需要启用,可以通过SSMS来实现,本文介绍手动配置外围应用配置器和使用策略管理来管理外围环境。手动配置外围应用配置器    右键实例,选择facts如下图,然后在【方面(F)】中选择“外围应用配置器”:可以看到下面的选项,通常我们会使用到“XPCmdShellEnabled”项,如果要用,则选择【True...

2018-03-01 11:11:07 1157

make_big_adventure.sql

用来创建AdventureWork上测大型测试表,由于国外网站需要某些方式才能获取,所以我共享出来。

2020-03-28

Windows性能计数器列表

可用于监控服务器及数据库的性能问题。通过配置数据收集器集长时间运行,可以了解整个服务器的性能趋势和资源利用情况

2018-05-07

Microsoft Big Data Solutions

微软最新大数据解决方案神作。大数据时代微软从业人员必读书籍

2014-05-04

SQLServer安全性文档

关于SQLServer的安全性白皮书,写的很好

2013-05-17

使用DMV对SQLServer进行性能调优

原名:《Performance Tuning With SQL Server Dynamic Management Views》,本资源为英文清晰原版PDF。从2005以后引入了DMO(DMV+DMF)作为SQLServer管理工具,本书通过使用DMO,专注于SQLServer的性能优化。性能优化的手段有多种,但是DMO具有便捷的特性,使其在SQLServer的管理中具有不可替代并越来越重要的作用,精度本书将会对DBA甚至数据库开发人员的水平带来很大的提升。

2013-05-02

数据库对比工具ASQLDiff

高效对比数据库对象的结构,且生成差异脚本,虽然是试用版,但是目前用了2年都还能用

2013-03-25

AdventureWorks2012

AdventureWorks2012mdf文件,至于LDF让SQLServer自动生成。但是要在SQLServer 2012上才能附加。

2013-03-08

Inside Microsoft SQL Server 2008:T-SQL Querying

2008 技术内幕原版教材,带有源代码、高清

2012-12-13

Microsoft SQL Server 2005技术内幕:T-SQL查询

技术内幕第一本要读的书,由于之前那些好像有点问题,现在免费上传。

2012-11-27

RedGate.SQL.Prompt.v.5.1.8.2

代码格式化工具,非常好用,记得在破解时使用管理员身份

2012-11-06

SQL编程风格

良好的编程规范比技术更加重要,但是如何去做到规范?本文也许能提供一些思路。清晰中文版。

2012-08-13

微软DBA考试教材70-432

微软DBA证书指定教材,英文版,读完才去考证

2012-06-24

SQLServer2008企业级平台管理实践01

SQLServer2008企业级平台管理实践,本人读过最有实践性的SQL SERVER书籍。书中绝大部分的问题都是现实中遇到的。很有意义。值得拥有。由于上传大小受限,所以要分成2个文件上传。

2012-05-07

SQLServer2008企业级平台管理实践02

SQLServer2008企业级平台管理实践,本人读过最有实践性的SQL SERVER书籍。书中绝大部分的问题都是现实中遇到的。很有意义。值得拥有。由于上传大小受限,所以要分成2个文件上传。

2012-05-07

SQL.Server.DMVs.实战

自2005以来DMV占据了性能监控的主导地位,所以如果想做DBA或者一个优秀的数据库开发人员,就要熟读这本书

2012-04-25

SQL Server 2005 Administrator's Companion

2005的DBA书籍。有意愿成为DBA的要熟读。

2012-04-25

Microsoft SQL Server 2005技术内幕:T-SQL查询.02

Microsoft SQL Server 2005技术内幕:T-SQL查询.02

2012-04-24

Microsoft SQL Server 2005技术内幕:T-SQL查询.01

Microsoft SQL Server 2005技术内幕:T-SQL查询,经典书籍,上传受限,所以分开两个文件

2012-04-24

Microsoft SQL Server 2005技术内幕: T-SQ程序设计.01

经典书籍,由于上传受限所以分开两个文件上传。

2012-04-24

Microsoft SQL Server 2005技术内幕: T-SQ程序设计.02

2005技术内幕丛书之一,上传受限,所以只能分开两个文件上传

2012-04-24

如何像计算机科学家一样思考

如何像计算机科学家一样思考?本书带你走进计算机科学家的领域。

2012-04-23

Python参考手册(第4版)

python入门的经典书籍之一,细看必有收获

2012-04-23

SQL.Server.2008编程入门经典(第3版)

一本开发人员重点熟读的数据库书籍。值得珍藏。

2012-04-23

Microsoft SQL Server 2005技术内幕.存储引擎

SQL Server 经典书籍。值得一看

2012-04-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除