SQL Server
文章平均质量分 73
ZhangHongju
微软最有价值专家(MVP)
展开
-
SQL Server 2016:实时查询统计
一个数据库查询超时了,而你并不知道原因。估计查询计划可以揭示问题所在,因此,你彻底地消除了超时。但一个小时后,查询还在运行,而你无法获得真正的执行计划。要是有一种方法可以找出服务器内部实际正在发生的事情就好了。借助SQL Server 2016中的“实时查询统计(Live Query Statistics)”,你现在可以回答那个问题了。这项新特性为DBA提供了一个执行计划的实时版本,对当前正在执行转载 2015-10-15 15:08:38 · 2099 阅读 · 0 评论 -
锋利的SQL-基于窗口的排名计算
在SQL Server中,窗口被定义为用户指定的一组行。之所以要提出窗口这个概念,因为这种基于窗口或分区的重新计算在实际工作应用范围比较广泛。例如,假设我们要对每个班级中的学生按成绩进行排序,在对第1个班级排序完成后,对第2个班级进行排序时编号需要重新从1开始。在SQL Server 2005之前,像这种排序方式实现起来是比较烦琐的。可以说,对新窗口重新启动计算是窗口计算的重要特点。原创 2014-08-17 18:49:32 · 2211 阅读 · 0 评论 -
T-SQL基础教程:SQL Server的ABC特色
作者:Itzik Ben-Gan图书:http://item.jd.com/11362891.html多年来,SQL Server只有一个特色——盒子,或是称为(企业)内部部署。最近,微软决定提供多种特色,让客户能够选择最适合他们的需要。在这篇文章期间,微软提供了SQL Server的三个主要特色,内部称为ABC特色:A是应用(Appliance),B是盒子(Box),C是云(Cloud)。1翻译 2014-02-16 09:45:38 · 2669 阅读 · 0 评论 -
T-SQL基础教程:数据生命周期
输入到数据库的中数据以及后期查询出的数据,通常被认为是静态的东西,但在许多环境中,数据其实更类似于在流水线上的产品,另一个环境移动到一个环境,并在线上进行转换。本节介绍数据可以驻留的不同环境,以及数据生命周期各个阶段的数据和环境特征。图1-4举例说明了数据生命周期。翻译 2014-02-16 09:27:04 · 3238 阅读 · 0 评论 -
T-SQL基础教程:谓词逻辑
作者:Itzik Ben-Gan图书:http://item.jd.com/11362891.html谓词逻辑的渊源可追溯到古希腊,是基于关系模型的另一个数学分支。创建关系模型领域的Edgar F. Codd博士很有远见地提出通过连接谓词逻辑来管理和查询数据。一般说来,谓词是一个属性或是一个表示“持有”或“不持有”的表达式,换句话说,也就是“真”或“假”。关系模型就是依靠谓词来维护翻译 2014-02-04 21:23:05 · 3461 阅读 · 0 评论 -
图书推荐:SQL Server 2012 T-SQL基础教程 Itzik Ben-Gan
经过近三个月的不懈努力,终于翻译完毕了。图书虽然是基础知识,但是,即使你已经使用T-SQL几年,很多地方还是能够弥补你的知识空白。大师级的人物写基础知识,或许你想知道这基础中还有哪些深奥,敬请期待吧。这次是邮电出版社负责组织翻译的,非常感谢杜洁女士的努力,才使得这样精彩的东西能够与国人有缘。原创 2013-08-26 22:24:18 · 6234 阅读 · 6 评论 -
T-SQL基础教程:关系模型
关系模型是基于集合理论和谓词逻辑进行数据管理和操作的语义模型。如上所述,它是由Edgar F. Codd博士创建的,后来由Chris Date、Hugh Darwen等阐释和发展。关系模型的第一个版本是于1969年由Codd在IBM研究报告“Derivability, Redundancy, and Consistency of Relations Stored in Large Data Banks(大型数据库中关系模型存储的可导、冗余和一致性)”中提出的,修订版本是由Codd于1970年在一篇名为“A翻译 2014-02-04 21:29:10 · 3446 阅读 · 0 评论 -
写作年表
年代书名出版社说明2013大数据丛书-网站数据分析机械工业出版社369页。网站分析领域开创性著作,融合了六西格玛、网站分析、客户分析、Excel工具使用等内容2013译:SQL Server 2012 T-SQL基础教程微软出版社381页。该书作者It原创 2014-01-25 23:17:00 · 2641 阅读 · 2 评论 -
T-SQL基础教程:集合理论
集合理论是由数学家Georg Cantor创建的,这是一个基于关系模型的数学分支。Cantor的集定义如下:集合,我们的意思是:任意集合体M是我们感知或想到的,能够确定的、互异对象m(称之为M的元素)的整体。──Joseph W. Dauben 和Georg Cantor(普林斯顿大学出版社,1990年) 定义中的每个字都有着深刻和重要意义。集合定义和集合从属关系是无需证明的公理,宇宙中的每个元素要么是集合成员,要么不是集合成员。翻译 2014-02-02 21:16:24 · 2545 阅读 · 0 评论 -
4.SQL Server DML触发器--指定First和Last触发器
可以为一个表定义多个触发器,在某些时候,在执行这些触发器时可能需要一定的顺序。因此,允许为INSERT、DELETE或UPDATE操作指定激发的第一个和最后一个AFTER触发器,分别称之为First和Last触发器。每个语句类型只能有一个First触发器和一个Last触发器,并且First和Last触发器必须是两个不同的触发器。在First和Last触发器之间的AFTER触发器没有固定的执行顺序。原创 2014-01-16 21:00:20 · 1374 阅读 · 0 评论 -
2.SQL Server DML触发器之COMMIT和ROLLBACK TRANSACTION
本文摘自《锋利的SQL》:http://item.jd.com/10380652.html14.1.2 COMMIT和ROLLBACK TRANSACTION 当执行能够激发触发器操作的语句时,触发器中的操作也将包含在该语句的事务处理过程中。即使在SQL Server的自动事务处理模式下,也是如此。在自动事务处理模式下,当语句遇到错误时,会有隐含的BEGIN TRANSACTION语句来回原创 2014-01-04 17:38:16 · 9540 阅读 · 1 评论 -
1.SQL Server DML触发器之AFTER触发器
根据DML触发器发生的时间、编写触发器所使用的语言,可以分为AFTER触发器、INSTEAD OF触发器和CLR触发器。AFTER触发器在执行INSERT、UPDATE或DELETE语句操作之后、INSTEAD OF触发器和约束之后激发。INSTEAD OF在处理约束前激发,因此可以在INSTEAD OF中使用其他语句来替代激发触发器的INSERT、UPDATE等语句。并且,还可为基于一个或多个基表的视图定义INSTEAD OF触发器,从而扩展视图可支持的更新类型。CLR触发器可以是AFTER触发器或INS原创 2014-01-04 17:32:36 · 2218 阅读 · 0 评论 -
6.SQL Server DML触发器--INSTEAD OF触发器
本文摘自《锋利的SQL》:http://item.jd.com/10380652.html在前面讨论的一直都是AFTER触发器。INSTEAD OF在处理约束前激发,可以在INSTEAD OF中使用其他语句来替代激发触发器的INSERT、UPDATE等语句。可以为表或视图定义INSTEADOF触发器,但是,INSTEADOF触发器的主要优点是可以使不能更新的视图支持更新原创 2014-01-16 21:09:57 · 2813 阅读 · 0 评论 -
5.SQL Server DML触发器--嵌套和递归触发器
本文摘自《锋利的SQL》:http://item.jd.com/10380652.html1.嵌套触发器无论是DML触发器还是DDL触发器,如果出现了一个触发器执行启动另一个触发器的操作,都属于嵌套触发器。DML触发器和DDL触发器最多可以嵌套32层,SQL触发器中对托管代码的任何引用均计为32层嵌套限制中的一层,从托管代码内部调用的方法不根据此限制进行计数。可以通原创 2014-01-16 21:06:41 · 4398 阅读 · 0 评论 -
锋利的SQL-SQL Server的表旋转(行列转换)
所谓表旋转,就是将表的行转换为列,或是将表的列转换为行,这是从SQL Server 2005开始提供的新技术。因此,如果希望使用此功能,需要将数据库的兼容级别设置为90。表旋转在某些方面也是解决了表的数据存储和实际需要之间的矛盾。原创 2014-08-17 18:37:10 · 7999 阅读 · 0 评论 -
Excel使用ADO调用SQL Server存储过程
前期使用Excel做一个现场投票的小软件,问题出在查看投票按钮上,起初只是使用SELECT语句查询,一切正常;后期对于投票结果需要进行一些权重的计算,过程比较复杂,便想到把计算过程放在SQL Server端,使用存储过程实现。但是,在调用存储过程的过程中却遇到了问题,一直无法返回记录集。最后发现问题出现在记录集的CursorLocation属性设置上,下面便把此问题的过程和解决方案提供如下,以免发生类似问题。原创 2015-03-25 20:32:30 · 6505 阅读 · 0 评论 -
SQL Server 2016:内存列存储索引
作者 Jonathan Allen,译者 谢丽SQL Server 2016的一项新特性是可以在“内存优化表(Memory Optimized Table)”上添加“列存储索引(Columnstore Index)”。要理解这是什么意思,我们应该首先解释术语列存储索引和内存优化表。列存储索引是一种按照列而不是行组织数据的索引。每个数据块只存储一个列的数据,最多包含100万行。因此,如果数据为5列1转载 2015-08-25 13:56:44 · 3258 阅读 · 0 评论 -
锋利的SQL2014:基于窗口的偏移计算
SQL Server 2012引入了四个偏移函数:LAG和LEAD、FIRST_VALUE和LAST_VALUE,用于从当前行的某个偏移量、或是一个窗口框架的开头或结尾的行返回一个元素。LAG和LEAD支持窗口分区和窗口排序子句,FIRST_VALUE和LAST_VALUE在支持窗口分区和窗口排序子句的基础上,还支持窗口框架子句。原创 2015-02-14 04:21:31 · 2944 阅读 · 0 评论 -
锋利的SQL2014:使用NULL比较搜索条件
SQL使用NULL表示缺失值,NULL值与0、0长度的字符串或空白(字符值)的含义不同。NULL值计算使用三值逻辑,即谓词可以计算为TRUE、FALSE或UNKNOWN。原创 2014-12-30 20:52:55 · 2118 阅读 · 0 评论 -
新书:锋利的SQL(第2版)开始发售及代码下载
本书第1版是在四年前出版的,但至今仍在被众多的SQL爱好者追捧,甚至不辞辛劳地逐页扫描,上传至网络进行分享。本书第1版是基于SQL Server 2008编写的。时光荏苒,目前SQL Server 2014已经发布,窗口函数等新功能不断被丰富和发展,先前需要编写很复杂的代码才能完成的工作,现在寥寥几行就能把问题搞定。无论是从代码可读性还是执行效率方面看,SQL Server 2014都值得我们去深入学习。因此,我们在第1版的基础上,对书的内容重新进行了补充和完善。此外,这次我们还补充了一些像“三值逻辑”这样原创 2015-05-22 21:10:47 · 3852 阅读 · 6 评论 -
锋利的SQL2014:SQL的同时操作概念
需要注意的是,SQL有一个称作同时操作(all-at-onceoperations)的概念,即出现在同一逻辑处理阶段的所有表达式在同一时间点进行逻辑计算。原创 2014-12-30 20:54:57 · 1949 阅读 · 0 评论 -
锋利的SQL2014: 内存优化表
内存优化表是从SQLServer 2014开始引入的,它将数据的读取、写入操作都放置到内存中完成,这与传统的磁盘表是最大的不同。此功可以减少锁的等待问题,从而改善写入等待延迟,可以用于某些特殊负荷的操作。原创 2014-12-30 20:38:01 · 4720 阅读 · 0 评论 -
锋利的SQL2014:层次结构操作之Hierarchyid
组织管理架构、目录路径等层次结构数据,在关系数据库中解决起来稍微有点繁琐。在SQL Server 2005中提供了公用表表达式(CTE),可以使用递归CTE的方式查询层次结构数据。本节将介绍一种使用hierarchyid数据类型解决此问题的方法。Hierarchyid数据类型是从SQL Server 2008开始提供的,专门用于解决层次结构问题。原创 2015-01-10 17:56:24 · 3138 阅读 · 0 评论 -
锋利的SQL2014:基于窗口的排名计算
从SQL Server2005开始,提供了4个排名函数,分别是:ROW_NUMBER、RANK、DENSE_RANK和NTILE。ROW_NUMBER用于按行进行编号,RANK和DENSE_RANK用于按指定顺序排名,NTILE用于对数据进行分组。原创 2015-02-14 03:57:06 · 1948 阅读 · 0 评论 -
锋利的SQL2014:基于窗口的聚合计算
实际上,窗口聚合与分组聚合在功能上是相同的,唯一的差别是,分组聚合是通过GROUP BY进行分组计算,而窗口聚合是通过OVER子句定义的窗口进行计算。这个所谓的窗口,实际上也是一组数据。SQL Server提供的聚合函数包括:AVG、CHECKSUM_AGG、COUNT、COUNT_BIG、GROUPING、GROUPING_ID、MAX、MIN、SUM、STDEV、STDEVP、VAR、VARP。除了GROUPING和GROUPING_ID,都可以跟在OVER子句后面用于窗口的聚合计算。原创 2015-02-12 05:32:17 · 2708 阅读 · 0 评论 -
锋利的SQL2014:基于窗口的分布计算
从SQL Server2012开始,提供了四个排名分布函数,包括PERCENT_RANK、CUME_DIST、PERCENTILE_CONT和PERCENTILE_DISC。其中PERCENT_RANK用于计算某行的相对排名,CUME_DIST用于计算行的累积分布(即相对位置),PERCENTILE_CONT和PERCENTILE_DISC用于根据指定的比例返回组中相应的数值,如中位值等。换句话说,PERCENT_RANK和CUME_DIST是根据数值计算比例,PERCENTILE_CONT和PERCENT原创 2015-02-14 03:58:56 · 2157 阅读 · 0 评论 -
锋利的SQL2014:处理死锁
在两个或多个任务中,如果每个任务锁定了其他任务试图锁定的资源,此时会造成这些任务永久阻塞,从而出现死锁。除非某个外部进程断开死锁,否则死锁中的两个事务都将无限期等待下去。数据库引擎死锁监视器定期检查陷入死锁的任务。如果检测死锁,将选择其中一个任务作为牺牲品,然后终止其事务并提示错误。这样,其他任务就可以完成其事务,从而解除死锁。对于事务以错误终止的应用程序,它还可以重试该事务,但通常要等到与它一起陷入死锁的其他事务完成后执行。原创 2015-03-22 14:06:31 · 3067 阅读 · 0 评论 -
锋利的SQL2014:联接算法
在Microsoft SQLServer Management Studio中执行查询时,如果选定工具栏中的按钮,可以看到为查询生成的执行计划。执行计划以图形方式显示了SQL Server查询优化器选择的数据检索方法,如表扫描、排序、哈希匹配等。对于联接查询,SQL Server会根据联接表之间的数据、索引等情况,选择使用嵌套循环联接、合并联接或哈希联接。原创 2015-01-03 17:58:32 · 1886 阅读 · 0 评论 -
锋利的SQL2014:SQL Server 2014示例数据库的安装步骤
1.登录http://msftdbprodsamples.codeplex.com/releases/view/125550网站,单击Adventure Works 2014 FullDatabase Backup.zip下载数据库文件。2.下载完成后解压缩,释放后的文件名为AdventureWorks2014.bak。3.打开Microsoft SQL Server Management Stu原创 2015-01-04 20:47:05 · 9650 阅读 · 3 评论 -
3.SQL Server DML触发器--检测对指定列的UPDATE或INSERT操作
本文摘自《锋利的SQL》:http://item.jd.com/10380652.html14.1.3 检测对指定列的UPDATE或INSERT操作对于INSERT或UPDATE触发器,可以使用UPDATE( )或COLUMNS_UPDATED( )函数来检测对列的修改,从而据以执行相应的操作。其中,UPDATE( )函数可以测试对某个列的UPDATE或INSERT尝试。COLUMNS_U原创 2014-01-04 17:44:28 · 4289 阅读 · 0 评论 -
联接算法
在Microsoft SQL Server Management Studio中执行查询时,如果选定工具栏中的按钮,可以看到为查询生成的执行计划。执行计划以图形方式显示了SQL Server查询优化器选择的数据检索方法,如表扫描、排序、哈希匹配等。对于联接查询,SQL Server会根据联接表之间的数据、索引等情况,选择使用嵌套循环联接、合并联接或哈希联接。原创 2014-01-22 21:04:14 · 2600 阅读 · 0 评论 -
UPDATE 锁
UPDATE 锁并不是一种单独的锁类型,倒是有点像是SHARED和EXCLUSIVE锁的混合。并且可能与你认为的不同,UPDATE 锁不是由UPDATE操作获取的。 当SQL Server执行一个数据修改操作,但是需要首先执行一个检索来查找需要修改的资源时,事务会获取这种类型的锁。 当SQL Server搜索时,它不需要获取EXCLUSIVE锁,只有在找到要更改数据时,才需要EXCLUS翻译 2009-11-29 23:01:00 · 4402 阅读 · 2 评论 -
ODBC Rocks!
在发布了19年之后,ODBC已经成为软件工业的基石之一。本文将为您介绍为什么ODBC会扮演如此重要的角色,微软SQL Server和ODBC的关系,还会讨论未来ODBC的发展方向。作为一个被广泛使用、跨平台、跨数据库的数据访问技术,ODBC已经取得了巨大的成功。ODBC可能是ISO/IEC 9075-3:2003 SQL调用级接口(Call Level Interface,全部SQL标准的第三转载 2009-10-24 19:39:00 · 2347 阅读 · 1 评论 -
SQL Server 2008的逻辑查询处理步骤
我想大家对《SQL Server 2005技术内幕T-SQL查询》一书可能都比较熟悉,博文组织翻译的,作者是SQL Server方面的MVP Kalen Delaney(http://sqlblog.com/blogs/kalen_delaney/default.aspx)。最近我则刚刚收到了微软最有价值专家项目组寄来的该书的SQL Server 2008英文版本-《Inside Microsof原创 2009-06-24 21:15:00 · 2522 阅读 · 3 评论 -
简要介绍SQL Server 2008新的事件处理系统—SQL Server Extended Events
SQL Server Extended Events(下面简称XEvent)是SQL Server 2008里新加的事件处理系统,用来取代SQL Server原先的SQL Trace的跟踪机制。事件处理系统对一个复杂服务器系统的排错,调试是极为关键的。和SQL Server原来的事件处理系统相比较,XEvent具有下列的优势:消耗更少的系统资源,更适用于在产品服务器上的排错和调试。并且每收转载 2009-05-28 16:20:00 · 1630 阅读 · 2 评论 -
控制锁的粒度
作者:Kalen Delaney(SQL Server MVP)日期:2009年5月3日翻译:张洪举原文:http://sqlblog.com/blogs/kalen_delaney/archive/2009/05/03/controlling-lock-granularity.aspx 在SQL Server 7.0 的所有版本中,引擎可以锁定行、 页或整个表。 此外,即翻译 2009-05-10 10:32:00 · 4384 阅读 · 6 评论 -
Microsoft SQL Server 2008 联机丛书(2009年1月)
今天使用 Windows Update 进行软件升级,发现搜索到的可用更新是8月份的 SQL Server 2008 联机丛书。而实际上最新的可用更新是 Microsoft SQL Server 2008 联机丛书(2009年1月),发布日期为2009/2/11。您可以从下面的地址下载:http://www.microsoft.com/downloads/details.aspx?disp原创 2009-04-30 06:33:00 · 2523 阅读 · 1 评论 -
图书推荐:SQL Server 2008 Administrator's Pocket Consultant
Microsoft SQL Server 2008 Administrators Pocket Consultant涵盖了SQL Server 2008系统管理员所需要的所有核心管理任务,并且非常简洁、实用。相比其他图书而言,你不必为查找一个小内容而费尽千辛万苦地翻越数百页的不相干信息,真正体现了该书的袖珍性。该书是被作为SQL Server管理的问题资源设计的,因此,像日常管理、常用任务、原创 2009-03-22 09:15:00 · 1742 阅读 · 0 评论 -
图书推荐:SQL Server 2008 Step by Step
SQL Server 2008发布已经有一段时间了,最近抽时间阅读了由Mike Hotek编写的《SQL Server 2008 Step by Step》,这是一本以教你学习SQL Server 2008程序设计的基础性手册。正像这本书的名字Step by Step一样,这本书的实战性很强,并且还附有一张代码光盘,以方便上机操作。该书首先讲述的是如何安装和配置SQL Server 2008,原创 2009-03-13 07:24:00 · 2980 阅读 · 2 评论 -
SQL Server 2008的窗口计算
作者:张洪举,MVP应用于:SQL Server 2005,SQL Server 2008日期:2009/3/5在SQL Server中,窗口被定义为用户指定的一组行。例如,在下面表1所示的Students表中,包含有3个班级的学生成绩,则其中的每一个班级都可以被看作是一个数据窗口,或是分区。 ClassIDStudentNameAc原创 2009-03-05 18:22:00 · 3302 阅读 · 5 评论