質問: 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」このあたりの用語の意味がわかりません。 この用語の意味だけでも教えて頂けますとありがたいです。
回答: miu_ras さんと同意見です。 差支えない範囲で実際のUPDATE文、各テーブルのレコード件数、CREATE TABLE, CREATE INDEX、 EXPLAIN PLAN を使って実行計画を取得する で SQL*Plusから SET LINESIZE 200 EXPLAIN PLAN SQL(上記で実行したUPDATE文) ; SELECT PLAN_TABLE_OUTPUT FROM TABLE(DBMS_XPLAN.DISPLAY()) ; を提示されては? [Oracle]タグは追加しましょう。