T-SQL 性能調優秘笈 — 基於 SQL Server 2012 窗口函數 Microsoft SQL Server 2012 High-Performance T-SQL Using Window Functions

[美]Itzik Ben-Gan 著

  • T-SQL 性能調優秘笈 — 基於 SQL Server 2012 窗口函數-preview-1
T-SQL 性能調優秘笈 — 基於 SQL Server 2012 窗口函數-preview-1

買這商品的人也買了...

相關主題

商品描述

  在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