关闭

[置顶] 新书:锋利的SQL(第2版)开始发售及代码下载

本书第1版是在四年前出版的,但至今仍在被众多的SQL爱好者追捧,甚至不辞辛劳地逐页扫描,上传至网络进行分享。本书第1版是基于SQL Server 2008编写的。时光荏苒,目前SQL Server 2014已经发布,窗口函数等新功能不断被丰富和发展,先前需要编写很复杂的代码才能完成的工作,现在寥寥几行就能把问题搞定。无论是从代码可读性还是执行效率方面看,SQL Server 2014都值得我们去深入学习。因此,我们在第1版的基础上,对书的内容重新进行了补充和完善。此外,这次我们还补充了一些像“三值逻辑”这样...
阅读(2066) 评论(3)

SQL Server 2016:实时查询统计

一个数据库查询超时了,而你并不知道原因。估计查询计划可以揭示问题所在,因此,你彻底地消除了超时。但一个小时后,查询还在运行,而你无法获得真正的执行计划。要是有一种方法可以找出服务器内部实际正在发生的事情就好了。借助SQL Server 2016中的“实时查询统计(Live Query Statistics)”,你现在可以回答那个问题了。这项新特性为DBA提供了一个执行计划的实时版本,对当前正在执行...
阅读(935) 评论(0)

SQL Server 2016:内存列存储索引

作者 Jonathan Allen,译者 谢丽SQL Server 2016的一项新特性是可以在“内存优化表(Memory Optimized Table)”上添加“列存储索引(Columnstore Index)”。要理解这是什么意思,我们应该首先解释术语列存储索引和内存优化表。列存储索引是一种按照列而不是行组织数据的索引。每个数据块只存储一个列的数据,最多包含100万行。因此,如果数据为5列1...
阅读(1526) 评论(0)

Excel使用ADO调用SQL Server存储过程

前期使用Excel做一个现场投票的小软件,问题出在查看投票按钮上,起初只是使用SELECT语句查询,一切正常;后期对于投票结果需要进行一些权重的计算,过程比较复杂,便想到把计算过程放在SQL Server端,使用存储过程实现。但是,在调用存储过程的过程中却遇到了问题,一直无法返回记录集。最后发现问题出现在记录集的CursorLocation属性设置上,下面便把此问题的过程和解决方案提供如下,以免发生类似问题。...
阅读(3168) 评论(0)

锋利的SQL2014:处理死锁

在两个或多个任务中,如果每个任务锁定了其他任务试图锁定的资源,此时会造成这些任务永久阻塞,从而出现死锁。除非某个外部进程断开死锁,否则死锁中的两个事务都将无限期等待下去。数据库引擎死锁监视器定期检查陷入死锁的任务。如果检测死锁,将选择其中一个任务作为牺牲品,然后终止其事务并提示错误。这样,其他任务就可以完成其事务,从而解除死锁。对于事务以错误终止的应用程序,它还可以重试该事务,但通常要等到与它一起陷入死锁的其他事务完成后执行。...
阅读(2112) 评论(0)

锋利的SQL2014:基于窗口的偏移计算

SQL Server 2012引入了四个偏移函数:LAG和LEAD、FIRST_VALUE和LAST_VALUE,用于从当前行的某个偏移量、或是一个窗口框架的开头或结尾的行返回一个元素。 LAG和LEAD支持窗口分区和窗口排序子句,FIRST_VALUE和LAST_VALUE在支持窗口分区和窗口排序子句的基础上,还支持窗口框架子句。...
阅读(1599) 评论(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...
阅读(1464) 评论(0)

锋利的SQL2014:基于窗口的排名计算

从SQL Server2005开始,提供了4个排名函数,分别是:ROW_NUMBER、RANK、DENSE_RANK和NTILE。ROW_NUMBER用于按行进行编号,RANK和DENSE_RANK用于按指定顺序排名,NTILE用于对数据进行分组。...
阅读(1486) 评论(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子句后面用于窗口的聚合计算。...
阅读(1960) 评论(0)

锋利的SQL2014:层次结构操作之Hierarchyid

组织管理架构、目录路径等层次结构数据,在关系数据库中解决起来稍微有点繁琐。在SQL Server 2005中提供了公用表表达式(CTE),可以使用递归CTE的方式查询层次结构数据。本节将介绍一种使用hierarchyid数据类型解决此问题的方法。Hierarchyid数据类型是从SQL Server 2008开始提供的,专门用于解决层次结构问题。...
阅读(2072) 评论(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...
阅读(6981) 评论(2)

锋利的SQL2014:联接算法

在Microsoft SQLServer Management Studio中执行查询时,如果选定工具栏中的按钮,可以看到为查询生成的执行计划。执行计划以图形方式显示了SQL Server查询优化器选择的数据检索方法,如表扫描、排序、哈希匹配等。对于联接查询,SQL Server会根据联接表之间的数据、索引等情况,选择使用嵌套循环联接、合并联接或哈希联接。...
阅读(1434) 评论(0)

锋利的SQL2014:SQL的同时操作概念

需要注意的是,SQL有一个称作同时操作(all-at-onceoperations)的概念,即出现在同一逻辑处理阶段的所有表达式在同一时间点进行逻辑计算。...
阅读(1349) 评论(0)

锋利的SQL2014:使用NULL比较搜索条件

SQL使用NULL表示缺失值,NULL值与0、0长度的字符串或空白(字符值)的含义不同。NULL值计算使用三值逻辑,即谓词可以计算为TRUE、FALSE或UNKNOWN。...
阅读(1558) 评论(0)

锋利的SQL2014: 内存优化表

内存优化表是从SQLServer 2014开始引入的,它将数据的读取、写入操作都放置到内存中完成,这与传统的磁盘表是最大的不同。此功可以减少锁的等待问题,从而改善写入等待延迟,可以用于某些特殊负荷的操作。...
阅读(3022) 评论(0)
136条 共10页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:842095次
    • 积分:7144
    • 等级:
    • 排名:第3242名
    • 原创:91篇
    • 转载:28篇
    • 译文:17篇
    • 评论:347条
    最新评论