读书人

为什么大量的连接不能释放?该怎么处理

发布时间: 2012-01-16 23:36:51 作者: rapoo

为什么大量的连接不能释放?
Oracle 9i的数据库

SELECT sql_text,COUNT(*) FROM v$sql s , v$session se WHERE se.prev_hash_value =s.hash_value GROUP BY sql_text

发现sql_text中大量的下面语句不能释放

select * from code_m where (name like '%吊坠% ' or key_word like '%吊坠% ') and name <> '吊坠 '


请问如何解决,附程序

public String getRelateKeyword(String name)throws NamingException,SQLException
{
String word= " ",tempStr= " ";
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
try
{
conn=pool.getConnection();
tempStr=getKeywordbyName(name,conn);
String sql= "select * from code_m where (name like '% "+name+ "% ' or key_word like '% "+name+ "% ') and name <> ' "+name+ " ' ";
if(!tempStr.equals( " "))
sql= "select * from code_m where (name like '% "+name+ "% ' or key_word like '% "+tempStr+ "% ') and name <> ' "+name+ " ' ";
pstmt=conn.prepareStatement(sql);
rs=pstmt.executeQuery();
while(rs.next())
{
word+=rs.getString( "name ")+ ", ";
}
}finally{
pool.cleanup(conn,pstmt,rs);
}
return word;
}



[解决办法]
pool 是什么?
[解决办法]
pool是线程池...什么叫不能释放啊?直接释放CONNECTION不就完了吗?
[解决办法]
v$sql,v$session采用的是堆栈的机制,先进先出,实际就是相当于一个缓存,总之就是oracle的一种实现机制,应该不是没有进行释放的sql语句

读书人网 >Java Web开发

热点推荐