Diese Seite mit anderen teilen ...

Informationen zum Thema:
WinDev Forum
Beiträge im Thema:
Erster Beitrag:
vor 4 Jahren, 9 Monaten
Letzter Beitrag:
vor 4 Jahren, 9 Monaten
Beteiligte Autoren:
Al, Michael Drechsel, Piet van Zanten, Fabrice Harari

[WD18] HFCS can I force the loading of files into Cache

Startbeitrag von Al am 01.11.2013 01:44


I am in the process of moving a large app from HF Classic into FHCS and the performance hit varies from nil to about 150% so I have a lot of work to do in optimizing the code. As an interim solution to try and buy some time while I do the optimization, is it possible to force the HFCS engine to load the entire database into its RAM Cache ? The database is about 7gb and my client can provide a VM server with 12-16gb of RAM.

In tests I have made about 6gb of ram available but even with some intensive tasks that involve reading hundreds of thousands of records, the HFCS stats show very little data is read from the cache and the RAM usage is only showing 200mb of RAM.



Hi Al,

The problem is probably not with the cache, but with network traffic.
If you do thousands of requests to the server (hReadNext) this will involve a lot of network traffic.
So speed of the network connection is a major issue.


von Piet van Zanten - am 01.11.2013 08:06

interesting question.

I make some tests month ago to force the HF SQL to hold the fulltext index in the memory, but no success. It looks like the database has it own algo to load/unload the indizies into the memo.

The bad thing is that the first user in the morning must start my program and then he should go to kitchen and make a coffee :-)

von Michael Drechsel - am 01.11.2013 11:44
Hi Michael

even if you have a program starting automatically on the server 20 mns before your first user arrives and doing the same thing than your regular program/user?

Best regards

von Fabrice Harari - am 01.11.2013 11:47
Hi Fabrice,

I don´t know when the first user start his work.

Regular at 7:00 am, but some nerds are night-active :-)

von Michael Drechsel - am 01.11.2013 11:55

Thanks for the replies.

I appreciate that it is mainly a coding issue and that I have to re-work my hreadnext loops but I am intrigued by the fact that while the HFCS states that it can cache the data, there is no way to force it to do so. I would imagine that it should work the same as MS SQL server and MS Exchange which will grab every scrap of available RAM as soon as it starts up.

The HOptimize() and HOptimizeQuery() functions are available in HF Classic to force indexes into a cache but are not avaialble for HFCS ?

In terms of the network speed, the application exe and wdl files are on one server and the data and HFCS server are on another. My client's hardware provider insist this is the best way as they are "publishing" the application via Citrix Xenapp server. This is despite PCSoft advising that everythings works best if it is all on the one server.


von Al - am 01.11.2013 12:17
Hi Al,

Just to be sure: did you restart the HFSQL server after assigning the cache?


von Piet van Zanten - am 01.11.2013 12:27
Hello Piet

Thanks for the reminder, I did restart it it but it made no difference.


von Al - am 01.11.2013 20:25
Zur Information:
MySnip.de hat keinen Einfluss auf die Inhalte der Beiträge. Bitte kontaktieren Sie den Administrator des Forums bei Problemen oder Löschforderungen über die Kontaktseite.
Falls die Kontaktaufnahme mit dem Administrator des Forums fehlschlägt, kontaktieren Sie uns bitte über die in unserem Impressum angegebenen Daten.