我需要向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());
}
}