少し問題がありますが、誰かが私にアドバイスをしてくれるといいのですが。 SQLコマンドを実行していますが、大量のデータがあるため、データを返すには約2分かかるようです。しかし、デフォルトの接続時間は30秒です。これをどのように増やし、このコマンドに適用しますか?
public static DataTable runtotals(string AssetNumberV, string AssetNumber1V)
{
DataTable dtGetruntotals;
try
{
dtGetruntotals = new DataTable("Getruntotals");
//SqlParameter AssetNumber = new SqlParameter("@AssetNumber", SqlDbType.VarChar, 6);
//AssetNumber.Value = AssetNumberV;
SqlParameter AssetNumber = new SqlParameter("@AssetNumber", SqlDbType.VarChar, 10);
AssetNumber.Value = AssetNumberV;
SqlParameter AssetNumber1 = new SqlParameter("@AssetNumber1", SqlDbType.VarChar, 10);
AssetNumber1.Value = AssetNumber1V;
SqlCommand scGetruntotals = new SqlCommand("EXEC spRunTotals @AssetNumber,@AssetNumber1 ", DataAccess.AssetConnection);
// scGetruntotals.Parameters.Add(AssetNumber);
scGetruntotals.Parameters.Add(AssetNumber);
scGetruntotals.Parameters.Add(AssetNumber1);
SqlDataAdapter sdaGetruntotals = new SqlDataAdapter();
sdaGetruntotals.SelectCommand = scGetruntotals;
sdaGetruntotals.Fill(dtGetruntotals);
return dtGetruntotals;
}
catch (Exception ex)
{
MessageBox.Show("Error Retriving totals Details: Processed with this error:" + ex.Message);
return null;
}
}
大量のデータがあるため、データを返すには約2分かかります
悪いデザイン。ここでページングの使用を検討してください。
デフォルトの接続時間は30秒ですが、これを増やすにはどうすればよいですか
コマンドのタイムアウトに直面しているため、 sql command のタイムアウトを増やす必要があります。このようにコマンドで指定できます
// Setting command timeout to 2 minutes
scGetruntotals.CommandTimeout = 120;
SqlCommand
のタイムアウトを追加します。時間は秒単位です。
// Setting command timeout to 1 second
scGetruntotals.CommandTimeout = 1;
応答には2分かかるため、以下のコードを追加してタイムアウトを3分に増やすことができます
scGetruntotals.CommandTimeout = 180;
注:パラメーター値は秒単位です。
コマンドタイムアウトを2分に設定する
scGetruntotals.CommandTimeout = 120;
ただし、ストアドプロシージャを最適化して、その時間を短縮できます。のような
CommandTimeoutを120に設定することは推奨されません。上記のページネーションを使用してみてください。 CommandTimeoutを30に設定することは、通常と見なされます。それ以上のものは悪いアプローチと見なされ、通常、実装に問題があると結論付けます。現在、世界はMiliSeconds Approachで実行されています。