【发布时间】:2017-11-30 23:39:21
【问题描述】:
我有动态仪表板,每 3 秒有 20 个从 oracle 到 c# winforms 的查询。
目前我使用如下;
OracleConnection con = new OracleConnection(oradb);
con.Open();
OracleCommand cmd1 = new OracleCommand(getSystime, con);
OracleDataReader dr1 = cmd1.ExecuteReader();
dr1.Read();
.
.
.
.
.
.
OracleCommand cmd15 = new OracleCommand(getSqltime, con);
OracleDataReader dr15 = cmd15.ExecuteReader();
dr15.Read();
con.Dispose();
con.Close();
目前,当我检查时,该应用程序有 9 个非活动会话,并且大约有 100 个打开的光标。数字没有增加。即使我在 1 小时后检查,我的应用程序中有 9 个活动/非活动和近 100 个 open_cursor。
这将是我的第一个应用程序,所以我没有任何经验。
我该如何解释它?
【问题讨论】:
-
我猜 OracleCommand 实现了 IDisposable 接口,它允许你将代码包装在 using 语句中,然后你确定它会在它完成后被释放
-
@WernfriedDomscheit 你能不能用我上面的代码写一个答案,我可以接受