66
TRMڋٸ !كچ傰⛩崛䤣㔡! ڋل٨پطشY ec!ufdi!tipxdbtf!3125!Uplzp 24.Opw.3125!M47! 梃⛄家⯌ 1

db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

Embed Size (px)

Citation preview

Page 1: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

1

Page 3: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

Operating System

Oracle Core

3

Page 4: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

4

Page 5: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

5

Page 6: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

6

Page 7: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

7

Page 8: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

8

Page 9: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

9

Page 10: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

10

Page 11: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

11

Page 12: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

12

Page 13: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

13

Page 14: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

14

Page 15: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

🔺

15

Page 16: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

🔺

16

✖✖

Page 17: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

17

Page 18: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

18

Page 19: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

19

Page 20: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

20

Page 21: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

21

Page 22: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

22

Page 23: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

23

Page 24: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

24

Page 25: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

25000行が選択されました。

実行計画-------------------------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |-------------------------------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 25000 | 12M| 1841 (1)| 00:00:01 || 1 | TABLE ACCESS BY INDEX ROWID BATCHED| DELUDING_TAB | 25000 | 12M| 1841 (1)| 00:00:01 ||* 2 | INDEX RANGE SCAN | PK_DELUDING_TAB | 25000 | | 54 (0)| 00:00:01 |-------------------------------------------------------------------------------------------------------

30000行が選択されました。

実行計画----------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |----------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 30000 | 14M| 1947 (1)| 00:00:01 ||* 1 | TABLE ACCESS FULL| DELUDING_TAB | 30000 | 14M| 1947 (1)| 00:00:01 |----------------------------------------------------------------------------------

25

Page 26: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

25000行が選択されました。

実行計画-------------------------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |-------------------------------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 25000 | 12M| 1841 (1)| 00:00:01 || 1 | TABLE ACCESS BY INDEX ROWID BATCHED| DELUDING_TAB | 25000 | 12M| 1841 (1)| 00:00:01 ||* 2 | INDEX RANGE SCAN | PK_DELUDING_TAB | 25000 | | 54 (0)| 00:00:01 |-------------------------------------------------------------------------------------------------------

30000行が選択されました。

実行計画----------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |----------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 30000 | 14M| 1947 (1)| 00:00:01 ||* 1 | TABLE ACCESS FULL| DELUDING_TAB | 30000 | 14M| 1947 (1)| 00:00:01 |----------------------------------------------------------------------------------

26

Page 27: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

2100行が選択されました。

実行計画--------------------------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |--------------------------------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 2102 | 1077K| 2115 (0)| 00:00:01 || 1 | TABLE ACCESS BY INDEX ROWID BATCHED| DELUDING_TAB2 | 2102 | 1077K| 2115 (0)| 00:00:01 ||* 2 | INDEX RANGE SCAN | PK_DELUDING_TAB2 | 2102 | | 13 (0)| 00:00:01 |--------------------------------------------------------------------------------------------------------

2500行が選択されました。

実行計画-----------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |-----------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 2482 | 1272K| 2117 (1)| 00:00:01 ||* 1 | TABLE ACCESS FULL| DELUDING_TAB2 | 2482 | 1272K| 2117 (1)| 00:00:01 |-----------------------------------------------------------------------------------

27

Page 28: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

2100行が選択されました。

実行計画--------------------------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |--------------------------------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 2102 | 1077K| 2115 (0)| 00:00:01 || 1 | TABLE ACCESS BY INDEX ROWID BATCHED| DELUDING_TAB2 | 2102 | 1077K| 2115 (0)| 00:00:01 ||* 2 | INDEX RANGE SCAN | PK_DELUDING_TAB2 | 2102 | | 13 (0)| 00:00:01 |--------------------------------------------------------------------------------------------------------

2500行が選択されました。

実行計画-----------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |-----------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 2482 | 1272K| 2117 (1)| 00:00:01 ||* 1 | TABLE ACCESS FULL| DELUDING_TAB2 | 2482 | 1272K| 2117 (1)| 00:00:01 |-----------------------------------------------------------------------------------

28

Page 29: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

INDEX_NAME CLUSTERING_FACTOR NUM_ROWS------------------------------ ----------------- ----------PK_DELUDING_TAB 7143 100000PK_DELUDING_TAB2 99990 100000

29

Page 30: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

30

Page 31: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

31

Page 32: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

32

Page 33: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

33

Page 34: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

34

Page 35: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

35

Page 36: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

統計---------------------------------------------------------- 0 recursive calls 0 db block gets 107173 consistent gets

統計---------------------------------------------------------- 0 recursive calls 0 db block gets 13911 consistent gets

36

Page 37: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

37

Page 38: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

38

🔺

Page 39: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

39

Page 40: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

40

select * from bad_statistics_tab where status=リテラル値;

Page 41: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

41

---------------------------------------------------------| Id | Operation | Name | Rows |--------------------------------------------------------| 0 | SELECT STATEMENT | | 99900 | |* 1 | TABLE ACCESS FULL| BAD_STATISTICS_TAB | 99900 | ----------------------------------------------------------

Predicate Information (identified by operation id):---------------------------------------------------

1 - filter("STATUS"=0)

Page 42: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

42

---------------------------------------------------------| Id | Operation | Name | Rows |--------------------------------------------------------| 0 | SELECT STATEMENT | | 99900 | |* 1 | TABLE ACCESS FULL| BAD_STATISTICS_TAB | 99900 | ----------------------------------------------------------

Predicate Information (identified by operation id):---------------------------------------------------

1 - filter("STATUS"=0)

1 recursive calls 0 db block gets 20159 consistent gets 0 physical reads 0 redo size 2262529 bytes sent via SQL*Net to client 73800 bytes received via SQL*Net from client 6661 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 99900 rows processed

Page 43: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

43

--------------------------------------------------------------------------| Id | Operation | Name | Rows |--------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 || 1 | TABLE ACCESS BY INDEX ROWID BATCHED| BAD_STATISTICS_TAB | 1 ||* 2 | INDEX RANGE SCAN | BAD_INDEX | 1 |--------------------------------------------------------------------------

Predicate Information (identified by operation id):---------------------------------------------------

2 - access("STATUS"=1)

Page 44: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

44

--------------------------------------------------------------------------| Id | Operation | Name | Rows |--------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 || 1 | TABLE ACCESS BY INDEX ROWID BATCHED| BAD_STATISTICS_TAB | 1 ||* 2 | INDEX RANGE SCAN | BAD_INDEX | 1 |--------------------------------------------------------------------------

Predicate Information (identified by operation id):---------------------------------------------------

2 - access("STATUS"=1)

1 recursive calls 0 db block gets 35214 consistent gets 0 physical reads 674340 redo size 103579092 bytes sent via SQL*Net to client 73800 bytes received via SQL*Net from client 6661 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 99900 rows processed

Page 45: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

45

--------------------------------------------------------------------------| Id | Operation | Name | Rows |--------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 || 1 | TABLE ACCESS BY INDEX ROWID BATCHED| BAD_STATISTICS_TAB | 1 ||* 2 | INDEX RANGE SCAN | BAD_INDEX | 1 |--------------------------------------------------------------------------

Predicate Information (identified by operation id):---------------------------------------------------

2 - access("STATUS"=2)

Page 46: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

46

--------------------------------------------------------------------------| Id | Operation | Name | Rows |--------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 || 1 | TABLE ACCESS BY INDEX ROWID BATCHED| BAD_STATISTICS_TAB | 1 ||* 2 | INDEX RANGE SCAN | BAD_INDEX | 1 |--------------------------------------------------------------------------

Predicate Information (identified by operation id):---------------------------------------------------

2 - access("STATUS"=2)

1 recursive calls 0 db block gets 35215 consistent gets 0 physical reads 674340 redo size 103579092 bytes sent via SQL*Net to client 73800 bytes received via SQL*Net from client 6661 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 99900 rows processed

Page 47: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

47

--------------------------------------------------------------------------| Id | Operation | Name | Rows |--------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 || 1 | TABLE ACCESS BY INDEX ROWID BATCHED| BAD_STATISTICS_TAB | 1 ||* 2 | INDEX RANGE SCAN | BAD_INDEX | 1 |--------------------------------------------------------------------------

Predicate Information (identified by operation id):---------------------------------------------------

2 - access("STATUS"=2)

1 recursive calls 0 db block gets 35215 consistent gets 0 physical reads 674340 redo size 103579092 bytes sent via SQL*Net to client 73800 bytes received via SQL*Net from client 6661 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 99900 rows processed

Page 48: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

48

Page 49: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

49

🔺

Page 50: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

50

🔺

Page 51: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

51

Page 52: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

52

Page 53: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

---------------------------------------------------| Id | Operation | Name | Rows |---------------------------------------------------| 0 | SELECT STATEMENT | | 100K|| 1 | TABLE ACCESS FULL| DELUDING_TAB2 | 100K|---------------------------------------------------

統計-------------------------------------------------- 0 recursive calls 0 db block gets 13905 consistent gets 7742 physical reads 0 redo size 55292936 bytes sent via SQL*Net to client 73878 bytes received via SQL*Net from client 6668 SQL*Net roundtrips to/from client

53

Page 54: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

============================================~==============================================| Id | Operation | Name |~| Activity | Activity Detail || | | |~| (%) | (# samples) |============================================~==============================================| 0 | SELECT STATEMENT | |~| 20.00 | Cpu (1) || 1 | TABLE ACCESS FULL | DELUDING_TAB2 |~| 80.00 | Cpu (1) || | | |~| | SQL*Net message to client (1) || | | |~| | SQL*Net more data to client (2) |============================================~==============================================

54

Page 55: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

call count cpu elapsed disk query current rows------- ------ -------- ---------- ---------- ---------- ---------- ----------Parse 1 0.00 0.00 0 0 0 0Execute 1 0.00 0.00 0 0 0 0Fetch 6668 0.85 0.81 7742 13905 0 100000------- ------ -------- ---------- ---------- ---------- ---------- ----------total 6670 0.85 0.81 7742 13905 0 100000

Elapsed times include waiting on following events: Event waited on Times Max. Wait Total Waited ---------------------------------------- Waited ---------- ------------ SQL*Net message to client 6668 0.00 0.14 direct path read 130 0.00 0.02 SQL*Net message from client 6668 0.01 8.17

55

Page 56: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

56

Page 57: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

統計-------------------------------------------------- 0 recursive calls 0 db block gets 13905 consistent gets 7742 physical reads 0 redo size 55292936 bytes sent via SQL*Net to client 73878 bytes received via SQL*Net from client 6668 SQL*Net roundtrips to/from client

0 recursive calls 0 db block gets 8367 consistent gets 7742 physical reads 0 redo size 54128936 bytes sent via SQL*Net to client 7878 bytes received via SQL*Net from client 668 SQL*Net roundtrips to/from client

57

Page 58: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

============================================~==============================================| Id | Operation | Name |~| Activity | Activity Detail || | | |~| (%) | (# samples) |============================================~==============================================| 0 | SELECT STATEMENT | |~| 20.00 | Cpu (1) || 1 | TABLE ACCESS FULL | DELUDING_TAB2 |~| 80.00 | Cpu (1) || | | |~| | SQL*Net message to client (1) || | | |~| | SQL*Net more data to client (2) |============================================~==============================================

============================================~==============================| Id | Operation | Name |~| Activity | Activity Detail || | | |~| (%) | (# samples) |============================================~==============================| 0 | SELECT STATEMENT | |~| | || 1 | TABLE ACCESS FULL | DELUDING_TAB2 |~| 100.00 | Cpu (2) |============================================~==============================

58

Page 59: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

FETCH #140651855557776:c=0,e=68,p=0,cr=2,cu=0,mis=0,r=15, ....WAIT #140651855557776: nam='SQL*Net message from client' ....WAIT #140651855557776: nam='SQL*Net message to client' ....FETCH #140651855557776:c=0,e=79,p=0,cr=2,cu=0,mis=0,r=15 ....WAIT #140651855557776: nam='SQL*Net message from client'....WAIT #140651855557776: nam='SQL*Net message to client'....FETCH #140651855557776:c=0,e=147,p=0,cr=9,cu=0,mis=0,r=15....WAIT #140651855557776: nam='SQL*Net message from client' ....WAIT #140651855557776: nam='SQL*Net message to client'....FETCH #140651855557776:c=0,e=101,p=0,cr=9,cu=0,mis=0,r=15,........以下略....

59

Page 60: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

FETCH #140651855557776:c=2000,e=1695,p=64,cr=13,cu=0,mis=0,r=150,...WAIT #140651855557776: nam='SQL*Net message from client'.....WAIT #140651855557776: nam='SQL*Net message to client'.....FETCH #140651855557776:c=0,e=1093,p=0,cr=12,cu=0,mis=0,r=150,...WAIT #140651855557776: nam='SQL*Net message from client'.....WAIT #140651855557776: nam='SQL*Net message to client'.....FETCH #140651855557776:c=0,e=161,p=0,cr=12,cu=0,mis=0,r=150,....WAIT #140651855557776: nam='SQL*Net message from client'.....WAIT #140651855557776: nam='SQL*Net message to client'.....FETCH #140651855557776:c=18000,e=17507,p=0,cr=13,cu=0,mis=0,r=150,......以下略....

60

Page 61: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

call count cpu elapsed disk query current rows------- ------ -------- ---------- ---------- ---------- ---------- ----------Parse 1 0.00 0.00 0 0 0 0Execute 1 0.00 0.00 0 0 0 0Fetch 6668 0.85 0.81 7742 13905 0 100000

Fetch 668 0.17 0.17 7742 8367 0 100000

Elapsed times include waiting on following events: Event waited on Times Max. Wait Total Waited ---------------------------------------- Waited ---------- ------------ SQL*Net message to client 6668 0.00 0.14 direct path read 130 0.00 0.02 SQL*Net message from client 6668 0.01 8.17

SQL*Net message from client 668 0.03 3.83

61

Page 62: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

62

Page 63: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

63

🔺

Page 64: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

64

Page 65: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

65

Page 66: db tech showcase Tokyo 2014 - L36 - JPOUG : SQLチューニング総合診療所 ケースファイルX

http://www.jpoug.org

✌66