我用VC编写ADO连接Oracl数据库的程序。
 _ConnectionPtr pMyConnect=NULL;
 HRESULT hr=pMyConnect.CreateInstance(__uuidof(Connection)));
pMyConnect.open();
recordset.open()
pMyConnect.close();
程序中保证每次都是新创建连接,执行后断开连接。问题是:
第一次执行程序时,pMyConnect.CreateInstance执行的时间很长,有时能达到10秒以上。
之后再执行程序时,pMyConnect.CreateInstance执行的时间较短,只有0.2秒。
若隔好几分钟后,执行该程序,pMyConnect.CreateInstance执行的时间又很长,有时能达到10秒以上。过去用这个程序连接SQL Server没有发现这个问题。是否Oracle自己内部有连接池的设置。所以第一次连接时,创建连接资源耗时较长?但也不至于需要10秒以上吧。有时还要30多秒呢。