We have a database with SQL Server backend. More than 50 tables, most of them filled with several thousands records, some of them over 2 or 3 million.
FEs have DSNless linked tables, views, and queries. Everything is blazing fast. Inputting and searching data and printing reports all is done without any lag in performance. Exporting extremely large set of data to Excel for monthly and yearly graphs is done in a matter of seconds.
SQL server is installed on the domain controller and clients use LAN connection to access the data.
To add some new features and testing, and for not working on live data, I installed sql server on my PC, copied the latest backup of main database and imported it into sql sever on my machine, relinked the tables in FE to point to the new server. Now I have an exact copy of BE and FE on my PC.
When I open the FE it's very slow. Opening a form takes more than a minute, in some cases more than 5 minutes.
I expect a database with a localhost BE to be faster than one with a BE on a remote machine. How can I trouble shoot the problem?
Some points you may need to know:
Is there anything I can do to have the same performance as our main database?
Is there any reason the same BE and the same FE show this difference when the BE is on different servers?
Any kind of advice is much appreciate.
FEs have DSNless linked tables, views, and queries. Everything is blazing fast. Inputting and searching data and printing reports all is done without any lag in performance. Exporting extremely large set of data to Excel for monthly and yearly graphs is done in a matter of seconds.
SQL server is installed on the domain controller and clients use LAN connection to access the data.
To add some new features and testing, and for not working on live data, I installed sql server on my PC, copied the latest backup of main database and imported it into sql sever on my machine, relinked the tables in FE to point to the new server. Now I have an exact copy of BE and FE on my PC.
When I open the FE it's very slow. Opening a form takes more than a minute, in some cases more than 5 minutes.
I expect a database with a localhost BE to be faster than one with a BE on a remote machine. How can I trouble shoot the problem?
Some points you may need to know:
- The forms' recordsource is SELECT * FROM mytable Where False, but on open or loading events they read the privileges of the user to enable/disable the controls or set some default values.
- The connection string is : "ODBC;DRIVER=SQL Server;SERVER=" & stServer & ";DATABASE=" & stDatabase & ";Trusted_Connection=Yes"
- I've also used SQL SERVER Client 11.0 driver. The same result.
- Some tables are opened quickly by being double clicked in navigation pane, but others show a lag time between double clicking and opening.
- I waited for about 12 hours for indexes of the tables to be refreshed, still no change in performance.
- Using a T-SQL from this site I rebuilt all the indexes. Still the performance is too poor.
- My PC is extremely powerful. It's been made for 3D CAD. 32GB memory on an intel Xeon CPU and P2000 Nvidia GPU. So I don't think the resource may be a concern.
Is there anything I can do to have the same performance as our main database?
Is there any reason the same BE and the same FE show this difference when the BE is on different servers?
Any kind of advice is much appreciate.
Last edited: