Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Speed Orderkeycount

418 views
Skip to first unread message

D.J.W. van Kooten

unread,
Dec 31, 2012, 9:29:27 AM12/31/12
to
March this year we found that COUNT() litteraly counted all records.
We use it to show the number of e-mails in a bBrowser and obviously
this caused unacceptable delay in displaying them. We also found this
was not the case with OrderKeyCount.

However, without a change in our code, we found that the delays are
back, and this time in OrderKeyCount. This use to directly give an end
result and now it can take up to some minutes!

I am not sure when it started, SP4, SP4a, Windows update...

Any ideas about it would be appreciated.

Dick

dlzc

unread,
Dec 31, 2012, 1:39:14 PM12/31/12
to
Dear D. J. W. van Kooten:

On Monday, December 31, 2012 7:29:27 AM UTC-7, D. J. W. van Kooten wrote:
> March this year we found that COUNT() litteraly
> counted all records.

COUNT is short for the xBase/Clipper
COUNT FOR ... which spans the database in current order.

How about reccount()?

> However, without a change in our code, we found
> that the delays are back, and this time in
> OrderKeyCount. This use to directly give an end
> result and now it can take up to some minutes!

As workaround, you might try the dbOrdInfo() class, if VO has that.

Sorry I cannot actually answer your question, as posed.

David A. Smith

Karl Faller

unread,
Dec 31, 2012, 1:44:37 PM12/31/12
to
David,
>As workaround, you might try the dbOrdInfo() class, if VO has that.
it has ;-)

Best wishes for 2013!
Karl

Gerhard Bunzel

unread,
Jan 2, 2013, 7:52:43 AM1/2/13
to
Dick,

> I am not sure when it started, SP4, SP4a, Windows update...

Is there a SP4a available for VO2.8???

TIA

Gerhard



"D.J.W. van Kooten" <pub...@ic2remove.this.com> schrieb im Newsbeitrag
news:3983e852pa5rpb5av...@4ax.com...

D.J.W. van Kooten

unread,
Jan 2, 2013, 9:58:44 AM1/2/13
to
On Mon, 31 Dec 2012 10:39:14 -0800 (PST), dlzc <dl...@cox.net> wrote:

Hello David,


>How about reccount()?

I think I used that....being the slow one.
>
>As workaround, you might try the dbOrdInfo() class, if VO has that.


Thanks for the suggestion. It's actually
Server:OrderInfo(DBOI_KEYCOUNT) but it gives the same performance
problem as Orderkeycount. And I am sure the latter has worked for
months without problems.

I find that on a direct access to the disk, it is only slow
(counting...) on the first startup; later changes are immediate. On
PC's that access the databasw via the network it is slow all the time.

I can not explain this....

DIck

Dave Francis

unread,
Jan 2, 2013, 3:08:12 PM1/2/13
to
Dick,

IIRC the state of SetDeleted() is important for speed when using CDX functions. It's one of the reasons we decided (years ago :o) to show all records, have ! Deleted() as a condition on all live tags and have a separate DELETED tag with Deleted() as the condition.

It made sense once you thought how the CDX tag was built. It can simple look at the number of records in the CDX tag between 2 points without having to examine each one to see if it is deleted.

HTH

Dave Francis

Urs Eggmann

unread,
Jan 2, 2013, 6:02:03 PM1/2/13
to
Hi Dick,

I introduced my time measurement into the Init as follows. All methods were
very fast with 55'000 records.
How many records do you have in your dbf and how many are deleded?

regards
Urs

nBeginn := timeGetTime()
? SELF:oDCbBrowser1:Server:RECCOUNT
nEnde := timeGetTime()
? nEnde - nBeginn , ' milliSec' // 0 mSec ! !
SELF:oDCbBrowser1:Server:GoTop()
?
nBeginn := timeGetTime()
? SELF:oDCbBrowser1:Server:Count()
nEnde := timeGetTime()
? nEnde - nBeginn , ' milliSec' // 55 mSec
SELF:oDCbBrowser1:Server:GoTop()

nBeginn := timeGetTime()
? SELF:oDCbBrowser1:Server:OrderKeyCount()
nEnde := timeGetTime()
? nEnde - nBeginn , ' milliSec' // 9 mSec
SELF:oDCbBrowser1:Server:GoTop()




"D.J.W. van Kooten" <pub...@ic2remove.this.com> schrieb im Newsbeitrag
news:3983e852pa5rpb5av...@4ax.com...

dlzc

unread,
Jan 2, 2013, 11:29:49 PM1/2/13
to
Dear Urs Eggmann:

On Wednesday, January 2, 2013 4:02:03 PM UTC-7, Urs Eggmann wrote:
>
> I introduced my time measurement into the Init as
> follows. All methods were very fast with 55'000
> records. How many records do you have in your dbf
> and how many are deleded?
...
> ? SELF:oDCbBrowser1:Server:RECCOUNT

Reccount is supposed to poll only the record counter, stored in the file header. It should be 0 mSec every time.

...
> ? SELF:oDCbBrowser1:Server:OrderKeyCount()

Apparently this causes a span of the index file. Since the orderbag key count is stored in *its* header, this also should be 0 mSec (if it does not span the file).

...
> ? nEnde - nBeginn , ' milliSec' // 9 mSec

Dick indicated that it got longer after the second and subsequent invocations. Do you see this?

David A. Smith

D.J.W. van Kooten

unread,
Jan 3, 2013, 5:12:53 AM1/3/13
to
On Wed, 2 Jan 2013 13:52:43 +0100, "Gerhard Bunzel"
<g.bu...@domonet.de> wrote:

Hello Gerhard,
>
>> I am not sure when it started, SP4, SP4a, Windows update...
>
>Is there a SP4a available for VO2.8???
>
Yes. Brian announced that 17-9 in the VPS NG. You had to unzip
some DLL's in the ..\bin (which is a fast way) . I actually had the
idea that the main changes were actually about very specific things,
e.g. somehing about a Codejock toolbar which I didn't even know it
existed.

So if you are in VPS you can download SP4a and if you are not, this
patch may not be so important I guess.

Dick

D.J.W. van Kooten

unread,
Jan 3, 2013, 6:04:30 AM1/3/13
to
On Thu, 3 Jan 2013 00:02:03 +0100, "Urs Eggmann"
<Urs.E...@shinternet.ch> wrote:

>Hi Dick,
>
Hello Urse, Dave,

>How many records do you have in your dbf and how many are deleded?

Thanks for your comments.

I've got 85500 records, 0 deleted. About your tests, I tried them,
here's my comment:
>
>? SELF:oDCbBrowser1:Server:RECCOUNT

This is 0 ms indeed but it gives the same result as lastrec(). It
doesn't take the amount in the current orderscope into consideration.


>? SELF:oDCbBrowser1:Server:Count()

This takes betweeen 904 and 52932 (!) ms (much faster when run on the
server, despite ADS) . It looks like it starts counting record by
record and that the result is somehow buffered when you run it a
second time with the same exe.

>? SELF:oDCbBrowser1:Server:OrderKeyCount()


This is between the 296 and 17098 ms. I agree with David who states
that this should be 0 ms too, as the result should be retrievable from
the CDX. And I am sure it worked like that for a while when I replaced
Count by Orderkeycount March this year. Maybe it always took a few 100
ms, but never the 17 seconds (or more) I get now. There must be
something changed, and the only suspects are Windows updates,
SP3->4/4a or ADS 10->11.

Difficult where to begin. We leave showing the # of mails out for now,
not sure if trying to find the reason is worth it.

Dick

Urs Eggmann

unread,
Jan 3, 2013, 7:53:53 AM1/3/13
to
Hi David,

>> ? nEnde - nBeginn , ' milliSec' // 9 mSec
>
> Dick indicated that it got longer after the second and subsequent
> invocations. Do you see this?

Three subsequent calls gave 9 resp. 8 and 8 mSecs ??
(SP4b 2838)

I guess the delay Dick observed has another reason than OrderCount alone.

Urs.


D.J.W. van Kooten

unread,
Jan 3, 2013, 8:47:39 AM1/3/13
to
On Thu, 3 Jan 2013 13:53:53 +0100, "Urs Eggmann"
<Urs.E...@shinternet.ch> wrote:

Hello David, Urse,
>
>> Dick indicated that it got longer after the second and subsequent
>> invocations. Do you see this?
>

No, other way around: it gets faster after the second call. If I make
a new exe or reset the server/PC and re-start the exe it's again slow
the first time, and faster subsequent times.


>I guess the delay Dick observed has another reason than OrderCount alone.


Must be. OrderkeyCount hasn't changed from SP3->SP4 but there's no
source of the underlying call: VODBOrderInfo( DBOI_KEYCOUNT, cTarget,
uOrder, @uRetVal )

I've posted the issue as well to ADS. The delay may be because of
going from ADS 10->11. But we have the impression (here) that
'suddenly' was much slower, after some Windows updates. Makes little
sense, but so it looked.

Dick

Gerhard Bunzel

unread,
Jan 3, 2013, 9:30:54 AM1/3/13
to
Hello Dick,

thanks for that info.

It is very sad, that Brian has such a bad attitude about the work of VPS.
If there was more info, so that I can see 'VPS is doing something - a new SP
or other things' - I will be motivated to also use VPS.
But outside VPS you hear nothing about such things e.g. a new SP.
A short info with 'We have a new SP in VPS with these changes......' and I
can decide 'I will use that and go to VPS'.

Thanks

Gerhard


"D.J.W. van Kooten" <pub...@ic2remove.this.com> schrieb im Newsbeitrag
news:a2mae8h7bghlv6a33...@4ax.com...

Carlos Rocha

unread,
Jan 3, 2013, 10:13:57 AM1/3/13
to
On 03-01-2013 14:30, Gerhard Bunzel wrote:
>
> thanks for that info.
>
> It is very sad, that Brian has such a bad attitude about the work of VPS.
> If there was more info, so that I can see 'VPS is doing something - a new SP
> or other things' - I will be motivated to also use VPS.
> But outside VPS you hear nothing about such things e.g. a new SP.
> A short info with 'We have a new SP in VPS with these changes......' and I
> can decide 'I will use that and go to VPS'.
>

I received my SP4 a few days ago and I have WhatsNew28SP4a.rtf and
WhatsNew28SP4b.rtf in my installation.

SP4a adds two missing DLLs (CAVOUDF.DLL and CAVORDDB.DLL), corrects
version number in cavo28run.dll, cavopp.dll and cavo28orun.dll, and
corrects an issue in databrowser Unlink method "which lead to problems
with the garbage collector". It also adds a new feature in DataWindow
and ChildAppWindow related to the resize event when a toolbar not from
the VO GUI Classes is used (like CodeJock's one). This last change is
made only in VO28gui.dll.

SP4b only fixes something in SQLSelect related to "long data type
columns", and Val() function not respecting ',' as decimal separator.

It's not fair that who first pay for SP4 don't have access to the
corrections. Strange support/marketing politic :/

--
Carlos Rocha

D.J.W. van Kooten

unread,
Jan 3, 2013, 10:52:54 AM1/3/13
to
On Thu, 3 Jan 2013 15:30:54 +0100, "Gerhard Bunzel"
<g.bu...@domonet.de> wrote:

Hello Gerhard, Carlos,

>It is very sad, that Brian has such a bad attitude about the work of VPS.
>If there was more info, so that I can see 'VPS is doing something - a new SP
>or other things' - I will be motivated to also use VPS.

I think it's a bit of a dillema. The original planning from Brian was
not to release a new VO outside VPS but nevertheless he did release
it. Logically, as long as Brian/Meinhard are motivated for that, and
VPS clients request it, new releases come out partly solving problems
in earlier releases and partly adding some functionality. As we're all
in the software business, we find it logical that such releases are
accessible by those who have some maintenance contract, which is VPS
for VO (and Vulcan).

I am not sure if releasing info about new SP's here make people decide
to buy a VPS or just start an endless discussion that these should be
free. Although, if it were my product, I would personally release the
new features in public, my guess is that Brian feared the latter and
did not.

Dick

Carlos Rocha

unread,
Jan 3, 2013, 1:00:24 PM1/3/13
to
Dick,

I understand that, and understand Brian. But things don't have to be
black or white all the time, and with this they should be gray, imho.

I bought the same as Gerhard but I have a different thing, a better one
I guess, just because he payed first. This is not right, and there's no
contract, VPS, or whatever that could justify it. If I got SP4b, Gerhard
and everybody else that bought SP4 before me should be entitled to get
SP4b too. Enough said from me.

>
> I think it's a bit of a dillema. The original planning from Brian was
> not to release a new VO outside VPS but nevertheless he did release
> it. Logically, as long as Brian/Meinhard are motivated for that, and
> VPS clients request it, new releases come out partly solving problems
> in earlier releases and partly adding some functionality. As we're all
> in the software business, we find it logical that such releases are
> accessible by those who have some maintenance contract, which is VPS
> for VO (and Vulcan).
>
> I am not sure if releasing info about new SP's here make people decide
> to buy a VPS or just start an endless discussion that these should be
> free. Although, if it were my product, I would personally release the
> new features in public, my guess is that Brian feared the latter and
> did not.
>

--
Carlos Rocha

Jamal

unread,
Jan 4, 2013, 11:58:14 PM1/4/13
to
Carols,

I guess we are back to square one of complaining about lack of support for
bugs introduced in SP4.
I reported the DLL version issues when SP4 came out, but I guess the fixes
were hidden in the VPS club (until now!)
There are also issues in Report Pro 3.9.

Jamal

"Carlos Rocha" wrote in message news:kc47a7$gfa$1...@speranza.aioe.org...

Willie Moore

unread,
Jan 5, 2013, 4:11:36 PM1/5/13
to
Jamal,

What issues are you seeing with rp39?

Regards,
Willie
Vulcan VIP

"Jamal" wrote in message news:kc8bt8$2k4$1...@dont-email.me...

Karl Faller

unread,
Jan 6, 2013, 4:39:19 PM1/6/13
to
Carlos,
> If I got SP4b, Gerhard
>and everybody else that bought SP4 before me should be entitled to get
>SP4b too.
well, well.
Just for comparison: i just had to prolong my "support & updates"
contract on one of my cad softwares: 20% of the original "new" price
for ONE year more. ONLY, if i do so now, while the last period lasts.
If i let it slip, to get again "in", i'd pay a LOT more.
Can't say, i'm happy with this, but OTOH, i understand that somehow
the bills have to be paid - and only "new" customers, buying a
unlimited licence, won't keep business running. Look where even MS is
steering to...
Last addendum: some months ago, the company, which, in a way, started
my business about 20 years ago, (as they developed and sold the hard-
and software, with which i make my money) declared insolvency - guess
what, they sold unlimited licences with free support...

Regards
Karl

Carlos Rocha

unread,
Jan 6, 2013, 8:30:11 PM1/6/13
to
Karl,

> well, well.
> Just for comparison: i just had to prolong my "support & updates"
> contract on one of my cad softwares: 20% of the original "new" price
> for ONE year more. ONLY, if i do so now, while the last period lasts.
> If i let it slip, to get again "in", i'd pay a LOT more.
> Can't say, i'm happy with this, but OTOH, i understand that somehow
> the bills have to be paid - and only "new" customers, buying a
> unlimited licence, won't keep business running. Look where even MS is
> steering to...
> Last addendum: some months ago, the company, which, in a way, started
> my business about 20 years ago, (as they developed and sold the hard-
> and software, with which i make my money) declared insolvency - guess
> what, they sold unlimited licences with free support...
>

I would be glad with those 20%.
I paid $250 (50%) for a service pack of a product that costs $500
(unlimited license) and I'm happy with that too. I even would pay the
same in a couple of months for a SP5, as long as it would introduce new
features. But I would not like to pay 1 single dollar for 2 missing DLLs
that someone, by mistake, forgot to add to the service pack. This is
ridiculous.
A company can't grow, or even survive, with unpleasant clients. I've
seen to many people leaving the boat in the last few years, and this is
worst than correcting minor faults for free (I'm not talking about new
features).

--
Carlos Rocha

D.J.W. van Kooten

unread,
Jan 8, 2013, 3:03:25 AM1/8/13
to
On Mon, 07 Jan 2013 01:30:11 +0000, Carlos Rocha
<carlos...@doossier.com.removethis> wrote:

Hello Carlos,


>A company can't grow, or even survive, with unpleasant clients.

<BG>

Sorry, couldn't resist. I think you mean 'unpleased clients', actually
the word is displeased.

We have unpleasant clients too and I'm sure Brian has them too.

Dick

Er!k \/!$$Er

unread,
Jan 8, 2013, 6:57:49 AM1/8/13
to
Hi Dick,

> We have unpleasant clients too and I'm sure Brian has them too.
What makes you so sure? <g>

Erik

"D.J.W. van Kooten" schreef in bericht
news:ajkne810q05r2qhsn...@4ax.com...

Carlos Rocha

unread,
Jan 8, 2013, 11:26:24 AM1/8/13
to
OOps :P
--
Carlos Rocha

Jamal

unread,
Jan 8, 2013, 1:26:01 PM1/8/13
to
Willie,

I posted in the grafx cavo newsgroup with screen shots.

Jamal

"Willie Moore" wrote in message news:kca4u3$gua$1...@speranza.aioe.org...

Paul D B

unread,
Jan 16, 2013, 8:12:11 AM1/16/13
to
Dick,
 
sorry to step in late on this thread. Have you already solved your problem?
 
For what it is worth, I copy this little doc I made for myself back in 2005...
It is in Dutch, sorry don't have time to translate it.
 
 

1. Row count

 

Als je het aantal records wil weten of tonen, rekening houdende met filter en index condities, dan is dit de meest voor de hand liggende methode:

 

DBServer:OrderKeyCount() methode, die onafhankelijk is van de bBrowser instellingen.

 

Er bestaat ook bBrowser:GetRowcount(). Echter, deze is slechts correct indien:

 

- bBRowser:RowcountMode := #KeyCount

- bBrowser:RowMode := #Relative  (hoewel ik niet 100% zeker ben dat dit een must is)

- indien Optimisatie TRUE staat.  Staat deze FALSE, dan geeft GetRowCount() een verkeerde waarde. Want dit hangt nl. af van de DBServer var OrderKeyCount, en die geeft dan ook een verkeerde waarde!

Dit heeft dan weer andere implicaties, want bBRowser gebruikt dat nl. om bv. al dan niet een verticale scrollbar te tonen. Dus als als je optimisatie af hebt staan, is de scrollbar is niet meer betrouwbaar (verschijnt bv. als er niks te scrollen valt)

 

Besluit: gebruik nergens bBRowser:GetRowCount()

 

 

 

2. Performantie

 

Alle Orderkey* functies worden buitengewoon belastend indien Setdeleted(TRUE) en/of Setfilter() in gebruik

 

Dit omdat dan de hele database over het netwerk naar de client wordt gestuurd bij elke call van een Orderkey functie!

Het probleem wordt pas voelbaar bij files met een grotere size (meerdere megabytes). Het aantal records speelt minder een rol.

 

Nu gebruikt bBRowser deze functies intensief (o.m. bij het scrollen) indien men Rowmode op #Relative heeft staan en/of rowcountmode op #Keycount.

 

Rowmode #Relative is enkel nodig indien men een correct werkende multiple selection wil hebben. In dat geval moet men echt wel inschatten hoe groot de DBF zal worden. Indien ze meerdere MB wordt, dan moet men echt afstappen van Setfilter() en enkel indexes met FOR-conditions of orderscopes gebruiken. En uiteraard steeds Setdeleted(FAL­SE) maar dan in alle indexorders een FOR !Deleted() steken.

NB: multiple selection werkt nog wel in rowmode:#absolute, doch een block-selection met shift-click kan soms niet goed werken, afh. van de gebruikte order.

 

De bBRowser:RowcountMode zet je best steeds op #RecCount van zodra de file een substantiele size heeft.

Multiple selection wordt hierdoor NIET beïnvloed.

Enige nadeel is dat de scrollbar ook verschijnt als er te weinig records zijn om te scrollen, maar ze werkt wel razendsnel.

 

 

Het optimisatieprobleem

 

Default staat Set Optimize TRUE.

Echter als een setfilter actief is, en er wordt extern (dwz in een andere instance van de server) een record bijgevoegd, dan verschijnt deze niet in de server zolang je niet een Clearfilter() en nieuwe SetFilter() hebt gedaan.

The filter problem where new records are not visible is caused by the DBFCDX driver that optimizes the filters. You can switch off the optimizer, and then your problems will go away (but the filter will be slower :-()RddInfo(_SET_OPTIMIZE,FALSE)Note: This is a GLOBAL setting, even though there is also a method RddInfo for the DbServer class !What the driver does is this: once it has read the whole database it stores the record numbers of the records that meet the criterium of the filter. That way it doesn't have to go out and read all the records again. Robert van der Hulst

 

ECHTER!!

 

Optimisatie afzetten schept niet enkel een zeer zware performance degradatie, maar andere problemen ook; bv. Orderkeycount() is niet meer correct!!

 
Paul
 
 
"D.J.W. van Kooten"  schreef in bericht news:3983e852pa5rpb5av...@4ax.com...

D.J.W. van Kooten

unread,
Jan 17, 2013, 6:04:42 AM1/17/13
to
On Wed, 16 Jan 2013 14:12:11 +0100, "Paul D B"
<pol...@NOMORESPAMhnt.be> wrote:

Hello Paul,
>
>sorry to step in late on this thread. Have you already solved your problem?

This is VERY interesting. Especially your remark about that
Orderkeycount causes the whole database to be moved over the network
and we have setdeleted on. That is exactly what happened -we have a
peer-2-peer config here, with my PC being the 'server'-, although I
also found that the first time OrderKeyCount also caused a huge delay
on my PC.

It isn't explained yet why it used to be fast, but your research is a
good starting point to do some testing, thanks for it!

Dick

Paul D B

unread,
Jan 22, 2013, 7:16:14 AM1/22/13
to
Hi Dick,

Long ago I had also some unexplainable delay opening DBF's over the network.
To make the long story short: it turned out to be a defective switch.
So always check the hardware (NIC-cable-switch etc) before rewriting your
VO-application :-)

Anyway, in your configuration you can be sure of one thing: each "filter"
you set on the DBF (wether it is setdeleted, setfilter) will mean that the
local client will have to do the evaluation and will need the whole DBF. If
furthermore you are using orderkeycount (which is extensively used by
bBrowser, as you will have read in my paper) then the DBF will be pumped
over the network hundreds of times. Just watch the stats from your network
card.

Using ADS will solve your problem. Otherwise, avoid filters and use
conditional orders instead.

Paul


"D.J.W. van Kooten" schreef in bericht
news:82mff89pf7lbvpjc7...@4ax.com...

D.J.W. van Kooten

unread,
Jan 22, 2013, 10:02:08 AM1/22/13
to
On Tue, 22 Jan 2013 13:16:14 +0100, "Paul D B"
<pol...@NOMORESPAMhnt.be> wrote:

Hello Paul,

>Using ADS will solve your problem. Otherwise, avoid filters and use
>conditional orders instead.
>
That's what I expected but it doesn't. Because of the complex
combination of criteria to show, a filter was the only useable
solution. But orderkeycount is many times slower on the workstations
than on the servfer, while I would expect ADS to take care of that.

I've posted this to ADS as a bug; keep you posted.

Dick

Paul D B

unread,
Jan 24, 2013, 5:52:01 AM1/24/13
to
Dick check out this group's archives, for a thread I started about 10 years
ago: "Terrible network degradation when using Setfilter and OrdKeyNo and
ADS"

It won't help you (there is no solution to the problem) but it might comfort
you that others experienced the same problem (and that not much has
changed).

What you could try is play with the read-ahead cache:
// als ADS, zet read-ahead cache op 30 recs

IF PDBAppObj():GLOcDriver == "AXDBFCDX"

hTableHandle := SELF:oDBTkmain:INFO( DBI_GET_ACE_TABLE_HANDLE )

IF hTableHandle <> 0

AdsCacheRecords( DWORD(hTableHandle) , 30)

ENDIF

ENDIF

And then really try to abandon the setfilter() because that is the real
solution.

It is not complicated to imitate the setfilter with a temporary index with a
for-condition (which is the same as your index experssion). I can send you a
code sample if you like.
Anyway, in one application where I had this problem, this is what I wrote in
my "history of changes":
- TK Overzicht: compleet afgestapt van het Setfilter gedoe omdat dit
afgrijselijk slechte performantie gaf in combinatie met

ADS en bBRowser in #relative mode. Ik werk nu volledig met een tijdelijke
indexfile. Omdat dit via ADS loopt, gaat dit bliksemsnel.

Deze temp CDX files staan in de \Data\Temp\ folder op de server.

Alle performantieproblemen zijn hiermee van de baan!!! OOk de
netwerkvertraging vanwege WINXP valt nog nauwelijks op.

Een nadeel: aangezien de temp CDX file voor elke user uniek is; zal een
record die een andere user append/wijzigt, niet meer bij de

andere users verschijnen, tenzij zijn temp CDX wordt heropgebouwd...!


Finally: even simply doing Setdeleted(true) is already a filter and will
already degrade performance!
Solution: systematically put !Deleted() in every index condition. Then you
can put Setdeleted(false) and the deleted records will not show up.


Paul

"D.J.W. van Kooten" schreef in bericht
news:g9atf8dt2fdjlmrli...@4ax.com...

Jamal

unread,
Jan 25, 2013, 3:19:36 PM1/25/13
to
Dick,

Do you have SetDeleted(TRUE) ?

If so, change it to SetDeleted(FALSE) and let me know how it goes.

From reading various news groups, this can act as a "FILTER" and can slow
down your DBF access.

Jamal

"D.J.W. van Kooten" wrote in message

Jamal

unread,
Jan 27, 2013, 11:51:12 PM1/27/13
to
Dick

In your Start method, add DbSetRestoreWorkarea(FALSE)

Also, on all network computers, configure NIC cards "Interrupt Moderation"
option to Disabled (if it has it).

Please let us know if this makes a difference.

HTH,

D.J.W. van Kooten

unread,
Feb 1, 2013, 8:54:20 AM2/1/13
to
On Fri, 25 Jan 2013 15:19:36 -0500, "Jamal"
<vodotne...@yahoo.com> wrote:

Hello Jamal,

>Do you have SetDeleted(TRUE) ?

Yes, but there were no deleted records in the database so it shouldn't
make a difference.

I'll try your DbSetRestoreWorkarea later, and let you know if
something influences it.

Thanks!

Dick

Jamal

unread,
Feb 1, 2013, 9:31:03 AM2/1/13
to
Hi Dick,

Yes, it does! Because it acts a "FILTER" and pulls the whole database across
the network.

Jamal

"D.J.W. van Kooten" wrote in message
news:l5ing811jp0frrmrs...@4ax.com...

Camille Kater

unread,
Feb 1, 2013, 12:55:26 PM2/1/13
to Jamal
Jamal,

What is the purpose of DbSetRestoreWorkarea(TRUE/FALSE) ?

Camille

Jamal

unread,
Feb 1, 2013, 6:06:36 PM2/1/13
to
Camille,

Setting it to FALSE disables the constant restoring of of DB work areas
after every call in DBServer class. Just look in the RDD SDK. Which in turn
speeds up your DB access.

According to Mr. Data "If you want to use server objects in a filter you
need to enable the workarea restoring (using DbSetRestoreWorkArea(TRUE)) for
the complete lifetime of the filter".

In my case I NEVER use filters. I have been using
DbSetRestoreWorkArea(FALSE) for several years with no problem.


Jamal

"Camille Kater" wrote in message news:510C018E...@pt.lu...

Camille Kater

unread,
Feb 2, 2013, 3:27:05 AM2/2/13
to Jamal
Thanks Jamal,

Camille
0 new messages