Subject Re: Firebird Usage Question
Author Alexander V.Nevsky
--- In firebird-support@yahoogroups.com, "bazarin" <wagner@b...> wrote:
> Set:
>
> While waiting for clues, I did changed the SQL for parameters, like:
>
> DM.cdsPalavra.Params.ParamBtName
> ('pfLetra').AsString:= '''%'+Letra+'''';
> DM.cdsPalavra.Params.ParamBtName
> ('piLetra').AsString:= ''''+Letra+'%''';
>
> and the SQL to:
>
> SQL_Text:='select * from palavra where original like :piLetra and
> ordenada not like :pfLetra and original=ordenada;
>
> I could get a little bit better performance (less than 5% I think),
> but the final results are the same.

If you replace Params.ParamByName for Params[I] you can get up to
15% more.

> I expected that Firebird could deal with concurrent requests in the
> same table doing a very good conflict(lock) administration, but
> that's something I am not convinced to.

This is nothing to do with lock administration, only to
a) disk heads movement speed
b) network capacity
c) cache refilling.

> Another thing, as this is a test, for sure this SQL is not the one's
> I will use so 'original starting :Param1' could increase the
> performance, but the will not solve the problem (How to run 100 users
> acessing the same database with very intensive SQL requests with a
> good performance - I considered a good performance if 100 users could
> run their SQL with some percentage time of one user and not 100 times
> of that).

Well indexed queries which returns reasonable sized result set
usually don't overload server. When CPU becomes critical resource for
complex queries, people usually uses Classic on SMP machine.

Best regards,
Alexander.