Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations TouchToneTommy on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Pass through query or Linked Tables

Status
Not open for further replies.

ghloid

IS-IT--Management
Mar 11, 2002
85
US
Hey all,

I've been reading up on all the articles dealing with this issue, and most seem to point to Pass through query for a better alternative for a database. Just thought I'd throw in our situation here though and see what some of you may think.

We have an SQL Server 2000 based database with an Access 2000 front end. The database has at least 40 tables which are all linked through Access 2000. There are at least 60 or so forms and as many reports with this thing too. The amount of queries is up there too with about 70 of them. This whole thing was designed under the linked table method and there are hundreds of lines of code that use the simplicity of the linked table method to retrieve the data. Trouble is (as many of you may already know), the performance is pretty sluggish. We've recently upgraded the client computers, and that has helped a lot, but we will still see some relatively simple record retrivals causing major performance issues.

The total amount of records in this database is about 50,000. That is, there are about 50,000 people in the database, with relational records in all the other tables, so yes, it does have lots of data (maybe not as much as an IBM thinktank database, but it's definitely not a small desktop thing).

So, I suppose my real question is, is there a way to speed up performance using the linked table method? All of our clients are Win 2K running off of an NT network. The SQL Server 2000 machine is a Win NT machine (a BDC actually), and our network is relatively small (about 14 clients in total). I like the ease of using linked tables and our Access 2000 MDE interface. I can quickly get into the tables through access, and even design some temp queries to troubleshoot any problems. Going to a Pass-through query based system may improve performance, but the level of work involved and the complexity with minor changes may be tremendous. I guess I'm just looking for opinions here. The lag time is bearable, but I'd like to see this thing running at a much faster pace, and there's really no real reason a computer with less than a 3 Mhz processor and less than 756 MB of RAM shouldn't be able to handle it (those are the specs of our new clients).

The final bite of the matter is the difference we see in performance based on location. The database programmers who made the Access interface created their ODBC connection using IP address, not named pipes. They actually reside in an office down the street, and they hit the data through a tunnel in our firewall. Here at the office, we use the named pipes method for our ODBC connection, and there should be no impedence of a firewall or other network traffic. Trouble is, the fellas down the road often see better performance (so they tell me) from their setup then from ours. I've already tried a simple experiment changing the ODBC connection on our end to an IP address rather than named pipes, and that had no effect. That kind of tells me that perhaps there is something network based that may be able to be tweaked to make the linked table method work better. All of our LAN lines are 10/100 based, and after doing some snooping on the client connection speed, all were running at around 100 mbps.

It's perplexing, and there are probably some more variables involved that I can't think of at the moment, but for general purposes, do you think there's something I'm overlooking?

Any ideas are appreciated (as always).

THANKS!
 
I have a database about the same size as yours and I'm not having any probs with performance, not to gloat. If you don't mind a few suggestions, these are some things I do.

1- You need to get rid of the Jet layer...you do that either by converting an Access Project to SQL Server, or creating an unbound application with an MDB using OLEDB, ADO, etc. The Jet layer is very network-resource intensive, and you're probably opening all kinds of connection you don't know about. The problem with ADP's is you can't use local tables. If you don't use local tables go with the ADP.

2- Reduce the records you display to the user. Unless a user is doing a report or running a query, no need to pull down all the records from a table. I believe in one-record processing...the user is usually adding one record or editing one record at a time. I don't bring down a table with 50,000 records in it. Bring down one record, have the user do what they need, update the record, and then pull down another, etc.

3. Buy the book Microsoft Access Developer's Guide to SQL Server... Sams Publishing. It's a must buy for anyone developing applications in Access for SQL Server.

 
Thanks so much for the info. I'll look into getting that book. It sounds very helpful. I know what you're talking about by getting rid of the Jet layer. I've heard that is VERY network intensive.

Thanks for the input!
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top