질문을 위해 간단히 로직을 기술하면 이렇습니다..
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
string SQL = "select * from 조회하고자하는 table";
NpgsqlCommand cmd = new NpgsqlCommand(SQL, conn);
NpgsqlDataAdapter ad = new NpgsqlDataAdapter(cmd);
DataSet ds = new DataSet();
ad.Fill(ds, "table명");
GridView1.DataSource = ds.Tables["table명"];
GridView1.DataBind();
if (conn.State == ConnectionState.Open)
{
conn.Close();
//conn.ClearPool();
}
쿼리는 정상이며 천건정도 조회되고, 쿼리스피드는 느리지 않습니다. 처음에는 잘 조회 되지만
여러번 조회하다 보면 조회하는 속도가 느려지면서 타임아웃이 나고 프로그램이 뻗어 버리네요..
다음과 같은 에러 메세지 창이 뜹니다.
-> Timeout while getting a connection from pool
지금 사용하고 있는 pgsql은 8.3 버젼이고 커넥션이 닫히지 않고 계속 열려있는 것 같은 느낌이 드는데요..
어떻게 해결하는 방법이 좋을지 궁금해서 여쭤봅니다.
해결점을 알고 계신다면 한수 부탁드리겠습니다^^;. 수고하세요~~~ |