Turn on debugging and send the output. Also send the queries if you can so that we know what you are trying to query within reason of course.
Also make sure you are querying the same database as you are querying in with your jdbc driver. Also make sure you are using query properly, hitting the indexes and such. Also, if you are returning back large record sets, consider returning back smaller record sets, and if you can't, try using paginated results. I know this some of this seems rudimentary, but let's get rid of the obvious problems first. - Randall Svancara On Mon, 2008-01-28 at 17:56 +0100, Gerardo Corro Fuentes wrote: > Hi, > > I built a DAO with IBatis 2.2.0. Most of this DAO works properly, > however thre are a couple of queries that are very slow, it takes 2 > minutes for them to be completed while a plain JDBC querie takes only > three seconds. > > I verified the slow quieries many times, and they actually look very > similar to others that run very fast. > > I also Spring 1.2; commons DBCP 1.4. > > Thanks!!! > > > > The ibatis config file looks like: > > <settings > > cacheModelsEnabled="false" > > enhancementEnabled="true" > > maxSessions="64" > > maxTransactions="8" > > maxRequests="128" > > useStatementNamespaces="true"/> > > > > > > > > > > > > <?sml version="1.0" encoding="UTF-8" ?> > > <!DOCTYPE sqlMap > > PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" > > "http://www.ibatis.com/dtd/sql-map-2.dtd"> > > <sqlMap namespace="CurvaHoraria"> > > <typeAlias alias="curvaHoraria" type="com.db.dto.DTO1"/> > > <resultMap id="curvaHorariaResult" class="curvaHoraria"> > > <result property="guidPm" column="guid_pm"/> > > <result property="fecha" column="fecha"/> > > <result property="periodo1" column="valor_h01"/> > > <result property="periodo2" column="valor_h02"/> > > <result property="periodo3" column="valor_h03"/> > > <result property="periodo4" column="valor_h04"/> > > <result property="periodo5" column="valor_h05"/> > > <result property="periodo6" column="valor_h06"/> > > <result property="periodo7" column="valor_h07"/> > > <result property="periodo8" column="valor_h08"/> > > <result property="periodo9" column="valor_h09"/> > > <result property="periodo10" column="valor_h10"/> > > <result property="periodo11" column="valor_h11"/> > > <result property="periodo12" column="valor_h12"/> > > <result property="periodo13" column="valor_h13"/> > > <result property="periodo14" column="valor_h14"/> > > <result property="periodo15" column="valor_h15"/> > > <result property="periodo16" column="valor_h16"/> > > <result property="periodo17" column="valor_h17"/> > > <result property="periodo18" column="valor_h18"/> > > <result property="periodo19" column="valor_h19"/> > > <result property="periodo20" column="valor_h20"/> > > <result property="periodo21" column="valor_h21"/> > > <result property="periodo22" column="valor_h22"/> > > <result property="periodo23" column="valor_h23"/> > > <result property="periodo24" column="valor_h24"/> > > <result property="periodo25" column="valor_h25"/> > > </resultMap> > > <sql id="fragmento_fechas"> > > ( > > vwpm.f_desde_pf <![CDATA[<=]]> to_date(#fecha_desde#,'yyyymmdd') > > OR vwpm.f_desde_pf <![CDATA[<=]]> to_date(#fecha_hasta#,'yyyymmdd') > > ) > > AND ( > > vwpm.f_hasta_pf <![CDATA[>=]]> to_date(#fecha_desde#,'yyyymmdd') > > OR vwpm.f_hasta_pf <![CDATA[>=]]> to_date(#fecha_hasta#,'yyyymmdd') > > ) > > AND ( > > vwpm.f_desde_pm <![CDATA[<=]]> to_date(#fecha_desde#,'yyyymmdd') > > OR vwpm.f_desde_pm <![CDATA[<=]]> to_date(#fecha_hasta#,'yyyymmdd') > > ) > > AND ( > > vwpm.f_hasta_pm <![CDATA[>=]]> to_date(#fecha_desde#,'yyyymmdd') > > OR vwpm.f_hasta_pm <![CDATA[>=]]> to_date(#fecha_hasta#,'yyyymmdd') > > ) > > AND ( > > vwpm.f_desde_cpf <![CDATA[<=]]> to_date(#fecha_desde#,'yyyymmdd') > > OR vwpm.f_desde_cpf <![CDATA[<=]]> to_date(#fecha_hasta#,'yyyymmdd') > > ) > > AND( > > vwpm.f_hasta_cpf <![CDATA[>=]]> to_date(#fecha_desde#,'yyyymmdd') > > OR vwpm.f_hasta_cpf <![CDATA[>=]]> to_date(#fecha_hasta#,'yyyymmdd') > > ) > > AND ( > > vwpm.f_desde_apmpf <![CDATA[<=]]> to_date(#fecha_desde#,'yyyymmdd') > > OR vwpm.f_desde_apmpf <![CDATA[<=]]> to_date(#fecha_hasta#,'yyyymmdd') > > ) > > AND ( > > vwpm.f_hasta_apmpf <![CDATA[>=]]> to_date(#fecha_desde#,'yyyymmdd') > > OR vwpm.f_hasta_apmpf <![CDATA[>=]]> to_date(#fecha_hasta#,'yyyymmdd') > > ) > > AND ( > > vwpm.f_desde_cpm <![CDATA[<=]]> to_date(#fecha_desde#,'yyyymmdd') > > OR vwpm.f_desde_cpm <![CDATA[<=]]> to_date(#fecha_hasta#,'yyyymmdd') > > ) > > AND ( > > vwpm.f_hasta_cpm <![CDATA[>=]]> to_date(#fecha_desde#,'yyyymmdd') > > OR vwpm.f_hasta_cpm <![CDATA[>=]]> to_date(#fecha_hasta#,'yyyymmdd') > > ) > > AND ( > > vwpm.f_desde_cpma <![CDATA[<=]]> to_date(#fecha_desde#,'yyyymmdd') > > OR vwpm.f_desde_cpma <![CDATA[<=]]> to_date(#fecha_hasta#,'yyyymmdd') > > ) > > AND ( > > vwpm.f_hasta_cpma <![CDATA[>=]]> to_date(#fecha_desde#,'yyyymmdd') > > OR vwpm.f_hasta_cpma <![CDATA[>=]]> to_date(#fecha_hasta#,'yyyymmdd') > > ) > > AND ( > > vwpm.f_desde_tc <![CDATA[<=]]> to_date(#fecha_desde#,'yyyymmdd') > > OR vwpm.f_desde_tc <![CDATA[<=]]> to_date(#fecha_hasta#,'yyyymmdd') > > ) > > AND ( > > vwpm.f_hasta_tc <![CDATA[>=]]> to_date(#fecha_desde#,'yyyymmdd') > > OR vwpm.f_hasta_tc <![CDATA[>=]]> to_date(#fecha_hasta#,'yyyymmdd') > > ) > > </sql> > > <select id="obtenerCurvas" resultMap="curvaHorariaResult" > parameterClass="curvaHoraria"> > > SELECT distinct(guid_pm), fecha, valor_h01, valor_h02, valor_h03, > valor_h04, valor_h05, valor_h06, valor_h07, > > valor_h08, valor_h09, valor_h10, valor_h11, valor_h12, valor_h13, > valor_h14, valor_h15, valor_h16, valor_h17, > > valor_h18, valor_h19, valor_h20, valor_h21, valor_h22, valor_h23, > valor_h24, valor_h25 > > from FLUMEN.vw_puntos_medida_ve vwpm, flumen.variables_periodo vp, > flumen.periodovar p > > where vwpm.id_ccaa = vp.id_sitio > > and substr(vwpm.tarifa, 1, 1) = substr(vp.tarifa, 1, 1) > > and vp.id_var = p.id_var > > and p.fecha <![CDATA[>=]]> #fecha_desde# > > and p.fecha <![CDATA[<=]]> #fecha_hasta# > > AND > > <include refid="fragmento_fechas"/> > > order by guid_pm, fecha > > </select> > > <select id="obtenerPMs" resultClass="java.lang.String" > parameterClass="curvaHoraria"> > > select distinct(guid_pm) from FLUMEN.vw_puntos_medida_ve vwpm > > WHERE > > <include refid="fragmento_fechas"/> > > </select> > > </sqlMap> > > > > > > > > > > > > > > > ------------------------------------------------------------------ > This e-mail and the documents attached are confidential and intended > solely > for the addressee; it may also be privileged. If you receive this > e-mail > in error, please notify the sender immediately and destroy it. > As its integrity cannot be secured on the Internet, the Atos Origin > group > liability cannot be triggered for the message content. Although the > sender endeavours to maintain a computer virus-free network, the > sender does > not warrant that this transmission is virus-free and will not be > liable for > any damages resulting from any virus transmitted. > > Este mensaje y los ficheros adjuntos pueden contener informacion > confidencial destinada solamente a la(s) persona(s) mencionadas > anteriormente. Pueden estar protegidos por secreto profesional Si > usted > recibe este correo electronico por error, gracias de informar > inmediatamente > al remitente y destruir el mensaje. > Al no estar asegurada la integridad de este mensaje sobre la red, Atos > Origin no se hace responsable por su contenido. Su contenido no > constituye > ningun compromiso para el grupo Atos Origin, salvo ratificacion > escrita por > ambas partes. > Aunque se esfuerza al maximo por mantener su red libre de virus, el > emisor > no puede garantizar nada al respecto y no sera responsable de > cualesquiera > danos que puedan resultar de una transmision de virus > ------------------------------------------------------------------ >