SQLite Explain(説明)
SQLite ステートメントの前に、"EXPLAIN" キーワードまたは "EXPLAIN QUERY PLAN" フレーズを使用して、テーブルの詳細を説明できます。
EXPLAIN キーワードまたはフレーズを省略した場合、変更を加えると SQLite ステートメントのクエリ動作が発生し、SQLite ステートメントの動作方法に関する情報が返されます。
EXPLAIN および EXPLAIN QUERY PLAN からの出力は、対話的な分析とトラブルシューティングにのみ使用されます。
出力形式の詳細は、SQLite のバージョンによって異なる場合があります。
アプリケーションは EXPLAIN または EXPLAIN QUERY PLAN を使用すべきではありません。その正確な動作は可変であり、一部のみが記録されるためです。
構文
EXPLAINの構文は次のとおりです:
EXPLAIN [SQLite Query]
EXPLAIN QUERY PLANの構文は次のとおりです:
EXPLAIN QUERY PLAN [SQLite Query]
例
COMPANY テーブルに次のレコードがあるとします:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
次に、SELECT ステートメント内のExplain使用:
sqlite> EXPLAIN SELECT * FROM COMPANY WHERE Salary >= 20000;
これにより、次の結果が生成されます:
addr opcode p1 p2 p3 ---------- ---------- ---------- ---------- ---------- 0 Goto 0 19 1 Integer 0 0 2 OpenRead 0 8 3 SetNumColu 0 5 4 Rewind 0 17 5 Column 0 4 6 RealAffini 0 0 7 Integer 20000 0 8 Lt 357 16 collseq(BI 9 Rowid 0 0 10 Column 0 1 11 Column 0 2 12 Column 0 3 13 Column 0 4 14 RealAffini 0 0 15 Callback 5 0 16 Next 0 5 17 Close 0 0 18 Halt 0 0 19 Transactio 0 0 20 VerifyCook 0 38 21 Goto 0 1 22 Noop 0 0
次に、SELECT ステートメント内のExplain Query Plan使用:
SQLite> EXPLAIN QUERY PLAN SELECT * FROM COMPANY WHERE Salary >= 20000;
order from detail ---------- ---------- ------------- 0 0 TABLE COMPANYその他の拡張