Foreword |
|
xxii | |
Preface |
|
xxiii | |
Acknowledgments |
|
xxv | |
|
|
1 | (8) |
|
|
1 | (1) |
|
|
2 | (1) |
|
Normalization vs. Performance vs. Flexibility |
|
|
2 | (1) |
|
Retrieval Speed vs. Update Speed |
|
|
2 | (1) |
|
Ease of Use vs. High Volume Transaction Processing |
|
|
2 | (1) |
|
|
2 | (1) |
|
|
3 | (1) |
|
|
3 | (1) |
|
|
3 | (1) |
|
|
3 | (1) |
|
|
4 | (1) |
|
Defining and Tracking Down Bottlenecks |
|
|
4 | (2) |
|
Performance Variables that Might Cause Bottlenecks |
|
|
4 | (2) |
|
|
6 | (3) |
|
Physical Database Design Issues |
|
|
9 | (16) |
|
Physical Storage Structures |
|
|
9 | (1) |
|
|
10 | (1) |
|
|
10 | (2) |
|
|
12 | (1) |
|
|
13 | (2) |
|
When a Table Hasn't Been Loaded Yet |
|
|
13 | (1) |
|
Estimating Table Size for an Existing Table |
|
|
13 | (1) |
|
|
14 | (1) |
|
|
14 | (1) |
|
|
15 | (1) |
|
Indexes and B-Tree Structure |
|
|
15 | (8) |
|
|
16 | (1) |
|
|
17 | (1) |
|
|
17 | (1) |
|
Statistics Maintained on the First 255 Bytes of Data |
|
|
17 | (1) |
|
|
18 | (1) |
|
|
18 | (1) |
|
|
19 | (2) |
|
|
21 | (1) |
|
|
21 | (1) |
|
|
22 | (1) |
|
Implications of Modification |
|
|
22 | (1) |
|
|
22 | (1) |
|
|
23 | (1) |
|
|
23 | (2) |
|
|
25 | (46) |
|
|
25 | (1) |
|
Anatomy of a Hard Disk Drive |
|
|
26 | (3) |
|
|
26 | (1) |
|
|
27 | (1) |
|
|
27 | (1) |
|
|
27 | (1) |
|
Find Out What Disks You are Using |
|
|
28 | (1) |
|
|
28 | (1) |
|
|
29 | (3) |
|
|
30 | (1) |
|
|
30 | (1) |
|
|
31 | (1) |
|
|
31 | (1) |
|
|
31 | (1) |
|
|
31 | (1) |
|
|
32 | (1) |
|
|
32 | (6) |
|
|
33 | (1) |
|
|
34 | (1) |
|
|
35 | (1) |
|
SCSI IDs and Logical Unit Numbers |
|
|
35 | (1) |
|
|
35 | (1) |
|
The Fibre Channel Protocol |
|
|
36 | (1) |
|
Introduction to Fibre Channel |
|
|
36 | (1) |
|
|
37 | (1) |
|
Types of Fibre Channel Networks |
|
|
37 | (1) |
|
|
38 | (1) |
|
|
38 | (2) |
|
Advantages of a Logical Volume Manager |
|
|
39 | (1) |
|
Disadvantages of a Logical Volume Manager |
|
|
39 | (1) |
|
|
40 | (2) |
|
|
40 | (1) |
|
Logical Volume Manager Support for RAID Levels |
|
|
41 | (1) |
|
|
41 | (1) |
|
|
41 | (1) |
|
|
41 | (1) |
|
|
41 | (1) |
|
Moving Functionality from the LVM into the Disk Array |
|
|
42 | (1) |
|
I/O from Beginning to End |
|
|
42 | (4) |
|
|
43 | (1) |
|
|
43 | (1) |
|
|
44 | (1) |
|
|
44 | (2) |
|
|
46 | (1) |
|
Benchmarking Your Disk Storage |
|
|
46 | (4) |
|
The TPC Database Benchmark |
|
|
46 | (1) |
|
|
47 | (1) |
|
What Are You Going to Test? |
|
|
47 | (1) |
|
|
47 | (1) |
|
|
48 | (1) |
|
First Benchmark - Single Disk |
|
|
48 | (1) |
|
|
48 | (1) |
|
|
49 | (1) |
|
Second Benchmark - Multiple Disks |
|
|
49 | (1) |
|
|
49 | (1) |
|
|
50 | (1) |
|
|
50 | (1) |
|
|
51 | (1) |
|
|
51 | (3) |
|
|
52 | (1) |
|
How ASE Kernel Keeps Track of Time |
|
|
53 | (1) |
|
Timeslice and CPU Grace Time |
|
|
53 | (1) |
|
|
54 | (4) |
|
|
55 | (1) |
|
|
56 | (1) |
|
APF and Fetch and Discard Cache Strategy |
|
|
56 | (1) |
|
Monitoring APF Using sp_sysmon |
|
|
56 | (2) |
|
|
58 | (1) |
|
|
58 | (3) |
|
|
59 | (1) |
|
|
59 | (1) |
|
What to Look Out for When Using Larger Page Sizes |
|
|
60 | (1) |
|
Tasks That Benefit from Large Page Sizes |
|
|
60 | (1) |
|
Large Page Sizes and Locking Issues |
|
|
60 | (1) |
|
|
61 | (2) |
|
|
61 | (1) |
|
DBA Maintenance Benchmark |
|
|
62 | (1) |
|
Understanding I/O Statistics in sp_sysmon |
|
|
63 | (8) |
|
|
63 | (1) |
|
|
64 | (1) |
|
|
64 | (2) |
|
|
66 | (1) |
|
|
66 | (2) |
|
|
68 | (1) |
|
|
68 | (1) |
|
|
69 | (1) |
|
|
69 | (1) |
|
Device Activity Detail Tips |
|
|
70 | (1) |
|
|
71 | (18) |
|
|
71 | (1) |
|
|
72 | (1) |
|
|
72 | (1) |
|
Determining Index Usefulness |
|
|
73 | (1) |
|
|
73 | (1) |
|
|
74 | (6) |
|
Updating Statistics 19 and Higher |
|
|
74 | (2) |
|
|
76 | (1) |
|
Create/Update Column Statistics |
|
|
76 | (1) |
|
When to Use Additional Statistics |
|
|
77 | (1) |
|
Adding Statistics for a Column |
|
|
77 | (1) |
|
Adding Statistics for Minor Columns |
|
|
78 | (1) |
|
Choosing Step Numbers for Histograms |
|
|
78 | (1) |
|
Using the delete statistics Command |
|
|
79 | (1) |
|
When Row Counts May be Inaccurate |
|
|
79 | (1) |
|
|
80 | (1) |
|
Composite vs. Many Indexes |
|
|
80 | (1) |
|
|
81 | (1) |
|
|
82 | (1) |
|
A Comparison between Clustered and Non-Clustered |
|
|
82 | (3) |
|
|
83 | (1) |
|
Non-Clustered Index I/O Cost |
|
|
83 | (1) |
|
Table Scan I/O Cost Comparison |
|
|
84 | (1) |
|
|
85 | (1) |
|
Indexing for Multiple Queries |
|
|
85 | (1) |
|
|
86 | (1) |
|
Special OR Strategy [ Multiple Matching Index Scans) |
|
|
87 | (1) |
|
|
87 | (2) |
|
|
89 | (30) |
|
|
89 | (1) |
|
|
89 | (1) |
|
|
90 | (13) |
|
Table/Index Level Statistics |
|
|
90 | (2) |
|
|
92 | (2) |
|
|
94 | (1) |
|
How Can I Read the Cluster Ratios without Going to optdiag? |
|
|
94 | (1) |
|
|
95 | (1) |
|
|
96 | (2) |
|
|
98 | (3) |
|
Multi-Column Density Values |
|
|
101 | (2) |
|
|
103 | (1) |
|
Understanding update statistics |
|
|
103 | (2) |
|
Adding, Modifying, and Deleting Column Level Statistics |
|
|
105 | (7) |
|
Why Add, Modify, or Delete Statistics? |
|
|
105 | (1) |
|
Adding Column Level Statistics |
|
|
105 | (2) |
|
Changing the Number of Requested Steps |
|
|
107 | (2) |
|
Modifying Column Level Statistics |
|
|
109 | (1) |
|
Modifying the Total Density Value |
|
|
109 | (1) |
|
Deleting Column Level Statistics |
|
|
110 | (1) |
|
A Word on Statistics and Upgrading |
|
|
110 | (1) |
|
Maintaining Added and/or Modified Column Level Statistics |
|
|
111 | (1) |
|
|
112 | (3) |
|
|
113 | (1) |
|
Simulating Values That Are Not Stored in the System Tables |
|
|
113 | (1) |
|
|
113 | (1) |
|
Max Parallel Degree and Max Scan Degree |
|
|
114 | (1) |
|
|
114 | (1) |
|
Simulating Column Level Statistics |
|
|
114 | (1) |
|
optdiag simulate in ``What-If'' Analysis |
|
|
115 | (4) |
|
|
115 | (1) |
|
Empty vs. Populated Datasets |
|
|
115 | (1) |
|
Query Outputs from an Existing Dataset |
|
|
115 | (1) |
|
Testing Queries Against Simulated Statistics |
|
|
115 | (1) |
|
Verifying That Simulated Statistics Were Used |
|
|
116 | (1) |
|
Removing Simulated Statistics |
|
|
116 | (1) |
|
Returning to the Original Column Level Statistics |
|
|
117 | (2) |
|
|
119 | (12) |
|
|
119 | (2) |
|
|
120 | (1) |
|
What's the Optimizer's Place in Query Processing? |
|
|
120 | (1) |
|
The Phases of Optimization |
|
|
121 | (10) |
|
The Prep Phase (Index Selection) |
|
|
121 | (3) |
|
Estimate Column Selectivity |
|
|
124 | (1) |
|
Estimate Index Selectivity |
|
|
125 | (2) |
|
|
127 | (1) |
|
Costing Indexes for Joins |
|
|
127 | (1) |
|
|
127 | (1) |
|
Index Selection Completion |
|
|
128 | (1) |
|
|
128 | (1) |
|
Physical and Large I/O Estimation |
|
|
129 | (1) |
|
|
129 | (2) |
|
|
131 | (22) |
|
|
131 | (6) |
|
|
132 | (1) |
|
Where Does All the Memory Go? |
|
|
133 | (1) |
|
Memory Management Changes in Adaptive Server 12.5 |
|
|
134 | (3) |
|
|
137 | (1) |
|
|
138 | (2) |
|
Getting Information about the Procedure Cache Size |
|
|
139 | (1) |
|
|
140 | (1) |
|
|
140 | (1) |
|
|
140 | (1) |
|
|
141 | (2) |
|
|
142 | (1) |
|
|
142 | (1) |
|
|
143 | (7) |
|
Choosing the Cache Strategy |
|
|
144 | (1) |
|
Large I/O and Cache Strategies |
|
|
145 | (1) |
|
|
146 | (1) |
|
Strategy for OLTP Type Transactions |
|
|
147 | (1) |
|
Strategy for DSS Type Transactions |
|
|
148 | (1) |
|
|
149 | (1) |
|
Performance with Large I/O |
|
|
150 | (1) |
|
Cache Configuration Considerations |
|
|
151 | (2) |
|
Parallel Query Processing |
|
|
153 | (20) |
|
|
153 | (1) |
|
Why Use Parallel Queries? |
|
|
153 | (1) |
|
Parallel Processing Model |
|
|
154 | (2) |
|
How Parallel Queries Access Objects |
|
|
156 | (2) |
|
|
156 | (1) |
|
Hash Non-Clustered Index Scan |
|
|
157 | (1) |
|
Hash Clustered Index Scan |
|
|
157 | (1) |
|
|
157 | (1) |
|
Partition Clustered Index Scan |
|
|
157 | (1) |
|
Configuring ASE for Parallel Queries |
|
|
158 | (1) |
|
Controlling the Number of Parallel Queries |
|
|
159 | (1) |
|
How Should I Implement Parallel Queries? |
|
|
159 | (4) |
|
Parallel Query Tests - Single Queries |
|
|
160 | (1) |
|
Parallel Query Tests - Multiple Queries |
|
|
161 | (1) |
|
|
162 | (1) |
|
Insufficient Worker Processes |
|
|
163 | (4) |
|
|
164 | (1) |
|
|
164 | (1) |
|
Facts about Parallel Sort |
|
|
164 | (1) |
|
Configuring the Number of Producers |
|
|
165 | (1) |
|
Configuring the Number of Consumers |
|
|
165 | (1) |
|
|
165 | (1) |
|
Configuring ASE for Optimal Performance |
|
|
166 | (1) |
|
set sort_resources Command |
|
|
166 | (1) |
|
|
166 | (1) |
|
Monitoring Parallel Queries |
|
|
167 | (6) |
|
|
167 | (1) |
|
|
168 | (1) |
|
|
169 | (1) |
|
Worker Process Management |
|
|
170 | (1) |
|
Parallel Query Management |
|
|
170 | (3) |
|
|
173 | (16) |
|
|
173 | (1) |
|
|
174 | (4) |
|
|
176 | (1) |
|
|
177 | (1) |
|
|
178 | (4) |
|
|
178 | (1) |
|
Partitioning and Parallelism |
|
|
179 | (1) |
|
|
180 | (1) |
|
|
181 | (1) |
|
|
182 | (1) |
|
|
183 | (1) |
|
|
183 | (1) |
|
|
184 | (1) |
|
Normalization and Denormalization |
|
|
185 | (1) |
|
|
186 | (1) |
|
Application Design Process |
|
|
187 | (2) |
|
|
189 | (18) |
|
|
189 | (1) |
|
Procedures vs. Inline Code |
|
|
189 | (8) |
|
Procedure Return Codes and Error Handling |
|
|
195 | (2) |
|
|
197 | (3) |
|
|
200 | (7) |
|
|
203 | (2) |
|
Transaction Nesting Levels and Modes |
|
|
205 | (1) |
|
|
206 | (1) |
|
Optimizing Stored Procedures |
|
|
207 | (22) |
|
|
207 | (1) |
|
|
207 | (1) |
|
Optimizing Stored Procedures |
|
|
208 | (1) |
|
Storing and Executing Procedures |
|
|
209 | (2) |
|
Building the Query Tree: Resolution |
|
|
209 | (1) |
|
Building the Query Plan: Compilation |
|
|
209 | (1) |
|
Multiple Users and the Query Plan |
|
|
209 | (1) |
|
Resolving Execution Plan Differences |
|
|
210 | (1) |
|
|
210 | (1) |
|
|
211 | (1) |
|
|
211 | (1) |
|
Testing and Debugging Stored Procedures |
|
|
212 | (1) |
|
|
212 | (1) |
|
Using SARGs (Search Arguments) |
|
|
213 | (4) |
|
Matching Datatypes in SARGs |
|
|
214 | (2) |
|
|
216 | (1) |
|
Temporary Tables and Stored Procedures |
|
|
217 | (2) |
|
|
219 | (8) |
|
|
220 | (1) |
|
|
220 | (1) |
|
|
221 | (1) |
|
|
221 | (1) |
|
|
221 | (1) |
|
|
221 | (1) |
|
Specifying a Strategy (index...prefetch...mru_lru...parallel) |
|
|
222 | (1) |
|
|
222 | (1) |
|
|
222 | (1) |
|
|
222 | (1) |
|
|
223 | (1) |
|
Interpreting a Showplan Report |
|
|
223 | (2) |
|
Using Simulated Statistics |
|
|
225 | (1) |
|
Measuring Stored Procedures at Run Time |
|
|
225 | (1) |
|
Checking for Join Columns and Search Arguments |
|
|
226 | (1) |
|
Avoiding Stored Procedure ``Hot Spots'' |
|
|
226 | (1) |
|
Improving Stored Procedure Performance |
|
|
227 | (2) |
|
|
229 | (14) |
|
|
229 | (1) |
|
ANSI Transaction Isolation Levels |
|
|
230 | (2) |
|
|
230 | (1) |
|
|
230 | (1) |
|
|
230 | (1) |
|
|
230 | (1) |
|
|
231 | (1) |
|
Setting Session Isolation Levels |
|
|
231 | (1) |
|
Setting Statement Isolation Level |
|
|
231 | (1) |
|
|
232 | (1) |
|
|
232 | (2) |
|
|
233 | (1) |
|
|
233 | (1) |
|
|
234 | (2) |
|
|
235 | (1) |
|
|
235 | (1) |
|
|
235 | (1) |
|
Specifying a Locking Scheme |
|
|
236 | (1) |
|
|
236 | (1) |
|
|
236 | (1) |
|
|
236 | (2) |
|
|
236 | (1) |
|
|
237 | (1) |
|
|
237 | (1) |
|
Configuring Lock Promotion |
|
|
238 | (1) |
|
Setting Lock Promotion Values |
|
|
239 | (1) |
|
|
240 | (1) |
|
|
240 | (1) |
|
|
241 | (2) |
|
|
243 | (8) |
|
|
243 | (4) |
|
Various Forms of Deadlock |
|
|
244 | (1) |
|
|
245 | (1) |
|
|
246 | (1) |
|
|
246 | (1) |
|
|
247 | (3) |
|
|
248 | (1) |
|
|
248 | (2) |
|
|
250 | (1) |
|
|
251 | (26) |
|
How to View Configuration Settings |
|
|
251 | (1) |
|
|
252 | (1) |
|
How to Change Configuration Values |
|
|
253 | (2) |
|
Specifying a Configuration File with sp_configure |
|
|
254 | (1) |
|
New Configuration Features in Sybase ASE 11.5 |
|
|
255 | (4) |
|
Expanded Error Log Messages |
|
|
257 | (1) |
|
Extended Stored Procedures |
|
|
257 | (1) |
|
|
258 | (1) |
|
New Configuration Parameters for the NT Platform |
|
|
259 | (1) |
|
New Configuration Features in Sybase ASE 11.9.2 |
|
|
259 | (5) |
|
Changed Configuration Parameters |
|
|
263 | (1) |
|
Renamed Configuration Parameters |
|
|
264 | (1) |
|
New Configuration Parameters for Version 12 |
|
|
264 | (4) |
|
Changes to Existing Configuration Parameters |
|
|
268 | (1) |
|
Sybase ASE 12.5 Configuration Changes |
|
|
268 | (5) |
|
|
268 | (1) |
|
|
268 | (1) |
|
New Configuration Parameters |
|
|
269 | (1) |
|
|
269 | (1) |
|
allocate max shared memory |
|
|
270 | (1) |
|
dynamic allocation on demand |
|
|
270 | (1) |
|
How Do I Decrease Memory Configuration Parameters? |
|
|
270 | (1) |
|
|
271 | (2) |
|
New Dynamic Configuration Options |
|
|
273 | (4) |
|
Changed Configuration Options |
|
|
275 | (1) |
|
Deleted Configuration Options |
|
|
275 | (2) |
|
How to Read sp_sysmon Output |
|
|
277 | (36) |
|
|
277 | (1) |
|
|
277 | (1) |
|
|
278 | (2) |
|
|
280 | (9) |
|
|
280 | (1) |
|
|
281 | (2) |
|
|
283 | (1) |
|
|
283 | (1) |
|
|
284 | (1) |
|
|
284 | (1) |
|
Average Disk I/Os Returned |
|
|
284 | (1) |
|
Worker Process Management |
|
|
284 | (1) |
|
Avg Mem Ever Used by a WP |
|
|
285 | (1) |
|
|
286 | (1) |
|
Per Second and Per Transaction Data |
|
|
287 | (1) |
|
Percent of Total and Count Data |
|
|
287 | (1) |
|
|
287 | (1) |
|
|
287 | (2) |
|
|
289 | (4) |
|
ULC Flushes to Xact (Transaction) Log |
|
|
290 | (1) |
|
|
291 | (1) |
|
|
291 | (1) |
|
|
291 | (1) |
|
|
292 | (1) |
|
|
292 | (1) |
|
Log Semaphore Contention and User Log Caches |
|
|
293 | (1) |
|
|
293 | (1) |
|
Transaction Log Allocations |
|
|
293 | (1) |
|
Avg # Writes Per Log Page |
|
|
293 | (1) |
|
|
293 | (2) |
|
|
295 | (4) |
|
|
296 | (1) |
|
|
297 | (1) |
|
|
298 | (1) |
|
|
298 | (1) |
|
|
299 | (2) |
|
|
300 | (1) |
|
|
301 | (1) |
|
|
301 | (7) |
|
|
303 | (1) |
|
|
303 | (1) |
|
|
304 | (1) |
|
|
304 | (1) |
|
|
304 | (1) |
|
|
305 | (1) |
|
APF Buffers Found in Cache |
|
|
305 | (1) |
|
|
305 | (1) |
|
Cache Management by Cache |
|
|
306 | (1) |
|
|
306 | (1) |
|
|
306 | (1) |
|
Cache Search, Hit, and Miss Information |
|
|
306 | (1) |
|
|
307 | (1) |
|
|
307 | (1) |
|
|
308 | (1) |
|
|
308 | (1) |
|
|
308 | (1) |
|
Procedure Cache Management |
|
|
308 | (3) |
|
|
309 | (2) |
|
|
311 | (2) |
|
|
313 | (10) |
|
How Sybase ASE Handles Client Connections |
|
|
313 | (2) |
|
How to Identify Network Performance Problems |
|
|
315 | (1) |
|
Possible Causes of Network Performance Problems |
|
|
316 | (5) |
|
Tips on Understanding Network Performance and Finding Causes |
|
|
320 | (1) |
|
|
321 | (2) |
|
|
323 | (8) |
|
CPU Utilization Percentage |
|
|
324 | (1) |
|
|
324 | (3) |
|
|
324 | (1) |
|
|
325 | (1) |
|
Total Cache Misses (or Cache Hits) and Total Cache Searches |
|
|
326 | (1) |
|
Cache Searches per Second |
|
|
326 | (1) |
|
|
327 | (1) |
|
|
327 | (1) |
|
|
327 | (2) |
|
Disk Statistics from sp_sysmon |
|
|
327 | (1) |
|
Disk Statistics from iostat |
|
|
328 | (1) |
|
|
329 | (2) |
|
Network Packets Received/Sent |
|
|
329 | (2) |
|
|
331 | (20) |
|
|
331 | (1) |
|
|
332 | (1) |
|
|
332 | (1) |
|
Installing the Audit System |
|
|
333 | (1) |
|
Installing Auditing with installsecurity |
|
|
334 | (1) |
|
Installing Auditing with auditinit |
|
|
334 | (1) |
|
|
334 | (8) |
|
Understanding the Audit Tables |
|
|
335 | (1) |
|
|
336 | (1) |
|
|
336 | (3) |
|
Changing the Current Audit Table |
|
|
339 | (1) |
|
Archiving the Audit Table |
|
|
340 | (1) |
|
Setting Up a Threshold Procedure |
|
|
341 | (1) |
|
Attaching the Threshold Procedure to Each Audit Segment |
|
|
342 | (1) |
|
When Audit Data is Recorded |
|
|
342 | (1) |
|
Auditing Configuration Parameters and System Procedures |
|
|
343 | (1) |
|
System Procedures for Auditing |
|
|
344 | (1) |
|
Managing the Audit System Transaction Log |
|
|
344 | (3) |
|
Truncating the Transaction Log |
|
|
345 | (1) |
|
Managing the Transaction Log with No Truncation |
|
|
345 | (1) |
|
Suspending Auditing if Devices are Full |
|
|
346 | (1) |
|
Examples of Setting Auditing Options |
|
|
346 | (1) |
|
|
347 | (1) |
|
|
348 | (1) |
|
Review of Auditing and Performance |
|
|
348 | (3) |
|
|
351 | (14) |
|
Associating a Query with a Plan |
|
|
352 | (1) |
|
Abstract Query Plan Language |
|
|
353 | (2) |
|
Specifying Access Methods |
|
|
353 | (1) |
|
Full and Partial Plan Examples |
|
|
354 | (1) |
|
|
354 | (1) |
|
|
355 | (1) |
|
|
356 | (1) |
|
Specifying Illegal or Inconsistent Plans |
|
|
357 | (1) |
|
Creating Abstract Plans for Subqueries |
|
|
357 | (3) |
|
|
358 | (1) |
|
|
358 | (1) |
|
Changing Join Order of Flatten Queries |
|
|
359 | (1) |
|
|
359 | (1) |
|
|
360 | (1) |
|
|
361 | (1) |
|
Not Specifying a Store Operator |
|
|
361 | (1) |
|
General Strategy to Write a Plan |
|
|
361 | (2) |
|
Capture the Existing Plan |
|
|
362 | (1) |
|
Comparing ``Before'' and ``After'' System Upgrades |
|
|
363 | (2) |
|
|
365 | (8) |
|
|
365 | (2) |
|
|
365 | (1) |
|
|
366 | (1) |
|
How to Improve bcp Performance |
|
|
366 | (1) |
|
dbcc Locking Considerations |
|
|
367 | (1) |
|
tempdb Performance Issues |
|
|
368 | (3) |
|
|
368 | (1) |
|
Consider Placing tempdb on a Faster I/O Device |
|
|
369 | (1) |
|
Advantages of Assigning Tempdb to Its Own Data Cache |
|
|
370 | (1) |
|
|
370 | (1) |
|
Sample Session Moving tempdb |
|
|
370 | (1) |
|
Locking Contention in tempdb |
|
|
371 | (1) |
|
|
371 | (1) |
|
|
372 | (1) |
Appendix A Tuning Sybase ASE Using Solid State Accelerators |
|
373 | (8) |
Appendix B Fragmentation and Database Performance |
|
381 | (22) |
Index |
|
403 | |