Я пытаюсь использовать библиотеку DDTek Ado. Net для Sybase Server в C#, чтобы найти план показа запроса.
Мне было интересно, знает ли кто-нибудь, как можно использовать библиотеку Sybase DDtek сделать это. Вот пример кода из того, что я пробовал раньше:
using (SybaseConnection dbConnect = new SybaseConnection())
{
dbConnect.ConnectionString = ConfigurationManager.ConnectionStrings["SybaseDB"].ConnectionString;
dbConnect.StatisticsEnabled = true;
dbConnect.Open();
dbConnect.InfoMessage += OnInfoMessage;
SybaseCommand cmd = new SybaseCommand { CommandTimeout = 1000, Connection = dbConnect };
SybaseCommand cmd2 = new SybaseCommand { CommandTimeout = 1000, Connection = dbConnect };
cmd.CommandText = "SET SHOWPLAN ON";
// int ans = cmd.ExecuteNonQuery();
cmd2.CommandText = mainSql;
SybaseDataReader sDR = cmd2.ExecuteReader();
// var ansp = cmd2.ExecuteNonQuery();
//ans = cmd.ExecuteNonQuery();
String plan = String.Empty;
//sql.ToString();
var stats1 = dbConnect.RetrieveStatistics();
//var ans = cmd.ExecuteScalar();
var stats2 = dbConnect.RetrieveStatistics();
//.ExecuteNonQuery(); // no value needed in return
//cmd.CommandText = "SET SHOWPLAN OFF";
//cmd.ExecuteNonQuery();
dbConnect.Close();
dbConnect.Dispose();
}
Где основная Sql Переменная - это вызов хранимой процедуры вокруг запроса select с строками:
set showplan on
--set noexec on
set fmtonly on
При запуске в Rapid SQL создается план показа без возвращаемых строк данных. Использование отладчика для детализации возвращаемого объекта не дало никакой информации о плане показа. Возможно, я искал не в том месте?