SQL On Linux
文章平均质量分 96
关于Linux上的SQL Server
發糞塗牆
MVP, TOGAF, MCSE, Azure Solution Architect
展开
-
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 · 942 阅读 · 0 评论 -
SQL Server 列存储索引性能总结(12)——RESOURCE_SEMAPHORE 等待
在SQL Server 列存储索引性能总结(10)——行组的大小影响一文中,实验过程当把服务器的max server memory(MB)值调到300MB并创建聚集列存储所以时,整整跑了5个小时都还没完成,然后查看对应的会话阻塞情况,发现了这个我过去很少见到过的等待状态,所以找了一些资料了解一下。当然,光从行为上,我大概能猜出是内存不够的原因,但是还是需要了解一下具体情况。背景 在 “S...原创 2020-03-23 11:56:19 · 1276 阅读 · 0 评论 -
SQL Server 列存储索引性能总结(11)——列存储的维护
接上文:SQL Server 列存储索引性能总结(10)——行组的大小影响索引需要维护,这个不多说,而维护通常就是两种:重建和重组。在一些可控的环境下(比如自己的机房),我选择使用Ola Hallengren的一整套维护脚本。非常好用。不过对于类似PaaS平台的SQL Server,可控性很弱,可能需要自己开发。但是这个不是本文的主题。本文介绍并演示重组和重建。如何选择重组和重建重组 ...原创 2020-03-23 09:57:21 · 1062 阅读 · 1 评论 -
SQL Server 列存储索引性能总结(10)——行组的大小影响
我们知道,为了更好的性能,行组(row group)的大小最好是1045678行,或者小于10万行。如果没有办法达到最佳大小,在读取大量数据的时候,就很难用到列存储的优点。在列存储索引中,最重要的概念就是行组和片段,它们分别代表了数据存储在行存储和列存储中。在片段中,不管你存了1行还是100万行数,读取的时候都是每个页或者区来读取,所以如果行数太少,是挺浪费的。如果对未排序的列使用筛选条件,那...原创 2020-03-22 18:49:45 · 1421 阅读 · 1 评论 -
SQL Server 列存储索引性能总结(9)——重建和重组聚集列存储索引所需的内存
接上文SQL Server 列存储索引性能总结(8)——列存储中的Dictionary,本文演示一下创建或重建及重组列存储索引时所需要的内存,因为在SQL Server 列存储索引性能总结(5)——列存储等待信息中我们也看到了如果内存不足,会出现不少等待。背景 在数据导入列存储索引后,通常还会有不少行组没有被压缩,甚至全部没有被压缩,这个时候除了Tuple Mover之外,还可以通过...原创 2020-03-21 23:07:15 · 1268 阅读 · 0 评论 -
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 · 1216 阅读 · 0 评论 -
SQL Server 列存储索引性能总结(4)——列存储压缩
接上文:SQL Server 列存储索引性能总结(3)——列存储的锁,列存储的其中一个强项在于非常高的压缩率,如果没有这个压缩功能,列存储不可能有极大的性能提升。本文就来演示一下压缩方面的内容。案例测试 压缩率高不高直接看大小的变化已经足够了,这次我们使用ContosoRetailDW库的FactOnlineSales表,这个表有1200万数据,可以作为一个借鉴,我们先把数据挪到一个堆...原创 2020-03-14 16:41:52 · 1174 阅读 · 0 评论 -
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 · 583 阅读 · 0 评论 -
SQL Server 列存储索引性能总结(2)——获取元数据信息
接上文:SQL Server 列存储索引性能总结(1)——环境准备及简介, 本文介绍怎么获取和解读元数据信息,以便后续演示过程能知道内幕技术,也可以方便在日常工作中的TroubleShooting。环境准备 我们先创建一些环境,然后一边演示一边介绍,为了不受示例数据库的影响,这次在TempDB上面运行。 创建测试表加聚集列存储索引,然后循环插入240万行数据:--use Tem...原创 2020-03-12 16:26:12 · 554 阅读 · 0 评论 -
SQL Server 列存储索引性能总结(1)——环境准备及简介
列存储是从SQL 2012引入,并在后面发挥非常大性能提升的功能,因为当前工作过程需要使用,并且已经出现了很多问题,所以这里我打算把这两个月的经验总结和分享一下。这个系列跟前面的有些类似,但是我希望能够把零碎的知识点合在一个系列中,最起码方便自己以后搜索。环境准备 本文会使用SQL Server On Linux环境,不过这个问题不大,SQL Server 使用2019版本。 ...原创 2020-03-12 16:22:03 · 792 阅读 · 0 评论 -
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 · 364 阅读 · 0 评论 -
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 · 353 阅读 · 0 评论 -
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 · 750 阅读 · 0 评论 -
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 · 854 阅读 · 0 评论 -
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 · 612 阅读 · 0 评论 -
SQL Server导入性能对比(2)——非聚集列存储索导入
接上文 SQL Server导入性能对比(1)——并行导入, 这次使用非聚集列存储索引来测试性能。环境 首先说明一下这里使用的还是SQL 2016以上的非聚集列存储索引,也就是可更新的列存储索引,在2012的时候已经出现但是是不可更新的。 首先先创建测试表,然后对全部列进行索引化。注意这个时候表实际上是堆表,因为没有任何聚集索引在上面。CREATE TABLE [dbo].[Fac...原创 2020-03-02 14:15:23 · 519 阅读 · 0 评论 -
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 · 369 阅读 · 0 评论 -
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 · 637 阅读 · 0 评论 -
SQL Server On Linux(19)—— SQL Server On Linux性能(5)——针对性能的配置(数据库层面)
本人新书上市,请多多关照:《SQL Server On Linux运维实战 2017版从入门到精通》原创 2019-03-20 11:44:49 · 920 阅读 · 2 评论 -
SQL Server On Linux(18)—— SQL Server On Linux性能(4)——针对性能的配置(实例层面)
本人新书上市,请多多关照:《SQL Server On Linux运维实战 2017版从入门到精通》原创 2019-03-19 15:47:28 · 1096 阅读 · 0 评论 -
SQL Server On Linux(17)—— SQL Server On Linux性能(3)——内置特性(3)——I/O行为
本人新书上市,请多多关照:《SQL Server On Linux运维实战 2017版从入门到精通》原创 2019-03-11 15:12:22 · 973 阅读 · 0 评论 -
SQL Server On Linux(16)—— SQL Server On Linux性能(2)——内置特性(2)——内存和Cache管理
本人新书上市,请多多关照:《SQL Server On Linux运维实战 2017版从入门到精通》原创 2019-03-06 11:19:41 · 836 阅读 · 0 评论 -
SQL Server On Linux(15)—— SQL Server On Linux性能(1)——内置特性(1)——内置扩展性
本人新书上市,请多多关照:《SQL Server On Linux运维实战 2017版从入门到精通》原创 2019-03-04 17:57:26 · 1001 阅读 · 0 评论 -
SQL Server On Linux(14)—— SQL Server On Linux安全性(7)——小结
https://www.databasejournal.com/features/mssql/data-encryption-using-always-encrypted-in-sql-server.htmlTDE to secure data at restEncryption based data security to secure cell level valuesDynamic D...原创 2019-03-01 15:25:26 · 649 阅读 · 0 评论 -
SQL Server On Linux(13)—— SQL Server On Linux安全性(6)——Data Classification and Auditing
pro sql server on linux p376原创 2019-02-22 16:41:37 · 883 阅读 · 0 评论 -
SQL Server On Linux(12)—— SQL Server On Linux安全性(5)———透明数据加密(TDE)
阿萨德原创 2019-02-19 11:29:04 · 860 阅读 · 0 评论 -
SQL Server On Linux(11)—— SQL Server On Linux安全性(4)——Always Encrypted
本人新书上市,请多多关照:《SQL Server On Linux运维实战 2017版从入门到精通》Always Encrypted,简称AE,官方翻译叫始终加密原创 2019-02-13 16:29:20 · 918 阅读 · 0 评论 -
SQL Server On Linux(10)—— SQL Server On Linux安全性(3)——Dynamic Data Masking
大家是否已经很熟悉快递单上的手机号中间几位打码的情况?虽然我不清楚别人用的是什么技术,但是在SQL Server 2016开始,使用Dynamic Data Masking(DDM,动态数据掩码)就可以实现这种效果,下面来演示一下。DDM 演示 为了保证环境不受影响,这次使用TempDB来演示。--创建测试数据USE tempdb;GOSELECT TOP (10) ID ...原创 2019-02-02 15:29:45 · 934 阅读 · 0 评论 -
SQL Server On Linux(9)—— SQL Server On Linux安全性(2)——Row Level Security
原创 2019-02-01 15:17:45 · 656 阅读 · 0 评论 -
SQL Server On Linux(8)—— SQL Server On Linux安全性(1)——Active Directory Authentication
数据库及数据的安全在今时今日的重要性已经不用多说,那么作为成熟的数据库管理系统,SQL Server特别是SQL Server On Linux上对安全性又作出了什么的改进呢?接下来几篇将向大家介绍一下。在本篇中,主要介绍的是以AD授权方式登录Linux上的SQL Server。安全简介 下面先看个图,下图的右边是近8年来安全方面的统计,可以看到SQL Server远比其他产品低。左边是...原创 2019-01-24 11:57:26 · 1123 阅读 · 0 评论 -
SQL Server On Linux(7)—— SQL Server On Linux 安装及配置细节(2)
从版本而言,SQL Server On Linux提供了比Windows平台更便捷的更新版本方式,但是Linux上更加讲究CU和GDR这两个概念。同时这种便捷方式也适用于卸载和移除SQL Server工作中,接下来我们简单介绍一下。升级SQL Server 首先来看看SQL Server的升级,在Linux平台上,SQL Server很依赖于“存储库”(repository),基于这个存...原创 2019-01-14 14:38:02 · 825 阅读 · 0 评论 -
SQL Server On Linux(6)—— SQL Server On Linux 安装及配置细节(1)
asdfasdf原创 2019-01-14 11:02:21 · 1158 阅读 · 0 评论 -
SQL Server On Linux(5)——Linux上添加磁盘
接上文:[SQL Server On Linux]随着数据库的使用时间越来越久,空间问题越显突出。这个时候其中一个手段就是加空间。很多时候是通过加磁盘来实现。在很多规范化的企业里面,有专门的IT人员负责运维服务器,DBA通常只负责管理数据库。但是作为新时代的DBA,有必要了解DB以外的内容。那么下面来演示一下如何在Linux上添加磁盘以满足SQL Server的空间要求。 要添加磁盘,首...原创 2018-12-27 12:00:27 · 997 阅读 · 0 评论 -
SQL Server On Linux(4)——Linux 初步配置
文件目录内存调整(引出NUMA)原创 2018-10-18 14:40:41 · 2054 阅读 · 0 评论 -
SQL Server On Linux(3)——SQL Server 2019 For Linux 下载并部署示例数据库
接上文SQL Server On Linux(2)——SQL Server 2019 For Linux安装过程细节研究正所谓工欲善其事必先利其器,读者可能也跟作者一样很迫切希望了解和尝试SQL Server On Linux及SQL 2019的各种新特性,不过为了走得更远,并且少踩坑,作者还是建议先把路踏踏实实地铺好。当我们有一个可用的环境之后,不妨先把示例数据库准备好。 很多人应...原创 2018-10-10 15:34:17 · 4077 阅读 · 0 评论 -
SQL Server On Linux(2)——SQL Server 2019 For Linux安装过程细节研究
接上文SQL Server On Linux(1)——CentOS 7 安装SQL Server2019在安装过程中,作者发现了一些信息,这些信息引起了作者的兴趣,那么下面作者把自己研究的结果分享出来,如果读者对此有深入研究过,欢迎指正。...原创 2018-10-08 15:05:27 · 3350 阅读 · 1 评论 -
SQL Server On Linux(1)——CentOS 7 安装SQL Server2019
前言SQL Server 2019已经正式公布,虽然只是preview版,但是不影响我们追求新的技术。接下来的一个系列,随着本人的研究,尽量让这个系列成为“教程”,真正的入门到精通。环境准备 不废话,先把研究环境搭建起来。由于某些原因(晚点再说),本系列首先使用CentOS 7作为操作系统。官方指引中支持的Linux平台及文件系统中并没有指出CentOS,但是作为与Red Hat同源的...原创 2018-09-29 16:40:17 · 10569 阅读 · 9 评论 -
SQL Server On Linux中的即时文件初始化
原创 2018-02-08 15:23:54 · 664 阅读 · 0 评论 -
如何保护SQL Server免受Linux上的OOM-killer杀掉
今天机缘巧合搜到一篇微软CSS团队的一篇案例分享,在本人学习SQL On Linux过程中,对很多知识点存在不理解,看了这篇文章之后,觉得很有必要存起来,不管有没有其他人看,对我自己还是很有用,所以决定翻译一下,我相信在不久的将来这篇文章会被重视,因为SQL On Linux已经出来了一段时间,并且部分客户已经在用,国内市场的改变也只是时间上的问题。 这是一篇关于SQL Server运行在Li翻译 2018-01-30 17:24:18 · 1064 阅读 · 0 评论