FireDACでInterbaseの実行計画を確認する方法

提供: Support
移動先: 案内検索

問題

FireDACでInterbaseの実行計画を確認するため、FDQueryで「SET PLAN ON」コマンドを実行したのですがステートメントエラーになります。

解決

Interbaseの実行計画をFireDACで確認するには、TIBStatementを使用します。 以下は、Delphiで、InterbaseのサンプルデータベースのテーブルEMPLOYEEに対するSELECT文の実行計画を確認する際のコード例です。

// usesにFireDAC.Phys.IBWrapperを追加
FDQuery1.SQL.Clear;
FDQuery1.SQL.Add('Select * from Employee order by EMP_NO');
FDQuery1.Prepare;
Memo1.Text := TIBStatement(FDQuery1.Command.CommandIntf.CliObj).sql_get_plan;

Memo1.Text内に「PLAN(EMPLOYEE ORDER RDB$PRIMARY7)」が表示され、プライマリキーを使ったソートというオプティマイザの実行計画が確認できます。