| Foreword |
|
xiii | |
| Acknowledgments |
|
xv | |
| Introduction |
|
xviii | |
|
Chapter 1 SQL Server on Linux: Getting Started |
|
|
1 | (40) |
|
Creating a Virtual Machine |
|
|
2 | (9) |
|
Step 1 Basics: Configure Basic Settings |
|
|
5 | (1) |
|
Step 2 Size: Choose Virtual Machine Size |
|
|
6 | (1) |
|
Step 3 Settings: Configure Optional Features |
|
|
7 | (2) |
|
Step 4 Summary and Purchase |
|
|
9 | (2) |
|
|
|
11 | (5) |
|
|
|
16 | (3) |
|
|
|
18 | (1) |
|
|
|
19 | (7) |
|
Installing Additional Components |
|
|
26 | (4) |
|
|
|
30 | (3) |
|
Installing on SUSE Linux Enterprise Server |
|
|
33 | (2) |
|
Running SQL Server on Docker |
|
|
35 | (4) |
|
|
|
39 | (1) |
|
|
|
39 | (2) |
|
Chapter 2 How SQL Server on Linux Works |
|
|
41 | (16) |
|
|
|
43 | (2) |
|
|
|
45 | (2) |
|
|
|
47 | (1) |
|
|
|
48 | (2) |
|
|
|
50 | (1) |
|
|
|
51 | (2) |
|
|
|
51 | (2) |
|
|
|
53 | (3) |
|
|
|
56 | (1) |
|
Chapter 3 Linux for the SQL Server Professional |
|
|
57 | (36) |
|
|
|
58 | (3) |
|
|
|
61 | (9) |
|
|
|
64 | (4) |
|
|
|
68 | (2) |
|
|
|
70 | (7) |
|
|
|
75 | (2) |
|
|
|
77 | (2) |
|
|
|
79 | (3) |
|
|
|
82 | (3) |
|
|
|
85 | (3) |
|
|
|
88 | (2) |
|
|
|
90 | (2) |
|
|
|
92 | (1) |
|
Chapter 4 SQL Server Configuration |
|
|
93 | (28) |
|
|
|
94 | (7) |
|
|
|
100 | (1) |
|
|
|
101 | (7) |
|
|
|
102 | (4) |
|
|
|
106 | (1) |
|
|
|
107 | (1) |
|
|
|
108 | (1) |
|
|
|
108 | (11) |
|
Linux Out-of-Memory Killer |
|
|
109 | (1) |
|
|
|
110 | (4) |
|
|
|
114 | (1) |
|
Max Degree of Parallelism |
|
|
114 | (1) |
|
Cost Threshold for Parallelism |
|
|
115 | (1) |
|
|
|
116 | (3) |
|
|
|
119 | (1) |
|
|
|
119 | (2) |
|
Chapter 5 SQL Server Query Tuning and Optimization |
|
|
121 | (54) |
|
|
|
122 | (1) |
|
Query Processor Architecture |
|
|
123 | (6) |
|
|
|
125 | (1) |
|
|
|
126 | (1) |
|
Generating Candidate Execution Plans |
|
|
126 | (1) |
|
Assessing the Cost of Each Plan |
|
|
127 | (1) |
|
Query Execution and Plan Caching |
|
|
128 | (1) |
|
|
|
129 | (7) |
|
|
|
130 | (4) |
|
|
|
134 | (2) |
|
|
|
136 | (1) |
|
|
|
136 | (12) |
|
sys.dm_exec_requests and sys.dm_exec_sessions |
|
|
137 | (2) |
|
|
|
139 | (2) |
|
statement_start_offset and statement_end_offset |
|
|
141 | (1) |
|
Sql-handle and plan-handle |
|
|
142 | (1) |
|
|
|
143 | (2) |
|
Finding Expensive Queries |
|
|
145 | (1) |
|
|
|
146 | (2) |
|
|
|
148 | (6) |
|
|
|
149 | (3) |
|
Clustered Indexes vs. Heaps |
|
|
152 | (1) |
|
|
|
153 | (1) |
|
|
|
154 | (8) |
|
Creating and Updating Statistics |
|
|
155 | (2) |
|
The New Cardinality Estimator |
|
|
157 | (2) |
|
Cardinality Estimation Errors |
|
|
159 | (2) |
|
|
|
161 | (1) |
|
|
|
162 | (6) |
|
Optimizing for a Typical Parameter |
|
|
165 | (1) |
|
Optimizing on Every Execution |
|
|
165 | (1) |
|
Using Local Variables and the Optimize For Unknown Hint |
|
|
166 | (2) |
|
Disabling Parameter Sniffing |
|
|
168 | (1) |
|
Query Processor Limitations |
|
|
168 | (6) |
|
Query Optimization Research |
|
|
169 | (1) |
|
Break Down Complex Queries |
|
|
170 | (1) |
|
|
|
171 | (3) |
|
|
|
174 | (1) |
|
Chapter 6 New Query Processing Features |
|
|
175 | (28) |
|
Adaptive Query Processing |
|
|
177 | (12) |
|
Batch Mode Adaptive Joins |
|
|
178 | (4) |
|
Batch Mode Adaptive Memory Grant Feedback |
|
|
182 | (3) |
|
Interleaved Execution for Multistatement Table-Value Functions |
|
|
185 | (4) |
|
|
|
189 | (5) |
|
SQL Server 2016 Service Pack 1 |
|
|
194 | (1) |
|
|
|
195 | (4) |
|
CXPACKET and CXCONSUMER Waits |
|
|
199 | (1) |
|
Wait Statistics on Execution Plans |
|
|
200 | (1) |
|
|
|
200 | (1) |
|
|
|
201 | (2) |
|
Chapter 7 High Availability and Disaster Recovery |
|
|
203 | (46) |
|
SQL Server High-Availability and Disaster-Recovery Features |
|
|
204 | (2) |
|
Always On Availability Groups |
|
|
206 | (2) |
|
Availability Groups on Windows vs. Linux |
|
|
208 | (1) |
|
Implementing Availability Groups |
|
|
209 | (37) |
|
|
|
211 | (6) |
|
SQL Server Management Studio Configuration |
|
|
217 | (11) |
|
Configuring Pacemaker on Red Hat Enterprise Linux |
|
|
228 | (12) |
|
Configuring Pacemaker on Ubuntu |
|
|
240 | (4) |
|
Operating an Availability Group Resource |
|
|
244 | (2) |
|
|
|
246 | (3) |
|
|
|
249 | (22) |
|
Introduction to Security on SQL Server |
|
|
250 | (2) |
|
Transparent Data Encryption |
|
|
252 | (5) |
|
Attach or Restore a TDE Database to Another SQL Server Instance |
|
|
254 | (3) |
|
|
|
257 | (9) |
|
|
|
266 | (2) |
|
|
|
268 | (2) |
|
|
|
270 | (1) |
| Index |
|
271 | |