So despite having ultra fast internet connection, it's still recommended to optimise WAN traffic between native Access FE/BE link. I am experimenting with recommendations mentioned in the attached document.
yes.
in fact, the #1 developer time saving tip I can share?
Any time you have a query with multiple joins?
Convert that to that to a SQL view, and link to that view.
But why this suggestion over say a pass-through query, or even perhaps say some stored procedure on SQL server?
Simple: cost and time vs the benefits.
Often the report (or form) will use some addtional VBA code to create a filter. And often such code represents significant time and cost.
Well, converting to a view means that the code, the form, the report? The existing filters will THEN play nice with SQL server, and MORE imporant is the cost and time to acheive first rate results?
It is very low.
If you have a complex form, or report based on a complex SQL query?
if you move the query to a view, link to that view (and even give it the same name as the client side query)?
Well, now you going to get about the same performance if you used a pass-though query, or even a stored procedure.
But, the HUGE bonus is you don't have to change any client side code that creates a filter for the form/report.
And by filter, I mean use of the "where" clause that both forms and reports have.
So, say this:
docmd.OpenForm "frmInvoices",,,"InvoiceNum = 13243"
The above code does not require any changes. But, if frmInvoices (or report) is based on a mutli-table query with joins?
Then you get server side performance, the joins and SQL occurs server side, and ONLY the result is sent back down the wire.
now, there are as noted other ways to achieve this, but adopting the view, linking to that view?
Far less work then ANY other solution and approach.
Bottom line:
Views are your first friend and best first steps to improve Access to SQL server performance.
9 out 10 times, with this simple effort and change?
You get first rate performance, and as noted, in near all cases, no changes to the client side VBA code that no doubt should and does use a "where clause" when opening that form or report....
So, this simple change (using a view) tends to equal the performance compared to the significant efforts to say create a pass-through query, or even a stored procedure.
So, my view on this?
Use views! - pun intended!!!!
R
Albert