Also make sure logging is disabled.
Clinton
On 3/17/06, Larry Meadors <[EMAIL PROTECTED]> wrote:
Also, run the query several times, because on the first pass, it is
setting up the parameterMap.
long t1,t2;
t1 = System.currentTimeMillis();
for(int i = 0; i++; i < 10) sqlMap.queryForList("getExposuresForObsId", obsID);
t2 = System.currentTimeMillis();
System.out.println("time to run queryForList 10x is " + (t2-t1));
Larry
On 3/17/06, Sven Boden <[EMAIL PROTECTED]> wrote:
>
> The pool query is not used as Pool.PingEnabled is false. ;-)
>
> Try rerunning it setting cacheModelsEnabled to false (for a performance
> run, in a real system if you have a cache hit the cache speeds up
> processing, for a single run a cache slows down), and switch off
> debugging if you have it on.
>
> Regards,
> Sven
>
> Larry Meadors wrote:
>
> ><property name="Pool.PingQuery" value="select * from data_set"/>
> >
> >What is "data_set", and how long does "select * from data_set" take to run?
> >
> >Larry
> >
> >
> >On 3/17/06, Nicolas Fajersztejn <[EMAIL PROTECTED]> wrote:
> >
> >
> >> Hi,
> >>
> >> I'm new to iBatis. I have been using it for a couple of months and really
> >>like it.
> >>
> >> However, now I am having problems with a very simple query. This is the
> >>mapping I have:
> >>
> >> <select id="getExposuresForObsId"
> >>resultClass="xat.proprietarydates.objects.Exposure">
> >> SELECT
> >> obsid obsID,
> >> inst inst,
> >> epic_filter epicFilter
> >> FROM xsa..exposures
> >> WHERE
> >> obsid = #value#
> >> </select>
> >>
> >>
> >> obsid is a numeric value. I am passing an Integer as parameter and this
> >>query takes about 1400 ms to execute!!!
> >> The same query run with explicit value (obsid = 100 for example) takes only
> >>48 ms.
> >>
> >> Does it really take so much time to convert an Integer and build up the
> >>query or am I missing something?
> >>
> >> This is my config file in case it helps:
> >>
> >> <transactionManager type="JDBC">
> >> <dataSource type="SIMPLE">
> >> <property name="JDBC.Driver" value="${driver}"/>
> >> <property name="JDBC.ConnectionURL" value="${url}"/>
> >> <property name="JDBC.Username" value="${username}"/>
> >> <property name=" JDBC.Password" value="${password}"/>
> >> <property name="JDBC.DefaultAutocommit" value="true"/>
> >> <!-- The following are optional -->
> >> <property name="Pool.MaximumActiveconnections" value="10"/>
> >> <property name="Pool.MaximumIdleConnections" value="5"/>
> >> <property name=" Pool.MaximumCheckoutTime" value="120000"/>
> >> <property name="Pool.TimeToWait" value="10000"/>
> >> <property name="Pool.PingQuery" value="select * from data_set"/>
> >> <property name="Pool.PingEnabled" value="false"/>
> >> <property name="Pool.PingConnectionOlderThan" value="0"/>
> >> <property name=" Pool.PingConnectionNotUsedFor" value="0"/>
> >> </dataSource>
> >> </transactionManager>
> >>
> >> <settings
> >> cacheModelsEnabled="true"
> >> enhancementEnabled="true"
> >> lazyLoadingEnabled="true"
> >> maxRequests="32"
> >> maxSessions="10"
> >> maxTransactions="5"
> >> useStatementNamespaces="false"
> >> />
> >>
> >>
> >> And the Java code:
> >>
> >> public static List getExposuresForObsId(Integer obsID) {
> >> SqlMapClient sqlMap = XATSqlConfig.getSqlMapInstance();
> >> List exposureList = null;
> >> try {
> >> long t1 = System.currentTimeMillis ();
> >> exposureList = sqlMap.queryForList("getExposuresForObsId",
> >>obsID);
> >> long t2 = System.currentTimeMillis();
> >> System.out.println("time queryForList is " + (t2-t1));
> >>
> >> }
> >> catch (SQLException e) {
> >> logger.log(Level.WARNING, "SQLException getting exposures list:
> >>" + e);
> >> }
> >> return exposureList;
> >> }
> >>
> >>
> >>
> >> I would gladly appreciate your help.
> >>
> >> Thanks.
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >
> >
> >
> >
>
>
