Hello All:
I have been brought onboard to help on a project that had some
performance problems last year. I have taken some steps to address
the issues in question, but a huge question mark remains.
Last year, all of the tables and reports were stored in Access. The
database was put online so that end users could access the reports
online using Snapshot Viewer. The reports were aggregated on the fly,
and the selection criteria available to the end users was passed as
text strings to the query/reports as the searchable criteria as
opposed to an indexed numeric value. (Example: Pass Year_Desc of
200-2003 as opposed to Year_ID, of 3.)
Hundreds of users were accessing this system. Fortunately not all at
the same time, but it must have been enough people since the system
came down a few times while people were accessing their reports.
This year, I have preaggregated all reports into a reporting table, so
that no aggregation is happening on the fly when people are pulling
their reports. The only work that will be done to pull up the reports
is to pass the selection criteria to the query that the report is
based on. ALL TABLES including the aggregated reporting tables have
been moved to SQL Server. No tables live in Access anymore. The
selection criteria in the SQL reporting tables all have indexed
numeric fields that will be used to choose the appropriate recordset.
I think these items represent a big improvement for this process,
making us less likely to come down this year. The theory is that,
Access is known to not handle multiple users and major load on it's
tables. I focused on the fact that everything was in Access and since
it is not a shining star for this type of multiple user/heavy load
scenario, we would be better off in SQL.
The argument has been put forward, however, that the bottleneck is the
actual instances of Access Opening and closing in order to put out the
Snapshot Viewer for each report. It is argued that the move from
Access to SQL will have little impact, because that was not the
bottleneck. The bottleneck, it is said, was the number of actual
instances that Access must "Open" in order for people to view the
reports.
Since I have little experience with Snapshots, the argument may in
fact be valid. I stand by the move to SQL, and I still believe that
everything living in Access contributed to the poor performance and
crashes. I cannot speak towards the Access Snapshot piece ansd am
thus still concerned for the success of this project.
My concern is that we may still be looking at a crash scenario despite
the SQL move and preaggregated data. Does anyone out there have
experience with snapshots and can verify or refute the performance
issues mentioned above and the approach we are taking?
Any input is greatly appreciated. Thanks.
BlueDolphin 9 2728
On 12 Jul 2004 10:19:36 -0700, bc******@jeffco.k12.co.us (bluedolphin)
wrote:
Is this your scenario:
Users access the application via a web browser. A classic ASP
application takes the requests including report criteria, invokes an
instance of MsAccess to generate a report and exports it as a snapshot
file, and makes that snapshot file available to the requestor in the
form of a hyperlink. User clicks the hyperlink, the snapshot file
downloads and is viewed in the local viewer (or perhaps in-place in
the browser window).
If not, please describe your application architecture. What do you
mean by the term "online"?
-Tom. Hello All:
I have been brought onboard to help on a project that had some performance problems last year. I have taken some steps to address the issues in question, but a huge question mark remains.
Last year, all of the tables and reports were stored in Access. The database was put online so that end users could access the reports online using Snapshot Viewer. The reports were aggregated on the fly, and the selection criteria available to the end users was passed as text strings to the query/reports as the searchable criteria as opposed to an indexed numeric value. (Example: Pass Year_Desc of 200-2003 as opposed to Year_ID, of 3.)
Hundreds of users were accessing this system. Fortunately not all at the same time, but it must have been enough people since the system came down a few times while people were accessing their reports.
This year, I have preaggregated all reports into a reporting table, so that no aggregation is happening on the fly when people are pulling their reports. The only work that will be done to pull up the reports is to pass the selection criteria to the query that the report is based on. ALL TABLES including the aggregated reporting tables have been moved to SQL Server. No tables live in Access anymore. The selection criteria in the SQL reporting tables all have indexed numeric fields that will be used to choose the appropriate recordset.
I think these items represent a big improvement for this process, making us less likely to come down this year. The theory is that, Access is known to not handle multiple users and major load on it's tables. I focused on the fact that everything was in Access and since it is not a shining star for this type of multiple user/heavy load scenario, we would be better off in SQL.
The argument has been put forward, however, that the bottleneck is the actual instances of Access Opening and closing in order to put out the Snapshot Viewer for each report. It is argued that the move from Access to SQL will have little impact, because that was not the bottleneck. The bottleneck, it is said, was the number of actual instances that Access must "Open" in order for people to view the reports.
Since I have little experience with Snapshots, the argument may in fact be valid. I stand by the move to SQL, and I still believe that everything living in Access contributed to the poor performance and crashes. I cannot speak towards the Access Snapshot piece ansd am thus still concerned for the success of this project.
My concern is that we may still be looking at a crash scenario despite the SQL move and preaggregated data. Does anyone out there have experience with snapshots and can verify or refute the performance issues mentioned above and the approach we are taking?
Any input is greatly appreciated. Thanks. BlueDolphin
The snapshot viewer is not Access. It is a separate program.
It runs on the client computer. It is a file viewer like
Acrobat Reader. Whatever problems you might have, they won't
be due to heavy use of the snapshot viewer.
Snapshot files are generated by Access. Access was never
intended to be a internet report server, no more than MS Word,
or MS Excel.
If you are using Access as a report server (like we do),
then you are pushing the acceptable boundaries, and you
should accept that the application will need monitoring.
On the other hand, you can run Report Services on IIS/
SQL Server, and there is a wizard that will convert simple
Access reports to IIS/SQL Server/Report Services. It
may require some work, but you will be placed right in
the centre of the target market for Report Services, rather
than off at the edge of the Access target market. Access is known to not handle multiple users and major load
That is to say, Windows (File Services) is known to not
handle multiple users and major load, and IIS is known to
be unable to handle multi-threaded applications. Fortunately,
IIS is only ONE user, and Access/Jet can be configured to be
single threaded.
Still, MS has gone to the trouble of building Report Services
specifically for applications like yours, so it should be
at least considered.
(david)
news:39********************************@4ax.com... On 12 Jul 2004 10:19:36 -0700, bc******@jeffco.k12.co.us (bluedolphin)
Hello All:
I have been brought onboard to help on a project that had some performance problems last year. I have taken some steps to address the issues in question, but a huge question mark remains.
Last year, all of the tables and reports were stored in Access. The database was put online so that end users could access the reports online using Snapshot Viewer. The reports were aggregated on the fly, and the selection criteria available to the end users was passed as text strings to the query/reports as the searchable criteria as opposed to an indexed numeric value. (Example: Pass Year_Desc of 200-2003 as opposed to Year_ID, of 3.)
Hundreds of users were accessing this system. Fortunately not all at the same time, but it must have been enough people since the system came down a few times while people were accessing their reports.
This year, I have preaggregated all reports into a reporting table, so that no aggregation is happening on the fly when people are pulling their reports. The only work that will be done to pull up the reports is to pass the selection criteria to the query that the report is based on. ALL TABLES including the aggregated reporting tables have been moved to SQL Server. No tables live in Access anymore. The selection criteria in the SQL reporting tables all have indexed numeric fields that will be used to choose the appropriate recordset.
I think these items represent a big improvement for this process, making us less likely to come down this year. The theory is that, Access is known to not handle multiple users and major load on it's tables. I focused on the fact that everything was in Access and since it is not a shining star for this type of multiple user/heavy load scenario, we would be better off in SQL.
The argument has been put forward, however, that the bottleneck is the actual instances of Access Opening and closing in order to put out the Snapshot Viewer for each report. It is argued that the move from Access to SQL will have little impact, because that was not the bottleneck. The bottleneck, it is said, was the number of actual instances that Access must "Open" in order for people to view the reports.
Since I have little experience with Snapshots, the argument may in fact be valid. I stand by the move to SQL, and I still believe that everything living in Access contributed to the poor performance and crashes. I cannot speak towards the Access Snapshot piece ansd am thus still concerned for the success of this project.
My concern is that we may still be looking at a crash scenario despite the SQL move and preaggregated data. Does anyone out there have experience with snapshots and can verify or refute the performance issues mentioned above and the approach we are taking?
Any input is greatly appreciated. Thanks. BlueDolphin
Is this your scenario:
Users access the application via a web browser. A classic ASP
application takes the requests including report criteria, invokes an
instance of MsAccess to generate a report and exports it as a snapshot
file, and makes that snapshot file available to the requestor in the
form of a hyperlink. User clicks the hyperlink, the snapshot file
downloads and is viewed in the local viewer (or perhaps in-place in
the browser window).
Exactly! This is the precisely the scenario.
I read your post. If you are worried about the opening and closing of
Access, the following article shows a good way of doing it: http://www.4guysfromrolla.com/webtec...1.update.shtml
If you have been able to run your Reporting ASP code on Windows 2003
(with the default IIS that ships with W2K3), please tell me your
IIS/Component Services settings because I have been unable to run it
on W2K3. I can run it fine on IIS 5.x / Win XP.
Thanks.
"david epsom dot com dot au" <david@epsomdotcomdotau> wrote in message news:<40***********************@news.syd.swiftdsl. com.au>... The snapshot viewer is not Access. It is a separate program. It runs on the client computer. It is a file viewer like Acrobat Reader. Whatever problems you might have, they won't be due to heavy use of the snapshot viewer.
Snapshot files are generated by Access. Access was never intended to be a internet report server, no more than MS Word, or MS Excel. If you are using Access as a report server (like we do), then you are pushing the acceptable boundaries, and you should accept that the application will need monitoring.
On the other hand, you can run Report Services on IIS/ SQL Server, and there is a wizard that will convert simple Access reports to IIS/SQL Server/Report Services. It may require some work, but you will be placed right in the centre of the target market for Report Services, rather than off at the edge of the Access target market.
Access is known to not handle multiple users and major load
That is to say, Windows (File Services) is known to not handle multiple users and major load, and IIS is known to be unable to handle multi-threaded applications. Fortunately, IIS is only ONE user, and Access/Jet can be configured to be single threaded. Still, MS has gone to the trouble of building Report Services specifically for applications like yours, so it should be at least considered.
(david)
news:39********************************@4ax.com... On 12 Jul 2004 10:19:36 -0700, bc******@jeffco.k12.co.us (bluedolphin)
Hello All:
I have been brought onboard to help on a project that had some performance problems last year. I have taken some steps to address the issues in question, but a huge question mark remains.
Last year, all of the tables and reports were stored in Access. The database was put online so that end users could access the reports online using Snapshot Viewer. The reports were aggregated on the fly, and the selection criteria available to the end users was passed as text strings to the query/reports as the searchable criteria as opposed to an indexed numeric value. (Example: Pass Year_Desc of 200-2003 as opposed to Year_ID, of 3.)
Hundreds of users were accessing this system. Fortunately not all at the same time, but it must have been enough people since the system came down a few times while people were accessing their reports.
This year, I have preaggregated all reports into a reporting table, so that no aggregation is happening on the fly when people are pulling their reports. The only work that will be done to pull up the reports is to pass the selection criteria to the query that the report is based on. ALL TABLES including the aggregated reporting tables have been moved to SQL Server. No tables live in Access anymore. The selection criteria in the SQL reporting tables all have indexed numeric fields that will be used to choose the appropriate recordset.
I think these items represent a big improvement for this process, making us less likely to come down this year. The theory is that, Access is known to not handle multiple users and major load on it's tables. I focused on the fact that everything was in Access and since it is not a shining star for this type of multiple user/heavy load scenario, we would be better off in SQL.
The argument has been put forward, however, that the bottleneck is the actual instances of Access Opening and closing in order to put out the Snapshot Viewer for each report. It is argued that the move from Access to SQL will have little impact, because that was not the bottleneck. The bottleneck, it is said, was the number of actual instances that Access must "Open" in order for people to view the reports.
Since I have little experience with Snapshots, the argument may in fact be valid. I stand by the move to SQL, and I still believe that everything living in Access contributed to the poor performance and crashes. I cannot speak towards the Access Snapshot piece ansd am thus still concerned for the success of this project.
My concern is that we may still be looking at a crash scenario despite the SQL move and preaggregated data. Does anyone out there have experience with snapshots and can verify or refute the performance issues mentioned above and the approach we are taking?
Any input is greatly appreciated. Thanks. BlueDolphin
On 13 Jul 2004 09:23:14 -0700, bc******@jeffco.k12.co.us (bluedolphin)
wrote:
OK, why didn't you say so :-)
No, just kidding.
But as others have pointed out, this is the most likely bottleneck.
You're creating Access.Application objects left and right. They are
very fat, and don't scale.
SQL Server Reporting Services is a much better solution. Bite the
bullet and migrate your reports.
-Tom. Is this your scenario: Users access the application via a web browser. A classic ASP application takes the requests including report criteria, invokes an instance of MsAccess to generate a report and exports it as a snapshot file, and makes that snapshot file available to the requestor in the form of a hyperlink. User clicks the hyperlink, the snapshot file downloads and is viewed in the local viewer (or perhaps in-place in the browser window).
Exactly! This is the precisely the scenario.
Thank you for the input. Yes I agree we need to migrate to SQl
reporting or Crystal or something else. We have someone here who has
created MANY Access reports and is unwilling to give them up until they
find another easy to use tool with strong graphing functionality. We
will definately move to another tool with time. At the moment it is too
much to recreate the over 100 reports that she currently has
functioning. I will definately look into the reporting suggestion made
above.
However, in the meantime, what I'm reading is that we will still have
the same bottleneck despite the SQL move. Will we get ANY PERFORMANCE
IMPROVEMENT AT ALL as a result of the move?
Thanks for your input everyone.
BlueDolphin
*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
> the same bottleneck despite the SQL move. Will we get ANY PERFORMANCE IMPROVEMENT AT ALL as a result of the move?
No
In fact, it's just one more thing to break.
FWIW, the Report Services report builder is kinda similar to the
Access Report Builder, so it can be learned.
And, depending on your reports, the wizard might be able to do
most of the conversion.
I don't know what you are using for 'graphing'. Most people
don't like MS Graph in Access, and are willing to switch
across to Report Services graphs.
(david)
"Beth Capone-Trembath" <bc******@jeffco.k12.co.us> wrote in message
news:40**********************@news.newsgroups.ws.. . Thank you for the input. Yes I agree we need to migrate to SQl reporting or Crystal or something else. We have someone here who has created MANY Access reports and is unwilling to give them up until they find another easy to use tool with strong graphing functionality. We will definately move to another tool with time. At the moment it is too much to recreate the over 100 reports that she currently has functioning. I will definately look into the reporting suggestion made above.
However, in the meantime, what I'm reading is that we will still have the same bottleneck despite the SQL move. Will we get ANY PERFORMANCE IMPROVEMENT AT ALL as a result of the move?
Thanks for your input everyone. BlueDolphin
*** Sent via Developersdex http://www.developersdex.com *** Don't just participate in USENET...get rewarded for it!
On 14 Jul 2004 19:05:43 GMT, Beth Capone-Trembath
<bc******@jeffco.k12.co.us> wrote:
With that number of reports, it may make sense to invest in a
conversion tool beyond the one built into SQL Sever Reporting Services
(RS). After all, a RS report is just an XML text file, which syntax
can be understood. Access reports can be opened in design view and
queried programmatically. Thus the road to a conversion tool that does
90% of the work is open.
-Tom. Thank you for the input. Yes I agree we need to migrate to SQl reporting or Crystal or something else. We have someone here who has created MANY Access reports and is unwilling to give them up until they find another easy to use tool with strong graphing functionality. We will definately move to another tool with time. At the moment it is too much to recreate the over 100 reports that she currently has functioning. I will definately look into the reporting suggestion made above.
However, in the meantime, what I'm reading is that we will still have the same bottleneck despite the SQL move. Will we get ANY PERFORMANCE IMPROVEMENT AT ALL as a result of the move?
Thanks for your input everyone. BlueDolphin
*** Sent via Developersdex http://www.developersdex.com *** Don't just participate in USENET...get rewarded for it!
> can be understood. Access reports can be opened in design view and
Or saved as text. They look kind of like VB form files.
(david)
"Tom van Stiphout" <no*************@cox.net> wrote in message
news:37********************************@4ax.com... On 14 Jul 2004 19:05:43 GMT, Beth Capone-Trembath <bc******@jeffco.k12.co.us> wrote:
With that number of reports, it may make sense to invest in a conversion tool beyond the one built into SQL Sever Reporting Services (RS). After all, a RS report is just an XML text file, which syntax can be understood. Access reports can be opened in design view and queried programmatically. Thus the road to a conversion tool that does 90% of the work is open.
-Tom. This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: Louis Eastwood |
last post by:
I am getting this error when trying to create a Snapshot report in
Access 97 on Win98 machine:
"Microsoft Access can't complete the Output operation.
The Visual Basic code you entered contains a...
|
by: Rick Brown |
last post by:
I'm trying to find a way to output a Access97 report to a file without
losing any of the formatting. The Microsoft Snapshot Viewer does this
perfectly but the person opening the file needs the...
|
by: Soly |
last post by:
I would like to use automation to print a snapshot file
from an snapshot viewer ActiveX control using the
PrintSnapshot method. The argument for this method is
True/False to show/hide the Print...
|
by: tom |
last post by:
Hey All-
I've exported a report to Access's "snapshot" format and want to put
it on a website for users to view. However, when I click on the link
to the snapshot file, I notice that my browser...
|
by: DavidB |
last post by:
I have a Snapshot Control in a continuous form and I want the source
for the control to be different for each instance of the continuous
data (based on one of the fields in the recrod source for...
|
by: Salad |
last post by:
Hi: I have the following line:
DoCmd.SendObject acSendReport, "TestReport", _
"SnapshotFormat (*.snp)", _
"joeblow@nowhere.com", , , "Report Test", _
"Does it open correctly?", True
I have...
|
by: Steven Thomas |
last post by:
I am working on a ASP.NET application using VB.NET.
I have a function that creates a snapshot file on a separate server
and passes a path back to the webpage. Now I want to display the
snapshot. ...
|
by: Stanislaw Tristan |
last post by:
Problem:
I created a custom exception that inherits from Exception and added a some
of new properties. All new properties filled in the constructors. When I
throwing this custom exception and go...
|
by: grant |
last post by:
Hi
I've copied Stephens code into my db, and can get it to work, but only
on "plain Jane" reports with no images.
Most of my reports has an unbound image obluect in them that I set to
an...
|
by: isladogs |
last post by:
The next Access Europe meeting will be on Wednesday 2 August 2023 starting at 18:00 UK time (6PM UTC+1) and finishing at about 19:15 (7.15PM)
The start time is equivalent to 19:00 (7PM) in Central...
|
by: erikbower65 |
last post by:
Using CodiumAI's pr-agent is simple and powerful. Follow these steps:
1. Install CodiumAI CLI: Ensure Node.js is installed, then run 'npm install -g codiumai' in the terminal.
2. Connect to...
|
by: isladogs |
last post by:
The next Access Europe meeting will be on Wednesday 6 Sept 2023 starting at 18:00 UK time (6PM UTC+1) and finishing at about 19:15 (7.15PM)
The start time is equivalent to 19:00 (7PM) in Central...
|
by: Taofi |
last post by:
I try to insert a new record but the error message says the number of query names and destination fields are not the same
This are my field names
ID, Budgeted, Actual, Status and Differences
...
|
by: DJRhino1175 |
last post by:
When I run this code I get an error, its Run-time error# 424 Object required...This is my first attempt at doing something like this. I test the entire code and it worked until I added this -
If...
|
by: Rina0 |
last post by:
I am looking for a Python code to find the longest common subsequence of two strings. I found this blog post that describes the length of longest common subsequence problem and provides a solution in...
|
by: DJRhino |
last post by:
Private Sub CboDrawingID_BeforeUpdate(Cancel As Integer)
If = 310029923 Or 310030138 Or 310030152 Or 310030346 Or 310030348 Or _
310030356 Or 310030359 Or 310030362 Or...
|
by: lllomh |
last post by:
How does React native implement an English player?
|
by: DJRhino |
last post by:
Was curious if anyone else was having this same issue or not....
I was just Up/Down graded to windows 11 and now my access combo boxes are not acting right. With win 10 I could start typing...
| |