Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 6 of 6 total
Thread sensitive query and locate performance...
Tue, Sep 13 2011 6:20 AMPermanent Link

Stefano Monterisi

Hi Tim,
in upgrade from DBISAM to EDB I have "crashed" against Devexpress
incremental search in cxgrid (no locate) and solved it with a code change...
Now, I want a very high performant locate on EDB query so I have this
question:
A Locate on EDB sensitive query (order by...) can use index in engine so it
can performe fast index seek, or it scroll the entire query result? (I hope
the answer is the first, but I think that you tell me the second one Smile
I want to obtain fast incremental searches on a query (select ... where...
order by....) instead of a table. Any hint?
Good job.

Stefano Monterisi


Documento senza titolo Stefano Monterisi - monterisi@sesamoweb.it Sesamo
Software S.p.A. Via Adamello, 2 71042 Cerignola (Fg) Tel.: +39 0885 416969 -
421501 - 421502 - 416392 Fax: +39 0885 444925 Filiale Via Premuda, 3 00195
Roma Tel.: +39 06 3220238 Fax: +39 06 32646539 www.sesamoweb.it D.L. 30
giugno 2003 n. 196 e D.L. 24 dicembre 2003 n. 354 (tutela dei dati
personali) ------------------------------------------------------------------------------------------------------
INFORMAZIONI STRETTAMENTE CONFIDENZIALI Questo messaggio di posta
elettronica contiene informazioni di carattere confidenziale rivolte
esclusivamente al destinatario sopra indicato. E' vietato l'uso, la
diffusione, distribuzione o riproduzione da parte di ogni altra persona. Nel
caso aveste ricevuto questo messaggio di posta elettronica per errore, siete
pregati di segnalarlo immediatamente al mittente e distruggere quanto
ricevuto (compresi i file allegati) senza farne copia. Qualsivoglia utilizzo
non autorizzato del contenuto di questo messaggio costituisce violazione
dell'obbligo di non prendere cognizione della corrispondenza tra altri
soggetti, salvo più grave illecito, ed espone il responsabile alle relative
conseguenze. ------------------------------------------------------------------------------------------------------
CONFIDENTIALLY NOTICE This e-mail transmission may contain legally
privileged and/or confidential information. Please do not read it if you are
not the intended recipient(S). Any use, distribution, reproduction or
disclosure by any other person is strictly prohibited. If you have received
this e-mail in error, please notify the sender and destroy the original
transmission and its attachments without reading or saving it in any manner.
Questo messaggio prima dell'invio è stato controllato con Kaspersky
Antivirus 6.0

Tue, Sep 13 2011 9:04 AMPermanent Link

Uli Becker

Stefano,

> A Locate on EDB sensitive query (order by...) can use index in engine so it
> can performe fast index seek, or it scroll the entire query result?

Sure it does, and if all indexes are set properly you shouldn't have any
problems.

Please be aware that you should define your index "CaseInsensitive" if
you want to use a CaseInsensitive search. The collation has always to match!

You can test your query in EDBManager by opening a new query window and
checking "Request Execution Plan" in the Options panel. After executing
your query you can see everything in detail.
If an index is *not* set properly, you'll see a row scan there and get
the right hint.

Example:

Filtering
---------

The following filter condition was applied to the MyTable table:

"MyDate" < CURRENT_DATE()

Row scan (MyTable): 18756 rows, 11253600 bytes estimated cost

Hint: Create index (MyTable) on column "MyDate" for possible better
performance

Hope that helps.

Regards Uli
Tue, Sep 13 2011 12:18 PMPermanent Link

Stefano Monterisi

Hi Uli, thanks for help,
but please note that I don't talk about quering operation, but a "locate" on
query result......
Thanks!

Stefano

"Uli Becker" <johnmuller54@googlemail.com> ha scritto nel messaggio
news:D3128FD0-7C26-4E75-A3D4-0E2027EF774C@news.elevatesoft.com...
> Stefano,
>
>> A Locate on EDB sensitive query (order by...) can use index in engine so
>> it can performe fast index seek, or it scroll the entire query result?
>
> Sure it does, and if all indexes are set properly you shouldn't have any
> problems.
>
> Please be aware that you should define your index "CaseInsensitive" if you
> want to use a CaseInsensitive search. The collation has always to match!
>
> You can test your query in EDBManager by opening a new query window and
> checking "Request Execution Plan" in the Options panel. After executing
> your query you can see everything in detail.
> If an index is *not* set properly, you'll see a row scan there and get the
> right hint.
>
> Example:
>
> Filtering
> ---------
>
> The following filter condition was applied to the MyTable table:
>
> "MyDate" < CURRENT_DATE()
>
> Row scan (MyTable): 18756 rows, 11253600 bytes estimated cost
>
> Hint: Create index (MyTable) on column "MyDate" for possible better
> performance
>
> Hope that helps.
>
> Regards Uli
>

Wed, Sep 14 2011 3:34 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Stefano


Your response to Uli's post was pretty much the same as mine, but then I thought about it and he's right. However, to expand it a bit further my understanding is that there are two possibilities with a query - either sensitive or insensitive. With a sensitive result its essentially treated as a table so you have access to the underlying indices. With an insensitive result the only "index" available is the one used to order the result set.

One of Uli's main points (not very well stated) is that the ORDER BY has to match exactly an existing index otherwise the query will be insensitive hence the comment about testing in EDBManager.

In addition to that its easy enough to set up a little test bed to see exactly what does happen and what timings you can achieve.

Roy Lambert [Team Elevate]
Wed, Sep 14 2011 10:45 AMPermanent Link

Stefano Monterisi

Hi Roy,
all I want to hear is that "With a sensitive result its essentially treated
as a table so you have access to the underlying indices"..... Smile
Uli's consideration are welcome and rights, ok!
Many thanks, for you and for Uli Smile

Roy, I have another problem in porting DBISAM to EDB with Devexpress grids
(I have to change logic in incremental search, etc..).
Now, In query result the vertical scrolling bar don't respect record
position but it present the "3 state". How I can obtain the corrett position
in the grid on the scrollbar?

Thanks in advance!

Stefano Monterisi



"Roy Lambert" <roy@lybster.me.uk> ha scritto nel messaggio
news:C3B47FE7-C604-4BE9-A7DD-649C1E7D83D9@news.elevatesoft.com...
> Stefano
>
>
> Your response to Uli's post was pretty much the same as mine, but then I
> thought about it and he's right. However, to expand it a bit further my
> understanding is that there are two possibilities with a query - either
> sensitive or insensitive. With a sensitive result its essentially treated
> as a table so you have access to the underlying indices. With an
> insensitive result the only "index" available is the one used to order the
> result set.
>
> One of Uli's main points (not very well stated) is that the ORDER BY has
> to match exactly an existing index otherwise the query will be insensitive
> hence the comment about testing in EDBManager.
>
> In addition to that its easy enough to set up a little test bed to see
> exactly what does happen and what timings you can achieve.
>
> Roy Lambert [Team Elevate]
>
>

Wed, Sep 14 2011 11:20 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Stefano


>Roy, I have another problem in porting DBISAM to EDB with Devexpress grids
>(I have to change logic in incremental search, etc..).
>Now, In query result the vertical scrolling bar don't respect record
>position but it present the "3 state". How I can obtain the corrett position
>in the grid on the scrollbar?

You can't. Way back with ElevateDB Tim asked if people would prefer performance with the three state bar or having the bar right but slowing things down. We went for speed.

Roy Lambert [Team Elevate]
Image