ORACLEで、動作の遅いSQLがあり、原因究明のため、A5で実行計画を表示させたのですが、用語の意味からわかりません。
UPDATE STATEMENT Cost = 142 +-UPDATE TEST001 +-FILTER | +-TABLE ACCESS FULL TEST001 | +-NESTED LOOPS | +-NESTED LOOPS | | +-NESTED LOOPS | | | +-TABLE ACCESS FULL TEST001 | | | +-TABLE ACCESS BY INDEX ROWID TEST001 | | | +-INDEX RANGE SCAN TEST001.SET_PK | | +-INDEX RANGE SCAN TEST_PK | +-TABLE ACCESS BY INDEX ROWID TEST001 +-VIEW +-SORT GROUP BY +-VIEW +-SORT GROUP BY +-NESTED LOOPS OUTER +-NESTED LOOPS OUTER | +-NESTED LOOPS OUTER | | +-HASH JOIN | | | +-NESTED LOOPS | | | | +-NESTED LOOPS | | | | | +-NESTED LOOPS OUTER | | | | | | +-TABLE ACCESS BY INDEX ROWID TEST002 | | | | | | | +-INDEX RANGE SCAN TEST002_PK | | | | | | +-TABLE ACCESS BY INDEX ROWID TEST003 | | | | | | +-INDEX RANGE SCAN TEST003_PK | | | | | +-INDEX UNIQUE SCAN TEST003_PK | | | | +-TABLE ACCESS BY INDEX ROWID TEST003 | | | +-TABLE ACCESS FULL TEST003 | | +-VIEW | | +-TABLE ACCESS BY INDEX ROWID TEST003 | | +-INDEX RANGE SCAN TEST003 | | +-TABLE ACCESS BY INDEX ROWID TEST003 | | | +-INDEX UNIQUE SCAN TEST003_PK | | +-REMOTE TEST004 | +-REMOTE TEST004 +-REMOTE TEST005
このような実行計画、いったい何がどうなっているのか、どのように解析をしていったらいいのでしょう?
何か分かりやすく解説しているサイトや書籍はないものでしょうか?
いろいろ調べてみまして、ネストの深いところから実行されることと、「TABLE ACCESS FULL」は、テーブルフルスキャンをしている事はわかりました。
しかしながら、「FILTER」「NESTED LOOPS」「VIEW」「REMOTE」このあたりの用語の意味がわかりません。
この用語の意味だけでも教えて頂けますとありがたいです。
回答3件
あなたの回答
tips
プレビュー