阿里云数据库专家,负责SQL Server数据库产品线。SQL Server从业10年,经历过SQL 2000、SQL 2005、SQL 2008、SQL 2008R2、SQL 2012、SQL 2014、SQL 2016和SQL on Linux各个版本。
# 问题引出 “鸟儿啊,到底SQLServer on Linux肚里装了多少东西,在我们的CentOS系统安装了哪些物理文件呢?”,老鸟这天火急火燎的问道。 “这个啊?让本鸟帮你一探究竟。”,菜鸟耐心回答道。 # 问题分析 菜鸟一边想一边分析:CentOS是RedHat发行的源代码重新编译而成的二进制免费版本,我们可以简单的理解为CentOS是RedHat的儿子,RedHat是CentOS
# 问题引入 这天老鸟满面春风找到菜鸟:“鸟儿啊,看你最近研究SQL Server On Linux如鱼得水,干得不错啊。不过呢,这是一个张扬个性的年代,要创新,要与众不同,那你怎么在Linux平台对SQL Server做个性化的配置吧?比如,我们数据库文件存放的路径,备份文件存放的路径,排序规则等等”。 “鸟哥,今天心情不错啊,捡到金子啦?得了,这就按您的指示办去”。 # 问题分析 老鸟
# 问题引出 菜鸟一口气写了好几篇关于MSSQL On Linux的文章了,老鸟看在眼里喜在心理,于是又来到菜鸟窝边:“MSSQL On Linux目前有很多炫酷的功能都不支持,比如AlwaysOn,Mirroring,SQLAgent,Replication等,但是In-Memory OLTP还是支持的,你去好好研究下,也许以后,说不定阿里云RDS SQL Server会跑在Linux平台上哟
# 问题引入 “鸟儿啊,我记得你写过一篇《SQLServer On Linux Package List on CentOS》的文章,从这篇文章,我们很清楚的知道了SQL Server on Linux包含有哪些必要的包。那么,我们怎么知道SQL Server on Linux到底包含哪些重要的文件和目录结构呢?他们的作用是什么?”。 “的确,当我们在排错或者需要改变MSSQL Server
SQL Server查询优化器对于执行计划成本的评估是基于数据库统计信息的。所以,数据库统计信息直接影响到数据库查询效率,是数据库系统快速响应,低延迟特性的幕后英雄,但是我们又经常忽视数据库统计信息的存在和维护,怀着为英雄正名和唤醒大家对幕后英雄尊重的目的写作这篇文章。 # 什么是统计信息 SQL Server查询优化器使用统计信息来评估表或索引视图的一个或多个列中值的分布,这个分布信息提供了
# 问题引入 “鸟儿啊,听说微软至SQL Server 2012以来,推出了一种全新的基于列式存储的索引,你去研究看看SQL Server on Linux对这个功能的支持度如何,效率有多大的提升?”。老鸟又迫不及待的开始给菜鸟分配任务。 # 分析问题 的确如老鸟所说,从SQL Server 2012开始推出了列存储索引,这个版本限制颇多,但是它对统计查询的效率提升又是实实在在的。所以,让我
# 问题引出 这天老鸟喜笑颜开的找到菜鸟:“听说微软11月16号发布了MSSQL ON Linux版本了?要不要尝尝鲜?”。 “老大,我已经尝过了,你不知道我写了一篇《Happy Birthday to MSSQL On Linux》?”,这次换菜鸟得意洋洋了。 “不错嘛,那你要不要研究看看MSSQL On Linux备份与还原,看看和Windows上有没有什么区别。”,老鸟总是能给菜鸟找到
# 问题引出 老鸟看过菜鸟的上一篇《MSSQL On Linux备份与还原》文章后,很满意,但是还是忍不住发问:“这篇文章讲的是MSSQL在Linux系统上的备份与还原,如果我之前是Windows系统的用户,怎么把我的数据库如丝般顺滑地迁移到MSSQL On Linux呢?”。 “嗯,老鸟,这个问题问的非常好,毕竟Windows的License费用不低,如果能够使用免费的Linux系统
微软于2016年11月16日发布了MSSQL On Linux,这篇文章带大家来尝尝鲜,看看Linux版的SQL Server概况是什么,如何安装,以及一个简单的创建数据,创建表,插入数据,查询数据的操作。
# 引出问题 自从上次菜鸟为老鸟解决了《RDS SQL SERVER 解决中文乱码问题》问题,老鸟意犹未尽,决定再想个招来刁难刁难菜鸟:“我最近做T-SQL性能调优的时候,经常发现执行计划中的统计信息不准确,导致SQL Server查询性能低下,想个办法帮我一次性更新实例所有数据库下所有表统计信息吧?” # 分析问题 “要一次性更新实例级别所有数据库下所有表统计信息啊,这个还真的有点犯难”,
# 问题引入 这天老鸟火急火燎的跑到菜鸟旁边,想必是遇到什么难题了:“现在有这么一个场景,假如有三种角色,并且存在层级关系,他们需要访问同一个数据源表,但是需要做权限控制,使得每种角色只能看到自己及以下层级的数据。比如:公司有CEO,Manger和普通的employee三种角色,CEO可以查看CEO、Manager和employee层级的数据;Manger只能查看Manger和employee的
# 问题引入 这天老鸟又开始纠缠着菜鸟:“菜鸟啊,我们最近遇到一个RDS SQL Server 2008 R2的奇怪的问题,我们的生僻字写入到RDS SQL Server中,查询结果展示出来是乱码呀?你去解决下这个问题吧。”。 “可是,鸟哥,我最近在做关于SQLTest的系列文章啊,暂时抽不出。。。。。。”。 “那个暂时先放放,这个比较紧急,尽快,立刻,马上去复盘并解决掉,Under
--- title: 巧用COLUMNS_UPDATED获取数据变更 author: 风移 --- # 业务场景 在平时与数据库打交道的过程中,我们经常会有这样的疑惑:如何快速的获取数据变更记录呢?举个例子,搜索引擎要为外部客人提供快速准确的商品信息搜索功能,那么当有新的商品数据变更后,搜索引擎如何快速的发现这些新的变更数据呢?我们常见的两种做法: ## 全量更新 这种方法最为简单直
# 场景引入 这天老鸟火急火燎的冲到菜鸟座位:“还记得你在云栖社区发表的一篇名为‘SQL Server利用HashKey计算列解决宽字段查询的性能问题’的文章吗?被人踢馆啦,人家觉得你这个限制条件太苛刻,只能解决完全等于的问题条件下的性能问题,没有太大的现实意义。” 菜鸟烧脑的调动大脑的每一个细胞:“哦,你说的是这篇文章啊?”。 [SQL Server利用HashKey计算列解决宽字段查
# 场景引入 这天老鸟火急火燎的冲到菜鸟座位:“还记得你在云栖社区发表的一篇名为‘SQL Server利用HashKey计算列解决宽字段查询的性能问题’的文章吗?被人踢馆啦,人家觉得你这个限制条件太苛刻,只能解决完全等于的问题条件下的性能问题,没有太大的现实意义。” 菜鸟烧脑的调动大脑的每一个细
# 场景引入 上文说书到“SQLTest系列之INSERT语句简单测试”,于是,菜鸟想深入了解:“在现实业务场景中,实际的表数据不可能是完全一样的。所以,我们需要完全模拟实际场景,如何将表数据完全参数化的方式来INSERT到表中呢?”。带着问题来研究SQLTest,问题快速的迎刃而解。 # 环境准备 随着研究的深入,菜鸟了解到SQLTest的强大,SQLTest支持将一个存储过程的输出结果集
一款可以测试MSSQL Server的工具,这篇文章主要是分享下SQLTest之Insert语句测试。
# 场景带入 双十一后,老鸟接二连三的狂轰滥炸着菜鸟:“你读过一本叫《谁动了我的奶酪》的书吗?正好,你研究下谁动了SQL Server的Buffer Pool吧?”。 菜鸟又是满脸懵逼茫然状:“这谁跟谁啊?有半毛钱关系吗?”。没办法,老鸟交代的任务,菜鸟还是要一丝不苟的竭尽全力。 # 哪些数据库占用了Buffer Pool 于是,菜鸟从大处着眼:“哪些数据库占用了SQL Server的Bu
# 问题提出 老鸟这两周一直没有找到机会略菜鸟,因为菜鸟最近一直在参加百阿培训。这不,刚好菜鸟过完买买买的双十一回来,老鸟逮着机会劈头盖脸问道:“菜鸟啊,你去研究下为什么MSSQL Server系统视图sys.master_files不能准确展示Tempdb数据库数据文件大小啊?”。 # 场景复盘 菜鸟一脸懵逼:“什么?不准确,不会吧?我一直都是用它来统计数据库文件大小的啊,有什么问
# 引出问题 随着菜鸟一点点的成熟,现在老鸟已经开始慢慢的将一些问题抛给他:“菜鸟,你去研究下如何有效而快捷的侦查SQL执行状态?”。 “鸟哥,你交代的任务,我分分钟就去办。”,菜鸟领了任务赶紧忙碌起来。 # 分析问题 “其实这个场景经常遇到,比如:我们想知道某个进程的SQL查询执行到哪一步了?当前执行多久了?查询是从哪个登录用户哪一个机器过来的?跑的是什么业务?甚至执行计划是什么
# 问题引出 自从菜鸟的上一篇《如何分析SQL Server Trace文件》文章以后,老鸟对菜鸟是另眼相看:“鸟哥,上篇文章你总结得还不错,当然要赶上我还有点距离”。老鸟还是改不了他得意忘形的模样:“关于Trace文件的自动化分析你研究透了,那怎么自动化部署SQL Trace和Windows性能监视器,你也得研究研究吧”。 “虽然老鸟骄傲自满的样子让人讨厌,但是这个问题还是问的很不错的。”,
# 1.问题引出 老鸟为了重点栽培菜鸟,决定交给菜鸟一个艰巨而光荣的任务。这天,菜鸟刚到公司还未坐下,老鸟便劈头盖脸的问道:“你知道,我们如何Trace SQL Server执行语句吗?怎么手动分析这些Trace文件?如何将Trace File与Windows的性能监视器结合,看到每个语句执行时的性能开销?以及如何自动分析SQL Server Trace文件?”。 菜鸟还没有反应过来,就被
#SQL Server利用HashKey计算列解决宽字段查询的性能问题 ##主人翁 本文主人翁:MSSQL菜鸟和MSSQL老鸟。 ##问题提出 某年某月某日,某MSSQL菜鸟满脸愁容的跑到老鸟跟前,心灰意懒的对老鸟说“我最近遇到一个问题,很大的问题,对,非常大的问题”。老鸟不急不慢的
--- title: SQL Server - 最佳实践 - 参数嗅探问题 author: 风移 --- ##摘要 MSSQL Server参数嗅探既是一个涉及知识面非常广泛,又是一个比较难于解决的课题,即使对于数据库老手也是一个比较头痛的问题。这篇文章从参数嗅探是什么,如何产生,表象是什么,会带来哪些问题,如何解决这五个方面来探讨参数嗅探的来龙去脉,期望能够将SQL Server参