質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

1回答

2095閲覧

SQLのチューニングについて

tuntun

総合スコア35

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2015/05/25 04:22

編集2015/05/25 05:03

SQLのチューニングの件で質問なのですが、
実行計画を取る作業まで行ってデータを出力したのですが
チューニングをする際に主にどこを見て修正対象を決めるのか?
というのがわからないです。教えていただけないでしょうか。
SQLのチューニングを初めて行うのでいまいちやり方がわかりません。

lang

1------------------------------------------------------------------------------------------------ 2| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | 3------------------------------------------------------------------------------------------------ 4| 0 | SELECT STATEMENT | | 21 | 2975 | 154 (82)| 00:00:02 | 5| 1 | SORT UNIQUE | | 21 | 2975 | 154 (82)| 00:00:02 | 6| 2 | UNION-ALL | | | | | | 7|* 3 | FILTER | | | | | | 8| 4 | NESTED LOOPS | | 1 | 145 | 28 (0)| 00:00:01 | 9| 5 | TABLE ACCESS BY INDEX ROWID| TBFA004G | 20 | 700 | 8 (0)| 00:00:01 | 10|* 6 | INDEX RANGE SCAN | TBFA004G_IX1 | 20 | | 6 (0)| 00:00:01 | 11|* 7 | TABLE ACCESS BY INDEX ROWID| TBFA001G | 1 | 110 | 1 (0)| 00:00:01 | 12|* 8 | INDEX UNIQUE SCAN | TBFA001G_PK | 1 | | 0 (0)| 00:00:01 | 13|* 9 | INDEX UNIQUE SCAN | TBFA090G_PK | 1 | 16 | 1 (0)| 00:00:01 | 14|* 10 | TABLE ACCESS BY INDEX ROWID| TBSA005G | 1 | 18 | 2 (0)| 00:00:01 | 15| 11 | NESTED LOOPS | | 484 | 17424 | 21 (5)| 00:00:01 | 16| 12 | INDEX FULL SCAN | TBFA090G_IX1 | 1045 | 18810 | 14 (0)| 00:00:01 | 17|* 13 | INDEX RANGE SCAN | TBSA005G_PK | 1 | | 1 (0)| 00:00:01 | 18|* 14 | INDEX UNIQUE SCAN | TBFA090G_PK | 1 | 16 | 1 (0)| 00:00:01 | 19| 15 | NESTED LOOPS ANTI | | 19 | 2698 | 110 (0)| 00:00:02 | 20|* 16 | TABLE ACCESS BY INDEX ROWID | TBFA001G | 19 | 2394 | 110 (0)| 00:00:02 | 21|* 17 | INDEX RANGE SCAN | TBFA001G_PK | 400 | | 6 (0)| 00:00:01 | 22|* 18 | INDEX UNIQUE SCAN | TBFA004G_PK | 1 | 16 | 0 (0)| 00:00:01 | 23| 19 | NESTED LOOPS ANTI | | 1 | 132 | 13 (8)| 00:00:01 | 24|* 20 | HASH JOIN SEMI | | 1 | 114 | 12 (9)| 00:00:01 | 25|* 21 | TABLE ACCESS BY INDEX ROWID| TBFN009G | 2 | 192 | 9 (0)| 00:00:01 | 26|* 22 | INDEX RANGE SCAN | TBFN009G_IX2 | 2 | | 7 (0)| 00:00:01 | 27|* 23 | TABLE ACCESS FULL | TBSA005G | 40 | 720 | 2 (0)| 00:00:01 | 28|* 24 | INDEX RANGE SCAN | TBFA090G_IX1 | 1 | 18 | 1 (0)| 00:00:01 | 29------------------------------------------------------------------------------------------------

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takotakot

2015/05/25 04:34

抽象的なまま話を続けることもできますが、「実行計画を取る作業まで行ってデータを出力したのですが チューニングをする際に主にどこを見て修正対象を決めるのか? 」が大事なところですよね。どんな SQL を発行しようとして、どんな実行計画が出たのでしょうか。そこがわかれば、具体的な話ができるのではないでしょうか。
tuntun

2015/05/25 04:45

4つのDBを使って3パターンの結果をUNIONで結合したSQLを発行しました。 結果はファイルを追加しますのでそちらを見ていただけないでしょうか。
tuntun

2015/05/25 04:53

この質問に画像、ファイルの添付ができないのですがどうやって挿入するのでしょうか?
takotakot

2015/05/25 04:57

私も、添付できる画像とできない画像がありますね…サイズを小さくするか、文字の形で、を追記して貼り付けるか、してみてはいかがでしょうか。 文字の場合、「コード」扱いにすると、崩れる可能性は減るかもしれません。
tuntun

2015/05/25 05:04

少し見づらいかもしれませんが実行計画を追加しました。
guest

回答1

0

ベストアンサー

もとの SQL はわかりませんし、Oracle は使ったことがないのですが…
0, 1, 15, 16 のコストが大きいですね。
15 は NOT INNOT EXISTS でしょうか。IN の後の順序でパフォーマンスが変わることがあります。
1 はソートと UNIQUE ですね。必要な処理だとしたら、高速化は難しいでしょうね。

あとは、得意な方にお任せしましょう。

投稿2015/05/25 05:22

takotakot

総合スコア1111

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tuntun

2015/05/25 05:28

分かりにくい質問で申し訳ありませんでした。 とりあえず15,16のSQLを改善していきたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問