摘要: 我们都知道Sqlserver为了提高并发,允许乐观隔离级别(读提交快照,快照)以便读与写之间不阻塞.这里有一个在Sqlserver2008R2 SP2 的热补丁(CU11)下RCSI(读提交快照)隔离级别下的异常.希望大家注意. 阅读全文
posted @ 2014-08-25 09:30 ShanksGao 阅读(2712) 评论(5) 推荐(7) 编辑
摘要: 我们知道在SqlServer实例启动过程中数据库会进行还原(Redo,Undo)然后打开提供服务,但我们知道tempdb是不提供重做机制的(Redo)那tempdb是如何还原的呢?如果tempdb损坏我们该怎么办,这里我将通过实例给大家介绍. 阅读全文
posted @ 2014-08-21 15:07 ShanksGao 阅读(1524) 评论(13) 推荐(4) 编辑
摘要: 笔者曾经在面试DBA时的一句”tempdb为什么比其他数据库快?”使得95%以上的应试者都一脸茫然.Tempdb作为Sqlserver的重要特征,一直以来大家对它可能即熟悉又陌生.熟悉是我们时时刻刻都在用,陌生可能是很少有人关注它的运行机制.这次我将通过实例给大家介绍下tempdb的日志机制. 阅读全文
posted @ 2014-08-19 10:47 ShanksGao 阅读(1900) 评论(12) 推荐(8) 编辑
摘要: 死锁对于DBA或是数据库开发人员而言并不陌生,它的引发多种多样,一般而言,数据库应用的开发者在设计时都会有一定的考量进而尽量避免死锁的产生.但有时因为一些特殊应用场景如高频查询,高并发查询下由于数据库设计的潜在问题,一些不易捕捉的死锁可能出现从而影响业务.这里为大家介绍由于设计问题引起的键查找死锁及相关的解决办法. 阅读全文
posted @ 2014-08-12 10:06 ShanksGao 阅读(5300) 评论(31) 推荐(19) 编辑
摘要: 在现实的生产环境中,有可能遇到高并发insert的应用.在此应用时由于堆表(Heap)和聚集表的结构不同导致在高并发的情形下insert效率不尽相同.接下来我会简单的以测试用例来简要说明.并举例说明如果提高聚集表下高并发插入效率. 阅读全文
posted @ 2014-08-06 10:50 ShanksGao 阅读(5060) 评论(15) 推荐(11) 编辑
摘要: 我们都知道,Sql Server在一个数据量巨大的表中添加一个非空栏位是比较费心的,缺乏经验的DBA或是开发人员甚至可能鲁莽地直接添加导致阻塞相应业务,甚至可能因为资源欠缺造成实例的全局问题.当然这都是Sql 2008R2及以前版本的情况.在SQL2012中采用了新的实现方式.这里我将对比相应的实现方式给大家做个介绍.并简单说明Sql Server早期版本添加非空列的方法. 阅读全文
posted @ 2014-07-30 14:17 ShanksGao 阅读(1541) 评论(15) 推荐(8) 编辑
摘要: 关系型数据库中,组提交的应用对磁盘的性能有了很大改进.Sql Server虽然没有组提交的实现方式,但在可控的环境中我们可以一定程度实现"sql server 组提交" 阅读全文
posted @ 2014-07-25 14:20 ShanksGao 阅读(1433) 评论(5) 推荐(2) 编辑
摘要: Sql Server 中数据库在BULK_LOGGED模式下的一些操作会采用最小化日志的记录方式,以减小tran log落盘日志量从而提高整体性能. 这里我简单介绍下哪些操作在什么样的情况下会最小化日志记录.以及现实生产环境中如何应用最小化日志. 阅读全文
posted @ 2014-07-24 13:42 ShanksGao 阅读(1817) 评论(6) 推荐(5) 编辑
摘要: 统计信息作为sql server优化器生成执行计划的重要参考,需要数据库开发人员,数据库管理员对其有一定的理解,从而合理高效的应用,管理. 阅读全文
posted @ 2014-07-21 15:31 ShanksGao 阅读(3127) 评论(5) 推荐(4) 编辑
摘要: 创建聚集索引a索引键最好唯一(如果不唯一会隐形建立uniquier列(4字节)确保唯一,也就是这列都会复制到所有非聚集索引中)b聚集索引列所占空间应尽量小(否则也会使非聚集索引的空间变大)c聚集索引应固定,不能随便改动(否则会引起分页,碎片,非聚集索引被迫修改等一些列问题)d聚集索引键一般与主键(p... 阅读全文
posted @ 2014-07-18 11:51 ShanksGao 阅读(564) 评论(1) 推荐(0) 编辑