1

サイトマップを生成するプログラムを書いています。重複を避けるために、見つかったリンクを保存するために MSSQL Server を使用しています。このプロセス中に、何百万ものリンクを読み書きする可能性があり、読み書きのプロセスにはそれらの間のギャップがほとんどない場合があります (つまり、データベースへの各アクセス間の時間は非常に小さいということです)。

プログラムの開始時に接続を開き、最後に閉じることができるかどうかを知りたいです。一部のサイトマップの作成には数日かかる場合があることを考慮してください。それとも、データベースにアクセスするたびに接続を開いたり閉じたりするのが賢明ですか?

ところで、私はローカルでSQLサーバーを使用しています。

4

5 に答える 5

3

あなたの質問に対する答えは、接続プーリング機能です。

必要なときにだけ接続を開き、データにアクセスし、すぐに接続を閉じて破棄することを常にお勧めします。

確かに特定の勤務パターンが存在する

using(SqlConnection con = new SqlConnection(.....))
{
   ... do your work with the database here ....
}

using ステートメントは、開始時に作成されたオブジェクトが閉じられ、閉じ中かっこで配置されることを保証します。データベース コードで例外が発生した場合でも。

これは、コードを最適化できないという意味ではありません。たとえば、いくつかのサイトマップをまとめて 1 つのショットで作成することもできますが、通常は単純な作業パターンに従って、できるだけ早く作業を終了し、後で最適化を心配するのが最善です。

于 2013-05-07T10:16:41.357 に答える
0

次のコードを使用できます。

SqlConnection conn;
try
{
    conn = new SqlConnection(_dbconnstr));
}
catch
{
    //exceptions are bubbled
    throw;
}
finally
{
    //Dispose is always called
    conn.Dispose();
}

お役に立てれば!

于 2013-05-07T10:16:51.020 に答える