さて、なんとなく、勢いではじめてみました、実行計画は、SQLのレントゲン写真だ!
実行計画という、SQLのレントゲン写真をどれだけみたて診察、治療してきたか、SQLチューニングという診察、治療の腕をあげるためにも、どのような実行計画がどのようなSQL文から生成されるのか知っていて損はないです。(はず)
今温めているネタに近く、勢いで初めてしまったので、Advent calendar 全部俺 ということにしておきます。
実行計画のパターンは、よく見るものも含め25は軽く超えてしまいますが、今回は基本になりそうなところ中心に集めてレントゲンとしてカタログ化w しておきたいと思います。
今回はOracle Database編で、一部、JPOUG Advent Calendar 2019 とクロスポスト予定のエントリがあります。他のデータベースエンジン向けは別の機会にでも。
実行計画というレントゲン写真から、元のSQL文をイメージしたり、どのような状況に適しているのか、適していないなのかを考えながら見るのも面白いかもしれません。
SUN | MON | TUE | WED | THU | FRI | SAT |
---|---|---|---|---|---|---|
1 Hiroshi Sekiguchi | 2 Hiroshi Sekiguchi | 3 Hiroshi Sekiguchi | 4 Hiroshi Sekiguchi | 5 Hiroshi Sekiguchi | 6 Hiroshi Sekiguchi | 7 Hiroshi Sekiguchi |
8 Hiroshi Sekiguchi | 9 Hiroshi Sekiguchi | 10 Hiroshi Sekiguchi | 11 Hiroshi Sekiguchi | 12 Hiroshi Sekiguchi | 13 Hiroshi Sekiguchi | 14 Hiroshi Sekiguchi |
15 Hiroshi Sekiguchi | 16 Hiroshi Sekiguchi | 17 Hiroshi Sekiguchi | 18 Hiroshi Sekiguchi | 19 Hiroshi Sekiguchi | 20 Hiroshi Sekiguchi | 21 Hiroshi Sekiguchi |
22 Hiroshi Sekiguchi | 23 Hiroshi Sekiguchi | 24 Hiroshi Sekiguchi | 25 Hiroshi Sekiguchi |
- 12/1実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 - Day 1 / TABLE ACCESS FULLMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 - Day 1
- 12/2実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 - Day 2 / INDEX UNIQUE SCANMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 - Day 2
- 12/3実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 - Day 3 / INDEX RANGE SCAN と Index Only ScanMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 - Day 3
- 12/4実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 4 / INDEX RANGE SCANMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 4
- 12/5実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 5 / INDEX RANGE SCAN , INLIST ITERATORMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 5
- 12/6実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 6 / INDEX FAST FULL SCAN, Index Only ScanMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 6
- 12/7実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 7 / INDEX FULL SCAN, Index Only ScanMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 7
- 12/8実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 8 / NDEX SKIP SCANMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 8
- 12/9実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 9 / TABLE ACCESS INMEMORY FULLMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 9
- 12/10実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 10 / NESTED LOOPS (結合)Mac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 10
- 12/11実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 11 / MERGE JOINMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 11
- 12/12実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 12 / HASH JOINMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 12
- 12/13実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 13 / HASH JOIN OUTERMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 13
- 12/14実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 14 / HASH JOIN FULL OUTERMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 14
- 12/15実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 15 / PX, TABLE ACCESS FULLMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 15
- 12/16実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 16 / CONCATENATIONMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 16
- 12/17実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 17 / SORT UNIQUE, UNION-ALLMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 17
- 12/18実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 18 / UNION-ALLMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 18
- 12/19実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 19 / INTERSECTIONMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 19
- 12/20実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 20 / MINUSMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 20
- 12/21実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 21 / WINDOW NOSORT STOPKEYMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 21
- 12/22実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 22 / COUNT STOPKEYMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 22
- 12/23実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 23 / HASH JOIN, LEFT-DEEP JOIN vs RIGHT-DEEP JOINMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 23
- 12/24実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 24 / CONNECT BY NO FILTERING WITH START-WITHMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 24
- 12/25実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 25 / UNION-ALL (RECURSIVE WITH) DEPTH FIRST , RECURSIVE WITH PUMPMac De Oracle: 実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺)Advent Calendar 2019 Day 25