He-he. I think that only MS SQL server could use sp_executesql procedure
because it is MS SQL procedure only. Firebird AFAIR have EXECUTE_STATEMENT
but it couldn't be used with parameterized queries.
 Does MySQL have something like sp_executesql feature? Does MySQL (e.g.)
performance differs for plain-text and parameterized query?

> The best place to keep this convertion rule will be the 
> provider.config
> Each provider tag need to define new attributes to represent 
> each rule, 
> Something like this
> <provider nullValuePattern="null"
>           dateTimePattern="#?#" .../>

 One provider - odbc e.g. could be used to access MS SQL and MySQL servers.
In such case two the same providers should be added with different names and
patterns. Is it right even for MS SQL specific feature?

> A new setting in sqlMap.config could also be set to allow or 
> not the use of parameters embedded in sql text statement.
> 
> Something like this
> <setting allowEmbeddedParameters"true|false"/>

> > Hello.
> > 
> > Test code was written. I could say that on the MS SQL 
> queries without
> > parameters works much faster than via sp_executesql.
> > 
> > I see some problems with converting parameter values to the 
> string. Could
> > it be discussed here?
> > 
> > Parameter values could be embedded to the command text for the Input
> > parameters only (its not a big problem - just FYI).
> > 
> > The problem is:
> > Does all servers accept "NULL" in the query string as null value?
> > DateTime, string, numeric variables should be correctly 
> corrected to the
> > string representation for each server.
> > Does iBATIS contain such rules now? Somewhere in the 
> session parameters or
> > elsewhere?
> > Should convertion rules be as additional options for the 
> sqlmap.config
> > "database" element?
> > May be additional attribute should be added for each 
> statement - should be
> > parameters embedded or not? Or a global option for the database?
> > 
> > Thank you.
> > 
> > > -----Original Message-----
> > > From: Gilles Bayon [mailto:[EMAIL PROTECTED] 
> > > Sent: Saturday, January 01, 2005 10:32 PM
> > > To: ibatis-user-cs@incubator.apache.org
> > > Subject: RE: MS SQL slow query performance
> > > 
> > > Fine idea, I have created a JIRA issue of your improvement.
> > > 
> > > Happy New Year.
> > > -Gilles
> > > 
> > > -----Message d'origine-----
> > > De : Alexey Boroday [mailto:[EMAIL PROTECTED] 
> > > Envoyé : vendredi 31 décembre 2004 08:27
> > > À : ibatis-user-cs@incubator.apache.org
> > > Objet : RE: MS SQL slow query performance
> > > 
> > > Hello
> > > 
> > > I see that SqlCommand executes commands with parameters with 
> > > sp_execsql.
> > > But it is too slow. 
> > > My proposition is parse CommandText and replace parameter 
> names with
> > > parameter values inside CommandText e.g.
> > > 
> > > Lets say we have command 
> > > 
> > > delete from Table1 where id = @id
> > > 
> > > so this cammand will be passed to the server as 
> > > 
> > > exec sp_executesql N'delete from Table1 where id = @P1 ', N'@P1
> > > nvarchar(2)', N'5'
> > > 
> > > This command performance isn't very differs from the plain 
> > > text command.
> > > But for complex select query performance very much slow. The 
> > > same query
> > > without parameters works faster.
> > > I'd like to propose inside iBATIS (somewhere, I cann't still 
> > > find where)
> > > parse command text and replace params via their values in the 
> > > CommandText.
> > > After that into the server will be posted query like this:
> > > 
> > > delete from Table1 where id = 5
> > > 
> > > May I try to implement such behaviour as an option?
> > > 
> > > Happy New Year.
> > 
> > 
> > 
> ______________________________________________________________
> _____________
> > 
> > This communication is confidential and may be legally privileged. 
> > If you believe you are not an intended recipient, please 
> inform the sender, 
> > delete the e-mail and do not copy, print or use it or 
> disclose it to others. 
> > You can inform the sender by replying to this e-mail or by 
> telephone (+380 44 4906080).
> > 
> > 
> 
> 
> Accédez au courrier électronique de La Poste : www.laposte.net ;
> 3615 LAPOSTENET (0,34 /mn) ; tél : 08 92 68 13 50 (0,34/mn)
> 


___________________________________________________________________________

This communication is confidential and may be legally privileged. 
If you believe you are not an intended recipient, please inform the sender, 
delete the e-mail and do not copy, print or use it or disclose it to others. 
You can inform the sender by replying to this e-mail or by telephone (+380 44 
4906080).


Reply via email to