KarenLloyd
Programmer
Hi Gurus
I need some general advice on how to improve performance, if that's possible please...
I am still working in VFP6 - mostly running on PCs using XP and Windows 7
I have a networked system with 12 users, working directly in shared data files of 25000 jobs (currently), with memo text included in each job record, plus a second file of the same number of records for additional memo text and a third table of costs, with approx 150000 records. Plus extra add-ins and then look-up tables etc...
The selection screen lists are built using a general purpose grid program - to which I feed a list of fields with the formatting, validation, etc. The grid screen is the key to selecting a job or contract and it is now slowing down to the point of being unworkable at times, even showing "not responding" messages in the title bar, when attempting to search (using a filter!) and sometimes on displaying the whole file (of 250000 records)
I am now aware that I am doing more than a few things wrong - so I'll start listing my known faults as follows:
1) I have used one set grid program to handle every screen, meaning extra event handling (Valid, LostFocus, GotFocus, etc) is slowing down the processing on the read-only (selection screen list) grids.
2) I have been using SET FILTER TO - which is apparently crippling the grid process as it works through the increasing number of records. Obviously I need to convert the two main screens to work using SELECT - SQL to improve the performance of the grid, and dump the FILTERing.
3) I am allowing users to work directly in the database, record locking the main data files and therefore both of their Memo files for minutes at a time .. (I know, someone should probably shoot me at this point - I will change this to work on copy files and then update the master files on exit...)
4) The users share the EXE file from the Server, and also the FOXUSER file - Not sure how relevant that is...
+) There's bound to be lots more... this system has been expanded and {a-hem} enhanced since it originated in FoxPro 2.0 (or possibly mfoxplus). It is working well enough in companies of 5/6 users and less Memo data, but this one needs saving and quickly. It's not a small task. So aside from changing over to SQL selects I have a few other things I need more info on please if you can advise me in any way...?
A) The performance on some machines seems to have deteriorated since they've been upgraded. This may be a coincidence and just the growth of the data files. If a PC has 1.99GB+ of RAM, should I be using SYS(3050) to control the memory that VFP6 takes so it doesn't "over-grab" the memory? (Help!?) The other apps they are running alongside include Outlook, Excel, Internet, Google Maps, TomTom WEBFLEET, etc, all of which apparently perform as they should.
I have not paid any attention to config files for a long time, so mine are probably just ignored now. Is there anything vital I might have missed?
B) Should I make each user have the EXE, FoxUser files and DLLs on their C: drive? Would it help instead of sharing from the Server?
C) I am getting more concerned that I should really upgrade to VFP9. Can my applications be distributed in the same way as VFP6, or does it have to be installed and registered on every workstation? Are there any licencing changes or extra financial implications?
+) There is more to come - development for Tablet applications is being requested and I'm now starting to feel out of my depth.... (There - I've said it. Deep breath! :} ) I apologise for the stressed end of week rambling...
After pouring out that lot - I would just be grateful for any pointers, suggestions, criticism, anything from your wealth of knowledge and experience. Is there anything else obvious that I should also be considering - besides therapy! <grin>
If not, thanks for taking the time to read it anyway.
Kind regards
Karen