- 博客(426)
- 资源 (29)
- 收藏
- 关注
原创 Azure SQL DB/DW 系列(12)——使用Query Store(1)——报表介绍(1)
本文属于Azure SQL DB/DW系列上一文:Azure SQL DB/DW 系列(11)——重新认识Query Store(4)——Query Store维护本文开始介绍Query Store的输出——各种报表 下一文:Azure SQL DB/DW 系列(13...
2020-03-30 21:08:20 1116
原创 Azure SQL DB/DW 系列(11)——重新认识Query Store(4)——Query Store维护
本文属于Azure SQL DB/DW系列上一文:Azure SQL DB/DW 系列(9)——重新认识Query Store(2)——工作原理本文介绍Query Store的配置,包括PaaS平台和非云版本P73...
2020-03-30 16:33:47 977
原创 Azure SQL DB/DW 系列(10)——重新认识Query Store(3)——配置查询存储
本文属于Azure SQL DB/DW系列上一文:Azure SQL DB/DW 系列(9)——重新认识Query Store(2)——工作原理本文介绍Query Store的配置,包括PaaS平台和非云版本默认设置 和其他功能一样,要最大化它的潜在用处,需要按需配置。Query Store在非云版本中(托管实例除外,因为托管实例非常接近非云版本)默认是不开启的,如果你需要使用,当然...
2020-03-29 20:54:55 1022
原创 Azure SQL DB/DW 系列(9)——重新认识Query Store(2)——工作原理
本文属于Azure SQL DB/DW系列上一文:Azure SQL DB/DW 系列(8)——重新认识Query Store(1)——简介本文介绍Query Store的技术内幕数据来源 Query Store中的数据由三个部分的数据来源组成:查询和计划的信息:有关查询本身的数据以及查询优化器从该查询派生的执行计划的数据。查询的运行时信息:查询运行得多快,被调用了多少次,以及...
2020-03-29 18:39:07 922
原创 Azure SQL DB/DW 系列(8)——重新认识Query Store(1)——简介
本文属于Azure SQL DB/DW系列上一文:Azure SQL DB/DW 系列(7)——Query Store案例(4)——查找参数化问题本文开始整理和总结Query Store的技术要点,以更详细的方式简介Query StoreQuery Store优势 Query Store默认是关闭的,一旦开启,它就会收集数据库中查询的汇总信息和工作负载的统计信息。这些数据可以用来处理...
2020-03-29 12:59:45 1055
原创 Azure SQL DB/DW 系列(7)——Query Store案例(4)——查找参数化问题
本文属于Azure SQL DB/DW系列上一文:Azure SQL DB/DW 系列(6)——Query Store案例(3)——查看等待信息本文演示如何用Query Store查看参数化带来的性能问题,但是跟前面3篇案例不同,这次使用纯T-SQL而不是GUI。前言 Query Store提供了一个全新的方式用于协助数据库用户处理性能问题甚至其他故障,本文演示如何使用Query S...
2020-03-29 11:12:34 952
原创 Azure SQL DB/DW 系列(6)——Query Store案例(3)——查看等待信息
本文属于Azure SQL DB/DW系列上一文:Azure SQL DB/DW 系列(5)——Query Store案例(2)——计划回归本文演示如何用Query Store查看等待信息前言 关于等待信息的查看和使用方式有很多种,本文用全新的方法也就是Query Store来查看等待信息。 我们知道,等待信息几乎可以说是常规应对性能问题甚至其他异常时的首要切入点。其实回顾过去的...
2020-03-27 20:37:19 943
原创 Azure SQL DB/DW 系列(5)——Query Store案例(2)——计划回归
本文属于Azure SQL DB/DW系列上一文:Azure SQL DB/DW 系列(3)——Query Store简介本文演示如何使用Query Store来找到计划回归并处理https://www.sqlpassion.at/archive/2016/01/18/performance-troubleshooting-with-the-query-store-in-sql-serv...
2020-03-26 21:35:08 998
原创 Azure SQL DB/DW 系列(4)——Query Store案例(1)——缺失索引
本文属于Azure SQL DB/DW系列上一文:Azure SQL DB/DW 系列(3)——Query Store简介本文演示如何使用Query Store来找到Missing Index环境搭建 本文以AdventureWorks2017作为演示,使用SQL Server 2019的兼容级别(150)。 首先需要启用Query Store,可以在SSMS中实现,不过如果你已...
2020-03-26 21:34:02 1005
原创 Azure SQL DB/DW 系列(3)——Query Store简介
本文属于Azure SQL DB/DW系列上一文:Azure SQL DB/DW 系列(2)——入门级监控性能的工具简介 从名字来看,Query Store就是查询存储,存储了查询(不仅限于SELECT,还包括 DML 语句如 SELECT、INSERT、UPDATE、DELETE、MERGE 和 BULK INSERT的计划。)的执行信息,供后续分析。它可用于SQL Server(本...
2020-03-25 16:31:12 1294
原创 Azure SQL DB/DW 系列(2)——入门级监控性能的工具
关于性能监控,目前常用的有3种:Azure的控制台提供了服务器的资源使用情况。Azure控制台有专门的Performance的部分,特别是Performance Insight。在SSMS种可以查看的Query Store。接下来将简介一下这三种,然后优先介绍Query Store,因为这个功能可能更加有用。当然,还有一些其他方式可以使用,比如Extended Events。...
2020-03-25 11:57:36 1303 1
原创 Azure SQL DB/DW 系列(1)——首次使用感受
由于不同的云供应商有自己的封装,加上本人目前公司的项目使用国际版的微软云Azure,所以我的环境只集中在国际版的Azure平台。前言 云计算已经不再是什么新鲜事,作为IT人员更加如此。 ...
2020-03-25 11:53:48 2005
原创 SQL Server 列存储索引性能总结(12)——RESOURCE_SEMAPHORE 等待
在SQL Server 列存储索引性能总结(10)——行组的大小影响一文中,实验过程当把服务器的max server memory(MB)值调到300MB并创建聚集列存储所以时,整整跑了5个小时都还没完成,然后查看对应的会话阻塞情况,发现了这个我过去很少见到过的等待状态,所以找了一些资料了解一下。当然,光从行为上,我大概能猜出是内存不够的原因,但是还是需要了解一下具体情况。背景 在 “S...
2020-03-23 11:56:19 1279
原创 SQL Server 列存储索引性能总结(11)——列存储的维护
接上文:SQL Server 列存储索引性能总结(10)——行组的大小影响索引需要维护,这个不多说,而维护通常就是两种:重建和重组。在一些可控的环境下(比如自己的机房),我选择使用Ola Hallengren的一整套维护脚本。非常好用。不过对于类似PaaS平台的SQL Server,可控性很弱,可能需要自己开发。但是这个不是本文的主题。本文介绍并演示重组和重建。如何选择重组和重建重组 ...
2020-03-23 09:57:21 1063 1
原创 SQL Server 列存储索引性能总结(10)——行组的大小影响
我们知道,为了更好的性能,行组(row group)的大小最好是1045678行,或者小于10万行。如果没有办法达到最佳大小,在读取大量数据的时候,就很难用到列存储的优点。在列存储索引中,最重要的概念就是行组和片段,它们分别代表了数据存储在行存储和列存储中。在片段中,不管你存了1行还是100万行数,读取的时候都是每个页或者区来读取,所以如果行数太少,是挺浪费的。如果对未排序的列使用筛选条件,那...
2020-03-22 18:49:45 1425 1
原创 SQL Server 列存储索引性能总结(9)——重建和重组聚集列存储索引所需的内存
接上文SQL Server 列存储索引性能总结(8)——列存储中的Dictionary,本文演示一下创建或重建及重组列存储索引时所需要的内存,因为在SQL Server 列存储索引性能总结(5)——列存储等待信息中我们也看到了如果内存不足,会出现不少等待。背景 在数据导入列存储索引后,通常还会有不少行组没有被压缩,甚至全部没有被压缩,这个时候除了Tuple Mover之外,还可以通过...
2020-03-21 23:07:15 1272
原创 SQL Server 列存储索引性能总结(8)——列存储中的Dictionary
接上文:SQL Server 列存储索引性能总结(7)——导入数据到列存储索引的Delta Store,前面提到了几次Dictionary,本文快速介绍一下它到底是什么,以便更好地理解列存储。不过这部分不会讲太深入,因为这个功能只能用于SQL Server而不适用于SQL DB和SQL DW(现在称为Azure Synapse Analytics)环境 本文继续使用ContosoRe...
2020-03-20 10:13:26 1217
原创 SQL Server 列存储索引性能总结(7)——导入数据到列存储索引的Delta Store
列存储索引有推荐的最佳导入行数,过小会导致数据先进入Delta Store(行组,row group),这个是行存储的B 树结构,然后通过Tuple Mover对数据进行编码和压缩最终成为片段(segment),这时候才能说进入了真正的列存储索引中,才能真正发回去列存储索引的优势。在我目前的项目中,导入数据是个头痛的事情,数据量不是非常大,但是表的列很多,4~500列。...
2020-03-19 16:16:48 1221
原创 SQL Server 列存储索引性能总结(6)——聚集和非聚集列存储索引的压缩
接上文:SQL Server 列存储索引性能总结(5)——列存储等待信息,前面的文章主要集中在聚集列存储上,下面也是时候引入一下费聚集列存储索引的内容。 这篇文章集中在不同列存储索引的“压缩”上面。还是使用ContosoRetailDW库做演示。对比一下两种列存储索引的压缩效率,其实我们应该已经知道结论了,不过不妨再看看过程。 本文选择四个不同数据量,列也不相同的表做对比,尽可能覆...
2020-03-18 20:41:53 1082
原创 SQL Server 列存储索引性能总结(5)——列存储等待信息
接上文:SQL Server 列存储索引性能总结(4)——列存储压缩,本文介绍列存储相关的锁 上周六,我在加班,为公司的Azure SQL DB测试聚集列存储索引,按照网上的说法,对堆表建立聚集列存储索引应该很快的,何况我使用的是SQL DB中最高I/O的Pricing Tier——Business Critical vCore 80,号称IOPS 可达204800,Log的吞吐量也可以...
2020-03-18 20:18:23 1189
原创 SQL Server 列存储索引性能总结(4)——列存储压缩
接上文:SQL Server 列存储索引性能总结(3)——列存储的锁,列存储的其中一个强项在于非常高的压缩率,如果没有这个压缩功能,列存储不可能有极大的性能提升。本文就来演示一下压缩方面的内容。案例测试 压缩率高不高直接看大小的变化已经足够了,这次我们使用ContosoRetailDW库的FactOnlineSales表,这个表有1200万数据,可以作为一个借鉴,我们先把数据挪到一个堆...
2020-03-14 16:41:52 1178
原创 SQL Server 列存储索引性能总结(3)——列存储的锁
接上文:SQL Server 列存储索引性能总结(2)——获取元数据信息,本文介绍列存储相关的锁 现在在TempDB中重新建表:IF OBJECT_ID('dbo.CCTest', 'U') IS NOT NULL drop table dbo.CCTest;create table dbo.CCTest( id int not null, name varchar(50) ...
2020-03-12 16:28:36 585
原创 SQL Server 列存储索引性能总结(2)——获取元数据信息
接上文:SQL Server 列存储索引性能总结(1)——环境准备及简介, 本文介绍怎么获取和解读元数据信息,以便后续演示过程能知道内幕技术,也可以方便在日常工作中的TroubleShooting。环境准备 我们先创建一些环境,然后一边演示一边介绍,为了不受示例数据库的影响,这次在TempDB上面运行。 创建测试表加聚集列存储索引,然后循环插入240万行数据:--use Tem...
2020-03-12 16:26:12 557
原创 SQL Server 列存储索引性能总结(1)——环境准备及简介
列存储是从SQL 2012引入,并在后面发挥非常大性能提升的功能,因为当前工作过程需要使用,并且已经出现了很多问题,所以这里我打算把这两个月的经验总结和分享一下。这个系列跟前面的有些类似,但是我希望能够把零碎的知识点合在一个系列中,最起码方便自己以后搜索。环境准备 本文会使用SQL Server On Linux环境,不过这个问题不大,SQL Server 使用2019版本。 ...
2020-03-12 16:22:03 795
原创 SQL Server On Linux(27)——SQL Server on Linux 性能(11)——列存储索引案例
本人新书上市,请多多关照:《SQL Server On Linux运维实战 2017版从入门到精通》接上文:SQL Server On Linux(26)——SQL Server on Linux 性能(10)——列存储索引简介这次来做一个简单的实操演示 这次我们使用WideWorldImportersDW库来演示。 首先查一下哪些表用了聚集列存储索引:USE [wideworl...
2020-03-10 15:33:28 365
原创 SQL Server On Linux(26)——SQL Server on Linux 性能(10)——列存储索引简介
本人新书上市,请多多关照:《SQL Server On Linux运维实战 2017版从入门到精通》本文介绍SQL On Linux上的性能提升功能,列存储索引,实际上这个并不仅仅是Linux上才有,所有平台的SQL Server包括windows、linux和云平台都有,而且在本人工作中用了不少,所以做个技术分享。前言 在SQL 2012之前,我们能用到的所有索引都是“行存储索引”...
2020-03-09 11:58:42 355
原创 SQL Server On Linux(25)——SQL on Linux 备份和还原(2)——还原
本人新书上市,请多多关照:《SQL Server On Linux运维实战 2017版从入门到精通》接上文 SQL Server On Linux(24)——SQL on Linux 备份和还原(1)——备份, 本文演示“备份”的配套工作——还原。 还原操作在两个平台上都类似,可以使用SQL命令或者SSMS图形界面操作,比较常见的差异在于你需要还原的数据库来自于别的地方(如别的服务器或...
2020-03-07 17:39:41 751
原创 SQL Server On Linux(24)——SQL on Linux 备份和还原(1)——备份
本人新书上市,请多多关照:《SQL Server On Linux运维实战 2017版从入门到精通》简介 备份和还原的重要性这里就不多说了,但是需要额外提醒一下,备份和还原应该总是“一个”操作,不考虑还原的备份不能认为是有价值的备份。 本文重点在Linux上的SQL Server备份,关于Windows上的SQL Server备份,网上已经有很多成熟的资料,这里就不累赘了。 备份的...
2020-03-06 13:58:23 855
原创 SQL Azure工作积累(2)——Hyperscale 简介
工作需要,要评估Azure SQL DB的配置,所以整理一下网上搜集的信息,由于云产品更新迭代很快,所以今天的内容可能在不久的将来就会变更,但是这个不影响本质。本文归属:SQL Azure 工作积累(1)——添加用户到Azure SQL DB简介 截止发文之时, Azure SQL DB有两种付费模式,一种是vCore,一种是DTU,但是由于公司使用vCore为主,所以先考虑vCore...
2020-03-05 14:55:07 1619
原创 SQL Server导入性能对比(3)——In-Memory搭配聚集列存储索引
接上文SQL Server导入性能对比(2)——非聚集列存储索导入,本文测试In-Memory搭配聚集列存储索引的导入性能。环境准备 先创建测试表,in-memory需要数据库开启“MEMORY_OPTIMIZED_DATA”并且添加专用文件组:use master;GOALTER DATABASE [ContosoRetailDW] ADD FILEGROUP [Conto...
2020-03-03 10:24:19 613
原创 SQL Server导入性能对比(2)——非聚集列存储索导入
接上文 SQL Server导入性能对比(1)——并行导入, 这次使用非聚集列存储索引来测试性能。环境 首先说明一下这里使用的还是SQL 2016以上的非聚集列存储索引,也就是可更新的列存储索引,在2012的时候已经出现但是是不可更新的。 首先先创建测试表,然后对全部列进行索引化。注意这个时候表实际上是堆表,因为没有任何聚集索引在上面。CREATE TABLE [dbo].[Fac...
2020-03-02 14:15:23 520
原创 SQL Server导入性能对比(1)——WITH TABLOCK并行导入
随着大数据和大量数据系统的出现,数据的加载变得越来越重要,很多岗位甚至只需要ETL技能,不过今时今日数据加载已经不再是单纯的ETL,还有ELT,甚至不需要进行数据移动的计算等等。本文先把精力放在传统的ETL上。介绍几种数据加载的过程和对比。常规数据加载方式 数据加载的本质就是把数据插入特定的地方,通常我们关注的是性能,说白了就是插入完成的时间,及引起的空间消耗。 本文及后面两篇文章...
2020-03-02 11:37:39 1565
原创 SQL Server—— 在ETL过程列存储索引vs 行存储索引
本人新书上市,请多多关照:《SQL Server On Linux运维实战 2017版从入门到精通》这几天我一直在跟进公司的一个性能问题,里面涉及到聚集列存储索引的问题。跟微软的技术支持讨论了一下,他们的建议可以考虑转成非聚集的列存储索引,那我到底怎么做好呢?我觉得有必要研究一下这两者的差异,说不定可以得出一个“不用列存储索引”的结论呢。为了感觉记录下处理过程,在本系列中先缓一下分区的内容...
2020-02-29 13:16:53 654
原创 SQL Azure 工作积累(1)——添加用户到Azure SQL DB
本系列打算用于记录本人在工作中使用到Azure的功能,主要记录与本地SQL Server或者其他比较不一样的地方,不过由于每个人对工具软件的熟悉程度和侧重点不一样,所以无法覆盖所有读者的需求。前言 第一篇文章记录的是关于Azure SQL DB的用户,在非PaaS版本中,我们通常都使用SSMS来创建和管理登录名和用户。不过对于PaaS,就有点不同。 因为PaaS在界面和权限上跟非Pa...
2020-02-26 17:14:30 1262
原创 SQL Server On Linux(23)—— SQL Server On Linux性能(9)——性能进阶简介——分区(3)
本人新书上市,请多多关照:《SQL Server On Linux运维实战 2017版从入门到精通》小结:分区方案是把分区函数映射到物理文件组的过程。可以使用ALL关键字把所有分区映射到一个文件组中。可以使用Primary关键字把分区映射到数据库的主文件组中。修改分区方案意味着指定哪个文件组为NEXT USED。使用SPLIT和MERGE管理分区的文件组时,要注意哪些文件组受到影响...
2020-02-21 15:57:07 371
原创 SQL Server On Linux(22)—— SQL Server On Linux性能(8)——性能进阶简介——分区(2)
本人新书上市,请多多关照:《SQL Server On Linux运维实战 2017版从入门到精通》本篇开始专门对性能进行一系列讲解,这一系列不限于Linux平台,更多的是针对SQL Server本身。上一文简单介绍了一下分区的大概情况,本文把分区功能拆散细讲。分区函数说明 首先了解一下分区函数,分区函数是分区过程的第一步(当然调研才是实际第一步),它用于指定整个分区的逻辑层内容,...
2020-02-20 17:52:12 468
原创 SQL Server On Linux(21)—— SQL Server On Linux性能(7)——性能进阶简介——分区(1)
本人新书上市,请多多关照:《SQL Server On Linux运维实战 2017版从入门到精通》本篇开始专门对性能进行一系列讲解,这一系列不限于Linux平台,更多的是针对SQL Server本身。SQL Server性能新特性 SQL Server发展至今,为了不断提升性能,引入了不少最新技术。它们主要以分区表/索引,In-Memory OLTP 和列存储索引这三类核心技术为主...
2020-01-15 15:29:03 638
原创 SQL Server On Linux(20)—— SQL Server On Linux性能(6)——针对性能的配置(Linux层面)
本人新书上市,请多多关照:《SQL Server On Linux运维实战 2017版从入门到精通》
2019-04-01 09:26:31 1146 1
原创 SQL Server On Linux(19)—— SQL Server On Linux性能(5)——针对性能的配置(数据库层面)
本人新书上市,请多多关照:《SQL Server On Linux运维实战 2017版从入门到精通》
2019-03-20 11:44:49 924 2
原创 SQL Server On Linux(18)—— SQL Server On Linux性能(4)——针对性能的配置(实例层面)
本人新书上市,请多多关照:《SQL Server On Linux运维实战 2017版从入门到精通》
2019-03-19 15:47:28 1100
使用DMV对SQLServer进行性能调优
2013-05-02
SQLServer2008企业级平台管理实践01
2012-05-07
SQLServer2008企业级平台管理实践02
2012-05-07
Microsoft SQL Server 2005技术内幕:T-SQL查询.01
2012-04-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人