DB连接访问时间

时间:2016-09-29 12:05:58

标签: c# database

我需要向postgredb写入大量数据。 PG connection_limit设置为200.我需要每秒写入~5000个值。如果我为每个查询打开一个新连接,我会收到太多客户端错误。但是如果我只使用一个连接,那么插入〜5000个值就会慢。

在这种情况下管理连接的正确方法是什么?

目前我打开并关闭每个查询的连接

public static async Task WriteValueAsync(Item Item)
{
    try
    {
        using (NpgsqlConnection con = new NpgsqlConnection(constring))
        {
             con.Open();
             String sql = "INSERT INTO \"" + Item.ID + "\" (...) VALUES (...)";
             NpgsqlCommand cmd = con.CreateCommand();
             cmd.CommandText = sql;
             await cmd.ExecuteNonQueryAsync();
             cmd.Dispose();
             con.Close();
        }
    }
    catch (Exception e)
    {
        Debug.WriteLine("DB WriteValueAsync: " + e.ToString());
    }
}

0 个答案:

没有答案