SQL P
IVOT
AND
P
RUNE
Q
UERIES
- K
EEPING
AN
E
YE
ON
P
ERFORMANCE
Author:Brendan FureyCreation Date:2 May 2011Version:1.3Last Updated:25 September 2012
110516346.doc.Page 1 of 52
Table of Contents
Introduction .......................................................................................................4Hardware/Software Summary .......................................................................4Overview ...........................................................................................................5Problem Description .....................................................................................5 Test Data Sets ..............................................................................................6Pivot and Prune Query Strategies .................................................................6
Pivot Strategies .....................................................................................................6Prune Strategies ....................................................................................................7Strategy Modifiers .................................................................................................7 Test Combinations ................................................................................................ 8
Testing Strategy ...........................................................................................8Output Files ..................................................................................................9 The Queries .....................................................................................................10 JNSQ: Join, Subquery ..................................................................................10
Query Text ........................................................................................................... 10Query Diagram .................................................................................................... 11Execution Plan Example (W64-D16) ...................................................................11Results ................................................................................................................. 12
WJSQ: With, Subquery ................................................................................13
Query Text ........................................................................................................... 13Query Diagram .................................................................................................... 14Execution Plan Example (W128-D64) .................................................................14Results ................................................................................................................. 15
WJAN: With, Analytic ...................................................................................16
Query Text ........................................................................................................... 16Query Diagram .................................................................................................... 17Execution Plan Example (W128-D64) .................................................................17Results ................................................................................................................. 18
WJKP: With, Keep ........................................................................................19
Query Text ........................................................................................................... 19Query Diagram .................................................................................................... 20Execution Plan Example (W128-D64) .................................................................20Results ................................................................................................................. 21
PVAN: Pivot, Analytic ..................................................................................22
Query Text ........................................................................................................... 22Query Diagram .................................................................................................... 22Execution Plan Example (W128-D64) .................................................................22Results ................................................................................................................. 23
PVANIV: Pivot, Analytic, View ......................................................................24
Query Text ........................................................................................................... 24Query Diagram .................................................................................................... 24Execution Plan Example (W128-D64) .................................................................25Results ................................................................................................................. 25
PVKP: Pivot, Keep .......................................................................................26
Query Text ........................................................................................................... 26Query Diagram .................................................................................................... 26Execution Plan Example (W128-D64) .................................................................27Results ................................................................................................................. 27
PVKPIV: Pivot, Keep, View ...........................................................................28
Query Text ........................................................................................................... 28Query Diagram .................................................................................................... 28Execution Plan Example (W128-D64) .................................................................29Results ................................................................................................................. 29
FNSC: Database Function ...........................................................................30
Query Text - Main ................................................................................................30Query Text - Function ......................................................................................... 30Query/Function Diagram .....................................................................................31
110516346.docPage 2 of 52
Execution Plan Example - Main ...........................................................................31Execution Plan Example – Function ....................................................................31Results ................................................................................................................. 32
Query Text ........................................................................................................... 33Query Diagram .................................................................................................... 34Execution Plan Example (W1-D1024) .................................................................34Results ................................................................................................................. 34
Query Text ........................................................................................................... 34Query Diagram .................................................................................................... 35Execution Plan Example (W1-D1024) .................................................................35Results ................................................................................................................. 35
Query Text ........................................................................................................... 35Query Diagram .................................................................................................... 36Results ................................................................................................................. 36
Analysis of Results ...........................................................................................37Slice Analysis .............................................................................................37
Narrow Slice ........................................................................................................ 37Wide Slice ............................................................................................................ 38Shallow Slice ....................................................................................................... 40Deep Slice ........................................................................................................... 41
Summary Analysis ......................................................................................43
Tables and Graphs of Relative Performance ......................................................43Which Query is Best? .......................................................................................... 44
Cost Based Optimizer .................................................................................44
CBO Cardinalities ................................................................................................ 44Inline View Modifier ............................................................................................. 45Subquery Factoring Modifier ...............................................................................45Performance of JNSQ ...........................................................................................45Performance of Database Function and Scalar Subquery Strategies .................46General Conclusions ............................................................................................46
Query Testing Program ....................................................................................47Call Structure Diagram ...............................................................................47Data Flow Diagram .....................................................................................48 Table Structures .........................................................................................48
Generic Tables .................................................................................................... 48Specific Tables for our HR Queries .....................................................................49
Program Logic ............................................................................................49Example Output .........................................................................................50References .......................................................................................................52
Change Record
DateAuthorVersionChange Reference
02-May-2011BPF1.0Initial03-May-2011BPF1.1Typos and references20-Jun-2011BPF1.2More typos and reference to new article25-Sep-2011BPF1.3References now hyperlinks, and minor tidying
110516346.docPage 3 of 52
Reward Your Curiosity
Everything you want to read.
Anytime. Anywhere. Any device.
No Commitment. Cancel anytime.