MVP黄钊吉(發糞塗牆)

本人新书《SQL Server性能优化与管理的艺术》——博學多才謙虛謹慎不學無術目中無人...

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

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

2018-03-31 15:52:53

阅读数:100

评论数:0

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

本文属于SQL Server T-SQL执行内幕系列    关系型数据库的数据访问操作总是从内存的缓存中读取数据而不是从磁盘中读取。这个缓存称为Buffer Pool。如果数据访问操作符未能在缓存中找到所需的数据,那么就需要从磁盘中加载,这就会产生一个磁盘I/O读(set statistics i...

2018-03-31 15:39:06

阅读数:88

评论数:0

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

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

2018-03-31 15:14:04

阅读数:102

评论数:0

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

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

2018-03-31 11:16:37

阅读数:101

评论数:0

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

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

2018-03-30 15:31:50

阅读数:75

评论数:0

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

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

2018-03-28 15:54:10

阅读数:62

评论数:0

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

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

2018-03-28 15:19:38

阅读数:58

评论数:0

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

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

2018-03-28 14:30:48

阅读数:116

评论数:0

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

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

2018-03-23 16:53:32

阅读数:103

评论数:0

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

本文属于SQL Server T-SQL执行内幕系列    接上文:T-SQL执行内幕(1)——简介    本节以介绍一些基础的但又容易混淆的概念。包括:Tasks、Workers、Threads、Scheduler、Sessions、Connections、RequestsScheduler:计...

2018-03-23 14:57:08

阅读数:73

评论数:0

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

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

2018-03-23 14:54:46

阅读数:162

评论数:0

SQL Server新基数估量器

本系列属于 SQL Server性能优化案例分享 专题    当你使用SQL Server 2014及以上版本并且数据库的兼容级别为120或以上时,可能会有一个比较奇怪的现象,原本在SQL 2008/2012上运行正常的数据库,可能因为迁移到SQL Server 2014版本,在新环境突然变慢了。...

2018-03-21 16:05:16

阅读数:60

评论数:0

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

本系列属于 SQL Server性能优化案例分享 专题    部分内容借用《SQL Server 2012实施与管理实战指南》P592,如果SQL Server错误日志里面并没有17883/17884这类错误,但是SQL Server CPU很高,那一般就是工作负载太高导致的。意味着SQL Ser...

2018-03-12 17:23:14

阅读数:198

评论数:0

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

    原文出处:What caused that plan to go horribly wrong – should you update statistics?    由于本人确实遇到过这类问题,但是基于水平和经历,不打算重复造轮子,所以把大牛的文章翻译一下以供大家参考。以下是译文:过去几年...

2018-03-12 11:08:23

阅读数:178

评论数:0

SQL Server Hash Warning 优化

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

2018-03-08 14:50:59

阅读数:121

评论数:0

SQL Server Table Spool优化

本系列属于 SQL Server性能优化案例分享 专题    在执行计划中出现的Spool操作符,往往都具有明显的性能问题,也意味着数据库的设计、编码等可能存在问题,所以本文专门介绍一下这个操作符。   Spool介绍    Spool是内存或者磁盘上的缓存(cache)或临时表。SQL Serv...

2018-03-06 08:24:34

阅读数:187

评论数:0

Securing Checklists

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

2018-03-05 10:49:28

阅读数:106

评论数:0

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

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

2018-03-02 14:29:47

阅读数:142

评论数:0

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

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

2018-03-01 11:11:07

阅读数:111

评论数:0

SQL Server 安全篇——降低外围威胁(1)——网络配置

本文属于SQL Server安全专题系列    前面大篇幅介绍了SQL Server及操作系统的安全,现在是时候介绍一下外围主要是网络层面的安全。这部分主要包括网络功能、服务和端点。因为绝大部分的攻击都来自于网络,所以网络层的安全控制某种意义上可以说是最外层的防御。本文先介绍一下网络方面的配置。网...

2018-02-28 12:34:02

阅读数:150

评论数:0

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