2016-07-13 8 views
0

私はSqlConnection.RetrieveStatisticsを動作させることはできません。常に、すべて0の18要素のハッシュテーブルを返します。SqlConnection.RetrieveStatisticsを動作させるには?

私がしたいこと:私のテスト環境では、リクエスト処理中に実行されたSQLコマンドの数を各httpresponseのヘッダーに追加します。

私のアプリは(Rest)webservicesのみです。私は1つのSQL接続要求を持っています(要求ごとに1つのNHibernateセッション)。

要求が処理された後、私が行います

var connection = statelessSession.NHSession.Connection as ReliableSqlDbConnection; 
if (connection != null) 
    queries += Convert.ToInt32(connection.ReliableConnection.Current.RetrieveStatistics()["Prepares"]); 

数は常に0である、と私は、この行に壊れたとき、私はすべての数字がゼロであることがわかります。生産に私は、SQL Azureのを使用していますので、

var ret = module.OpenSession(); 
var connection = (ret.Connection as ReliableSqlDbConnection); 
if(connection != null) 
{ 
    connection.ReliableConnection.Current.StatisticsEnabled =true; 
    ret.CreateSQLQuery("SET STATISTICS IO ON; SET STATISTICS TIME ON;").ExecuteUpdate(); 
    connection.ReliableConnection.Current.ResetStatistics(); 
} 
return ret; 

私はhttps://github.com/MRCollective/NHibernate.SqlAzure使用しますが、地元では、私はSQL Serverの2014のDeveloper Editionのインスタンスを持っている:セッションが開かれた後

、私がやります。私のデータベースの場合

、私が持っている: 自動

私が何かを逃したの真の 自動更新統計の真の統計を作成しますか?

答えて

0

この原因は、NHibernateがリクエストごとに新しい接続を開くためです。これが毎回統計を失っている理由です。

関連する問題