SQL Server查询优化
简介 当查询优化器(Query Optimizer)将T-SQL语句解析后并从执行计划中选择最低消耗的执行计划后,具体的执行就会交由执行引擎(Execution Engine)来进行执行。本文旨在分类讲述执行计划中每一种操作的相关信息。 数据访问操作 首先最基本的操作就是访问数据。这既可以通过直接访问表,也可以通过访问索引来进行。表内数据的组织方式分为堆(Heap)和B树,其中表中没有建立聚集 索引时数据是通过堆进行组织的,这个是无序的,表中建立聚集索引后和非聚集索引的数据都是以B树方式进行组织,这种方式数据是...
SQL Server死锁详解
站长提示:此文章适合细细体会。 简介 死锁的本质是一种僵持状态,是多个主体对于资源的争用而导致的。理解死锁首先需要对死锁所涉及的相关观念有一个理解。 一些基础知识 要理解SQL Server中的死锁,更好的方式是通过类比从更大的面理解死锁。比如说一个经典的例子就是汽车(主体)对于道路(资源)的征用,如图1所示。 图1.对于死锁的直观理解 在图1的例子中,每队汽车都占有一条道路,但都需要另外一队汽车所占有的另一条道路,因此互相阻塞,谁都无法前行,因此造成了死锁。由这个简单的例子可...
分布式数据流分析框架(1)
分布式数据流分析框架(一) Author:放翁(文初) Email:fangweng@taobao.com Mblog: weibo.com/fangweng Blog: http://blog.csdn.net/cenwenchu79/ 概述 重要:全文内容都是参照这个源码地址内容所写,因此两边对着看会更清晰明了:https://github.com/cenwenchu/beatles 这篇小记主要处于两方面考虑:首先,希望打破一提到海量数据分析,就只有hadoop基础上的一系列工具,更多的时候很多企业需要的是更轻量的设计(办喜酒杀猪杀鸡未...
铁道部新客票系统设计(2)
铁道部新客票系统设计(二) 在上一篇文章中 铁道部信客票系统设计(一) 里面,探讨了关于数据库层面的功能性需求以及非功能性的需求,在非功能性需求里面,一博主 提出了没有考虑到峰值的情况,这一点的确漏掉了,因为我们铁道部的特殊需求,在春运期间负载很大,平时可能一般,如果用考虑最大的情况,则回存在浪费的情 况,如果考虑不足,就像网络订票一样,苦逼。就好比 铁道部春运的时候,发车量大,但是如果制造大量列车,平时就空闲了,也就很亏。机器的折旧很是块的。春运期间可以考虑紧急扩容来实现,...
解决数据量的增长而不影响性能的问题(1)
分库分表的设计思路让大系统变简单 以铁路的售票系统来说明分库分表对架构的影响。 一、问题:铁路的售票系统的数据量是海量吗? 不是。因为数据量不大,真不大。 每一个车次与车次间是独立的,每车次不超过2000张票,一天发车不超过50万车次; 以预售期15天来讲,15*0.1亿张不超过1.5亿笔的热线数据,称不上海量数据的。 再加上可以按线路分库,更是不到千万级的单表容量。已经发车完成的进入归档分析。 即数据库按路线使用不同的服务器,不同的车次放在不同的表中。并发量锁真不大。 当然,如...
MySQL与SQL server触发器的区别
触发器经常用于加强数据的完整性约束和业务规则等。在MySQL与SQL操作中经常会用到,下文中国就为大家讲述MySQL与SQL的触发器的不同写法,希望对大家能够有所帮助。 触发器作用: 当在SQL、MySQL数据库中一张表中插入一条记录时,触动触发器,使同一数据库的另一张表插入相同记录。 在学习的过程中,发现两者的写法是不同的。 1、在SQL中建立两张表sql_test,sql_tem。(两张表的字段是一样的) 复制代码 代码如下: create table sql_test ( id int, name varchar(16) ) create table sql_tem ( id int, name varc...
SQL Server索引高级教程2
SQL Server索引进阶第二篇:深入非聚集索引 索引设计是数据库设计中比较重要的一个环节,对数据库的性能其中至关重要的作用,但是索引的设计却又不是那么容易的事情,性能也不是那么轻易就获取到的,很多的技术人员因为不恰当的创建索引,最后使得其效果适得其反,可以说“成也索引,败也索引”。 本系列文章来自Stairway to SQL Server Indexes 本系列文章的第一篇介绍了SQL Server的索引,尤其重点介绍了非聚集索引,在我们的第一个例子中展示了使用非聚集索引从一个表中取得一行数据所带来的潜在好处。在...
SQL Server索引高级教程4
索引设计是数据库设计中比较重要的一个环节,对数据库的性能其中至关重要的作用,但是索引的设计却又不是那么容易的事情,性能也不是那么轻易就获取到的,很多的技术人员因为不恰当的创建索引,最后使得其效果适得其反,可以说“成也索引,败也索引”。 本系列文章来自Stairway to SQL Server Indexes 在上一篇文章中,我们比较了完全相同的查询语句分别在存在聚集索引和非聚集索引的环境下耗费的成本.我们以“逻辑读”作为衡量成本的主要标准。现在就让我们来解释逻辑读作为主要衡量标准的原因...
SQL Server索引高级教程8
索引设计是数据库设计中比较重要的一个环节,对数据库的性能其中至关重要的作用,但是索引的设计却又不是那么容易的事情,性能也不是那么轻易就获取到的,很多的技术人员因为不恰当的创建索引,最后使得其效果适得其反,可以说“成也索引,败也索引”。 本系列文章来自Stairway to SQL Server Indexes,翻译和整理后发布在agilesharp和博客园,希望对广大的技术朋友在如何使用索引上有所帮助。 唯一索引和约束 唯一索引和其它索引本质上并没有什么不同,唯一不同的是唯一索引不允许索引...
SQL Server索引高级教程10
索引设计是数据库设计中比较重要的一个环节,对数据库的性能其中至关重要的作用,但是索引的设计却又不是那么容易的事情,性能也不是那么轻易就获取到的,很多的技术人员因为不恰当的创建索引,最后使得其效果适得其反,可以说“成也索引,败也索引”。 本系列文章来自Stairway to SQL Server Indexes,翻译和整理后发布在agilesharp和博客园,希望对广大的技术朋友在如何使用索引上有所帮助 在前一系列文章中我们着重讲述了有关索引各种比较虚的概念,比如索引可以做什么,索引的逻辑结构,接下来是...