ぽにょろん

思いついたこととメモ

Firebird .NETProviderで実行計画を取得する

目次

環境

実装

FBCommandクラスにCommandPlanメソッドがあるので、それを呼び出すだけです。

using (var con = new FbConnection("接続文字列"))
using (var command = con.CreateCommand())
{
    con.Open();
    command.CommandText = @"select * from rdb$indices where rdb$system_flag = 0";
    command.ExecuteReader();
    Console.WriteLine(command.CommandPlan);
}

このメソッド、Browsable属性がfalseですが、特に問題ないでしょう。

いわゆる、Isqlでいう set plan on; の状態なので、SQLを実行しないと実行計画を取得できません。

実行計画の見方

他のDBMSの実行計画と比べると、Firebirdは少し特徴的に見えますが、そういう時は
Referenceを参照しましょう。
ちゃんとDocumentが用意されてます。

github.com