摘要: 引入阿姆达尔定律,缅怀计算机世界里的最杰出工程师之一. 谈完并行执行的原理,咱们再来谈谈优化,到底并行执行能给我们带来哪些好处,我们又应该注意什么呢,下面展开. 阅读全文
posted @ 2016-05-26 10:36 ShanksGao 阅读(1733) 评论(10) 推荐(13) 编辑
摘要: 在成熟领先的企业级数据库系统中,并行查询可以说是一大利器,在某些场景下他可以显著的提升查询的相应时间,提升用户体验.如SQL Server, Oracle等, Mysql目前还未实现,而PostgreSQL在2015实现了并行扫描,相信他们也在朝着更健壮的企业级数据库迈进.RDBMS中并行执行的实现方式大抵相同,本文将通过SQL Server为大家详细解析SQL Server并行执行的原理及一些实践. 阅读全文
posted @ 2016-05-16 10:17 ShanksGao 阅读(2143) 评论(4) 推荐(6) 编辑
摘要: 关系型数据库发展至今,细节上以做足文章,在寻求自身突破发展的过程中,内存与分布式数据库是当下最流行的主题,这与性能及扩展性在大数据时代的需求交相辉映.SQL Server作为传统的数据库也在最新发布版本SQL Server 2014中提供了新利器 SQL Server In-Memory OLTP(Hekaton),使得其在OLTP系统中的性能有了几十倍甚至上百倍的性能提升,本篇文章为大家探究一二. 阅读全文
posted @ 2015-12-24 10:12 ShanksGao 阅读(5280) 评论(44) 推荐(59) 编辑
摘要: SQL Server tempdb分配竞争算是DBA老生常谈的问题了,几乎现在所有的DBA都知道多建几个文件来解决/缓解问题.但是深层次的的竞争依旧不可避免.这里给大家剖析下游标在tempdb中的特点使其在一定场景下替代临时表/表变量对象,解决深层次的tempdb竞争问题. 阅读全文
posted @ 2015-11-23 10:04 ShanksGao 阅读(1359) 评论(12) 推荐(10) 编辑
摘要: 网站中一些老页面仍采用Row_number类似的开窗函数进行分页处理,此时如果遭遇挖坟帖的情形可能就需要漫长的等待且消耗巨大.这里给大家介绍根据Row_number()特性采用特定锁Hint提升查询速度. 阅读全文
posted @ 2015-11-09 10:13 ShanksGao 阅读(2988) 评论(29) 推荐(35) 编辑
摘要: 并行死锁我们可以理解为SQL Server的”BUG”,即按照并行方式执行时遭遇特定异常使得执行无法继续.官方给的解决方式大多很简单,改为串行就可以了.但其中还是有值得我们深究的地方以便我们更好的利用并行. 阅读全文
posted @ 2015-10-10 12:45 ShanksGao 阅读(1530) 评论(8) 推荐(8) 编辑
摘要: 我在今年DTCC上SQL Server内存数据库分享 PPT.感兴趣的朋友可以看下,无闩锁的数据结构使得热区问题成为过去,并行很好的维护了CPU Cache的命中率,Native代码执行使得CPU流水顺畅等等.Mysql系的朋友建议了解下.戳这里 阅读全文
posted @ 2015-04-22 17:09 ShanksGao 阅读(511) 评论(4) 推荐(1) 编辑
摘要: SQL2012中发生死锁的原因已经向大家解释了,因为隐式转换造成的表扫描扩大了锁规模.但在SQL2008R2中就未有同样的现象出现,很显然锁规模没有扩大,原因在于SQL Server的优化器为我们做了额外的事情-动态检索 阅读全文
posted @ 2015-02-09 09:59 ShanksGao 阅读(1418) 评论(13) 推荐(7) 编辑
摘要: 在SQL Server的应用开发过程(尤其是二次开发)中可能由于开发人员对表的结构不够了解,造成开发过程中使用了不合理的方式造成数据库引擎未按预定执行,以致影响业务.这是非常值得注意的.这次为大家介绍由于隐式数据类型转换而造成的死锁及相应解决方案. 阅读全文
posted @ 2015-01-28 10:27 ShanksGao 阅读(4968) 评论(59) 推荐(41) 编辑
摘要: 我们有时会遇到一些坑,要不填平,要不绕过.这里为大家介绍一个相关SQL Server优化器方面的特性导致内存授予的相关BUG,及相关解决方式,也顺便回答下邹建同学的相关疑问. 阅读全文
posted @ 2014-12-18 12:12 ShanksGao 阅读(1766) 评论(36) 推荐(16) 编辑
摘要: 一直以来,由于SQL Server中没有位图索引使得面对一些场景,从业人员在索引选择上受限,饱受诟病.其实熟悉SQL Server的朋友应该知道,SQL Server虽然没有位图索引,但在特定环境下还是会采用位图(Bitmap)过滤的,这次就为大家介绍下SQL Server的位图过滤. 阅读全文
posted @ 2014-11-26 09:46 ShanksGao 阅读(3547) 评论(27) 推荐(20) 编辑
摘要: 日常的OLTP环境中,有时会涉及到一些统计方面的SQL语句,这些语句可能消耗巨大,进而影响整体运行环境,这里我为大家介绍如何利用SQL Server中的”类MapReduce”方式,在特定的统计情形中不牺牲响应速度的情形下减少资源消耗. 阅读全文
posted @ 2014-11-17 09:52 ShanksGao 阅读(4320) 评论(48) 推荐(34) 编辑
摘要: 我们都知道数据在存储引擎中是以页的形式组织的,但数据页在不同的组织形式中其中对应的数据行存储是不尽相同的,这里通过实例为大家介绍下堆表的中特有的一种情形Forwared Records及处理方式. 阅读全文
posted @ 2014-10-27 10:02 ShanksGao 阅读(1625) 评论(14) 推荐(3) 编辑
摘要: 锁分区技术使得SQL Server可以更好地应对并发情形,但也有可能带来负面影响,这里通过实例为大家介绍,分析由于锁分区造成的死锁情形. 阅读全文
posted @ 2014-10-14 13:55 ShanksGao 阅读(1555) 评论(10) 推荐(6) 编辑
摘要: 我们都知道,一条SQL语句提交给优化器会产生相应的执行计划然后执行输出结果,但他的执行计划是如何产生的呢?这可能是关系型数据库最复杂的部分了.这里我为大家介绍一个有关SQL Server优化器的特性-隐式谓词,并简单介绍在此特性下如何根据场景控制优化器的行为. 阅读全文
posted @ 2014-10-09 10:34 ShanksGao 阅读(1430) 评论(11) 推荐(9) 编辑
摘要: 一直以来大家对临时表与表变量的孰优孰劣争论颇多,一些技术群里的朋友甚至认为表变量几乎一无是处,比如无统计信息,不支持事务等等.但事实并非如此.这里我就临时表与表变量做个对比,对于大多数人不理解或是有歧义的地方进行详细说明. 阅读全文
posted @ 2014-09-24 09:43 ShanksGao 阅读(3369) 评论(37) 推荐(34) 编辑
摘要: 如标题,笔者查阅资料发现微软声称安装故障转角色后就可能发生上述描述问题,但不止于SSMS崩溃.建议使用win2012R2的朋友安装补丁. 阅读全文
posted @ 2014-09-12 10:30 ShanksGao 阅读(1196) 评论(0) 推荐(0) 编辑
摘要: 生产环境中有时需要使用者抓取一些特定的语句分析,如超超长查询,或高IO查询等.一般来说大家对跟踪比较熟悉,主要因为其有完善的UI支持.由于扩展事件在sql2012才提供UI支持,所以虽然在08时就已经存在的更轻量级的扩展事件没有被广泛使用.这里和大家分享一个扩展事件脚本,用来捕捉高消耗的查询语句. 阅读全文
posted @ 2014-09-09 09:56 ShanksGao 阅读(1582) 评论(0) 推荐(3) 编辑
摘要: 一直以来,在高负载,复杂的生产环境中,tempdb的压力是成为整个实例瓶颈的重要因素之一.微软的工程师们也在各个版本中不断优化它的使用.到了Sql Server2014又有了新的特性使其性能得tempdb的性能有一定提升.这里我将通过实例给大家介绍tempdb在新版本中的实现变化. 阅读全文
posted @ 2014-09-02 09:38 ShanksGao 阅读(4276) 评论(41) 推荐(24) 编辑
摘要: Tempdb就像Sqlserver的临时仓库,各式各样的对象,数据在里面进行频繁计算,操作.大量的操作使得tempdb可能面临很大压力,tempdb中缓存的设计就是为了缓解这些压力.这次就为大家介绍下tempdb的缓存机制. 阅读全文
posted @ 2014-08-27 10:19 ShanksGao 阅读(2304) 评论(7) 推荐(5) 编辑