新書推薦:
《
国术健身 易筋经
》
售價:HK$
33.4
《
古罗马800年
》
售價:HK$
188.2
《
写出心灵深处的故事:踏上疗愈之旅(修订版)(创意写作书系)
》
售價:HK$
66.1
《
控制权视角下的家族企业管理与传承
》
售價:HK$
87.4
《
冯友兰和青年谈心系列
》
售價:HK$
167.3
《
利他主义的生意:偏爱“非理性”的市场(英国《金融时报》推荐读物!)
》
售價:HK$
77.3
《
认知行为疗法:心理咨询的顶层设计
》
售價:HK$
99.7
《
FANUC工业机器人装调与维修
》
售價:HK$
99.7
編輯推薦:
在T-SQL中使用强大的窗口函数,可以提高查询性能,加快查询速度。
在T-SQL中使用窗口函数,可以针对许多问题进行查询的优化,获得简单优雅的解决方案。通过本书,您将学到如何使用灵活、清晰、高效的方式对一个集合中的多条记录进行计算。本书重在实用性,它展示了如何使用一系列T-SQL查询方案来解决常见的业务问题。无论您是数据库管理员还是数据库开发人员,都将获益匪浅。
您将在本书中学到:
?超越常规的查询方式,加速对集合中多条记录的计算;
?深入剖析与排序相关的一系列函数,如排名、分布、偏移函数;
?在标准SQL中应用假设集合函数和逆分布函数;
?使用策略来提高序列生成、分页、过滤和透视效率;
?使用分区、排序及索引的方式提升查询速度;
?应用诸如Window Spool等新的优化迭代程序;
?处理常见业务问题,如总计、间隔、中间值和差值。
內容簡介:
在Transact-SQL中使用窗口函数,可以针对许多问题进行查询的优化,以获得简单完美的解决方案。《T-SQL性能调优秘笈——基于SQL Server 2012窗口函数》基于SQL Server 2012,讨论了SQL窗口、窗口函数、排序集合函数、窗口函数的优化以及利用窗口函数的T-SQL解决方案等内容。
通过阅读本书,你将学到如何使用灵活、清晰、高效的方法对一个集合中的多条记录进行计算。无论你是数据库管理员,还是数据库开发人员、数据分析人员等,《T-SQL性能调优秘笈——基于SQL Server 2012窗口函数》都可以作为你的实践指导,帮助你掌握如何使用一系列T-SQL查询方案来解决常见的业务问题。
關於作者:
Itzik Ben-Gan是Solid Quality Learning的导师和创始人。从1999年开始,他一直是Microsoft SQL Server MVP最有价值专家,并在全世界已经开展过无数次T-SQL查询、T-SQL优化和编程方面的培训。Itzik已经发表了许多文章和白皮书。Itzik擅长T-SQL查询、查询优化、编程和内部原理,此外他还精通其他的数据库领域。
目錄 :
目 录
第1章 SQL窗口函数 1
1.1 窗口函数的背景 2
1.1.1 窗口函数的描述 2
1.1.2 基于集合与基于迭代游标的编程 6
1.1.3 窗口函数替代方案的不足之处 11
1.2 使用窗口函数的解决方案简介 16
1.3 窗口函数中的元素 20
1.3.1 分区 21
1.3.2 排序 22
1.3.3 框架 23
1.4 支持窗口函数的查询元素 24
1.4.1 查询逻辑处理 24
1.4.2 支持窗口函数的子句 26
1.4.3 避开限制 29
1.5 潜在的额外筛选器 31
1.6 窗口定义的重复使用 32
1.7 小结 33
第2章 窗口函数详述 34
2.1 窗口聚合函数 34
2.1.1 窗口聚合函数描述 34
2.1.2 支持的窗口元素 35
2.1.3 对进一步筛选的一些想法 51
2.1.4 DISTINCT聚合 53
2.1.5 嵌套聚合 55
2.2 排名函数 60
2.2.1 支持的窗口元素 60
2.2.2 ROW_NUMBER 60
2.2.3 NTILE 65
2.2.4 RANK和DENSE_RANK 69
2.3 分布函数 71
2.3.1 支持的窗口元素 71
2.3.2 排名分布函数 71
2.3.3 逆分布函数 74
2.4 偏移函数 77
2.4.1 支持的窗口元素 77
2.4.2 LAG和LEAD 78
2.4.3 FIRST_VALUE、LAST_VALUE和NTH_VALUE 80
2.5 小结 83
第3章 排序集合函数 84
3.1 假设集合函数 85
3.1.1 RANK 85
3.1.2 DENSE_RANK 87
3.1.3 PERCENT_RANK 88
3.1.4 CUME_DIST 89
3.1.5 通用的解决方法 90
3.2 逆分布函数 93
3.3 偏移函数 97
3.4 字符串连接 102
3.5 小结 103
第4章 窗口函数的优化 104
4.1 样本数据 104
4.2 索引指南 106
4.2.1 POC索引 107
4.2.2 反向扫描 108
4.2.3 列存储索引 111
4.3 排名函数 112
4.3.1 ROW_NUMBER 112
4.3.2 NTILE 114
4.3.3 RANK和DENSE_RANK 115
4.4 利用APPLY提高并行度 116
4.5 聚合和偏移函数 119
4.5.1 没有排序和框架 119
4.5.2 有排序和框架 122
4.6 分布函数 133
4.6.1 排名分布函数 133
4.6.2 逆分布函数 134
4.7 小结 137
第5章 利用窗口函数的T-SQL解决方案 138
5.1 虚拟数字辅助表 138
5.2 日期和时间值序列 142
5.3 序列键 143
5.3.1 更新列的值为唯一值 143
5.3.2 数字序列的应用 145
5.4 分页 148
5.5 删除重复 151
5.6 数据透视 154
5.7 每组前N行 157
5.8 模式 160
5.9 统计总和 164
5.9.1 利用窗口函数的基于集合的解决方案 167
5.9.2 利用子查询或联接且基于集合的解决方案 168
5.9.3 基于游标的解决方案 169
5.9.4 基于CLR的解决方案 171
5.9.5 嵌套迭代 173
5.9.6 带变量的多行UPDATE 174
5.9.7 性能基准 176
5.10 最大并发间隔 178
5.10.1 传统的基于集合的解决方案 180
5.10.2 基于游标的解决方案 182
5.10.3 基于窗口函数的解决方案 185
5.10.4 性能基准 187
5.11 包装间隔 188
5.11.1 传统的基于集合的解决方案 191
5.11.2 基于窗口函数的解决方案 192
5.12 数据差距和数据岛 201
5.12.1 数据差距 202
5.12.2 数据岛 204
5.12.3 中位数 210
5.13 条件聚合 213
5.14 层次结构排序 215
5.15 小结 219