~~~~~~~Forum Diskusi Software dan Internet untuk Kristen-Katolik~~~~~~~



mungkin bermanfaat :-)

hdk

The Truth About Access
By 15Seconds Discussion List 
http://www.15seconds.com/Issue/010514.htm



Eric Innocently Asks:

Can anybody give me the MS link where is stated that Access can handle 255 connections 
please? 

I can't find it anymore 

 
Luis Provides:

http://msdn.microsoft.com/library/backgrnd/html/acmsdeop.htm

 
Ian Sheds Some Light:

I can tell you from experience that Access cannot handle 255 concurrent connections. I 
don't care what MS says. We had a database with multiple tables. The main table where 
most of the data was retrieved from had about 5000 rows. After 7-8 concurrent 
connections we began to see serious problems with performance if not outright ASP 
crashes. 5000 rows and 7-8 concurrent connections is not a lot. We basically had about 
1000-2000 user sessions a day, also not a whole lot. We had to move the site up to 
SQLServer 7.0 and it works like a charm. If you are expecting 255 concurrent 
connections to your database DO NOT USE Access. If you do you will immediately need to 
redo your site to work with SQLServer or some other equally powerful data server. You 
have been warned. 

 
Dave Adds:

Access was never designed to be a database server. It's a great program for desktop 
database work, but on a practical basis, it is entirely unsuitable for ANY task where 
there will be more than a half a dozen (if that) concurrent connections on a regular 
basis. There are a whole host of issues that come into play with locking that make it 
unsuitable as a database server. MS isn't entirely forthcoming with the limitations of 
Access, but they do exist. 

In addition, the stress of using Jet (the access database engine) on the same box as 
IIS will slow down the entire web site. 

And to the person (Sam?) who was asked to back this fact up with documentation...It 
sounds like a management type person is questioning your technical knowledge. Probably 
because they don't want to (can't) spring for a SQL server installation. 

Just tell them that you have to pay if you want to play. Alternatively, you could look 
into MySQL which isn't a bad solution, but if you are developing db apps on the web 
using ASP, SQL server is the way to go. If they insist on having you use Access, tell 
them that you will do your best, but the results will not be acceptable. 

Not only is it robust enough to handle the traffic, but by moving to SQL Server, you 
can start dealing with access control (users & groups), logging, and moving your apps 
into a two-tier (or even n-tier) structure by using stored procedures. 

Just my 2 cents. 

 
Michael Gets Technical:

Access is Apartment-Single Threaded... (single use), multiple access is qued. 

SQL Server is Apartment + Free Threaded, multiple uses at one time. 

Access is fine for 1-10 users depending on the load, and size of the database. For 
more than that, a true database is better. (there are lesser expense, or free 
databases out there, that will perform better than an access tablespace) 

 
Ken Adds:

You can download the Kevin Collins Whitepaper on Microsoft Jet Locking from here: 
http://support.microsoft.com/support/kb/articles/Q176/6/70.ASP

256 connections are possible - but I wouldn't expect to see that possible in any kind 
of real world scenario - each connection would have to be doing something on a 
different table, so as not to generate any exclusive non-shared locks... 

 
A Frightened Danny Responds:

You guys are scaring me! 

We are using Access on a W2K shared server 

We have not had any problems as yet but usage at this stage is pretty light. 

It is certainly likely that we will have around 100 users concurrently accessing the 
database. 

We are a non profit organisation and cannot possibly afford the thousands of �'s that 
SQL server must cost. 

Is it possible to work with Access 2000 on our development machines and use SQL server 
on the remote server? 

 
Marcos Offers This Advice:

Danny, 

In your case, a MySQL with Linux will really help you move away from the access 
problem, I have too experience the problem wih Access 97 and 2000 , they are good up 
to a certain degree. But I will be against any "production level" environment using 
Access either for a web app or regular fat client. 

When I started the job I have now, we had about 10+ Access DB all over the company, 
now we have a SQL2000 server with all of this fragmented db converted into one. I can 
control security all the way to the table level and limit their usage on it. 

I know that for non-profit org, this is not a feasible alternative but then again how 
much value you can put on your data. 

Usually I tell my non-profit clients that their best alternative if $$ is a concern is 
to invest on a Linux with MySQL enviroment with PHP, that way their ASP guys do not 
get too many headaches recoding some of the queries. 

 
Danny Thanks Marcos But Has Concerns:

All our pages have been written using VBscipt ASP and Access type SQL 

Would a switch to Linux/MySQL mean a total re-write of the code??!! 

 
Rob Offers This Simple Solution:

just get the mySql database, the myODBC connector, and hook into it with ADO in your 
ASP pages. 

I've done it before, no problemo. 

 
Michael Clarifies the MySQL Solution:

MySQL is available for Win32 platforms (95/98/me/nt/2k etc.) It is free as it is now 
GNU'd, and open source. 

The ODBC connector allows you to connect to the database via ODBC, alternatively there 
are other methods you could use that would be faster (than odbc), if you are writing 
your own com object in vb, or c++. 

 
Stephen Explains The Difference Between Concurrent Users and Connections:

Danny, 

Keep in mind that a concurrent connection is different from a concurrent user. If your 
code is written well (i.e., database connections are opened only when they're needed 
and closed as soon as they're not needed any more), just a few concurrent connections 
could support hundreds of users. A concurrent connection means that an active database 
connection is open. Again, in a well-written app, this is only when a SQL statement is 
being executed (plus some time to set up and take down the connection). If you have 
one hundred users who hit a page that uses an Access database, odds are they all won't 
make a database request at precisely the same moment. 

While I agree that Access really should be avoided, there are too many people who have 
put a rule in their mind that *anyone* who even considers using MS Access with a Web 
site is daft (without really understanding the gospel they preach). I have seen some 
pretty robust applications that use Access as the back-end that perform well under 
some pretty decent loads (i.e., 25,000 accesses a day). 

So before you panic, look at your current app. Is is working? Is the performance 
acceptable? Has anyone complained? Don't fix what ain't broken. If it's a little slow 
for your tastes (but no one less seems to mind), look at improving the underlying 
code. You can wring some pretty big gains out of writing better code without changing 
the database. Then next time the application needs a major overhaul, consider changing 
the database, but don't start mucking around simply because a few people made some on 
the spot determinations about an application they've never seen or used. Any 
performance enhancements you've made to get Access to work quickly, will make the new 
database scream. 

 
Michael Adds:

In Access, 

1) use an ole-db connection with the jet engine, not an odbc connection
2) look into getstring, and getrows whenever possible.
3) open and close the connection any time you need to run a query.
4) combine queries, and use multiple recordsets whenever possible.
5) try to only run 1 recordset query on a page. (can still return multiple recordsets.)
6) use disconnected recordsets. 

Example.. 

setup multi-recordset query (multiple selects)
open connection
open recordset object
for each recordset returned, check for .eof, and assign to a different array, with 
.getrows
close recordset object
close connection 

(if you can't run all your queries for a page with one multiple recordset returned, 
open the connection as late as possible, and close it as soon as possible, still use 
disconnected recordsets, and update via conn.exec, not via recordset row objects) 

NOTE: even mysql, would perform better, although it doesn't do table relationship 
constraints, which means you have to make sure of your constraints in code. 

 
Roger Adds Caching to the Mix:

If caching is used carefully, Access can do quite well. 

The library that powers RSFAST @ http://www.learnasp.com/learn/rsfast.asp 
automatically caches every Access query that comes in and only dirties the cache if 
the filedate/time changes. (older versions demand the programmer specify a cache 
duration, now with Access it auto-caches with no additional code) 

You could hit it 10,000 times for say 150 different queries, i.e. "select .. where 
state='NY' ", "select .. where state='PA' ", etc. and it would only query the data 150 
times, the other 9,850 times would come out of the caches. 

My informal benchmarks of this are it always is 2.5 - 6 x faster for the cached data 
(and it doesn't HIT THE DATABASE thus concurrent use drops big time except for a quick 
check of the file date/time) if Access is involved. 

SQLserver even if not cached does quite a bit of caching and 1.5-2.5 x faster is a 
typical gain when this library accesses SQLserver but once again it would reduce the 
people touching the database and read locks! 

 
Stephen Concludes:

Your own observations are just as valid as the word of an alleged expert. Trust your 
instincts. It's very easy to follow along lists like this and try to change everything 
that you know already works and works in an acceptable manner for your situation. If 
an "expert" says X is true, but you know Y to be true as well, there's no reason to 
jump to X. 

Access is not the greatest database for widespread multi-user environments. In your 
particular case (and many others), Access is adequate enough to get the job done. 
You'll just need to make sure that you occasionally compress the database (if the 
users are doing updates and deletes) and make sure you have good backups. The most 
common problem with Access in a Web environment (besides the possibility of poor 
performance) is that the database file gets corrupted. The repair feature within the 
ODBC manager comes in handy in these cases (and actually works most of the time). 

This conversation string was taken from the 15Seconds ASP Listserv on 5/11/01. If you 
have an ASP-related question or would like to share some of your knowledge with 
others, you may join the list by clicking here.

 
 

 
 
Other Articles 
 Apr 23, 2001 - Integrating User Search with ASP and SQL Server Full-Text Search 
 This article presents sample source code for a user query parser that allows users to 
submit full-text search queries from ASP to SQL Server 2000.
[Read This Article]  [Top] 
 
 Apr 11, 2001 - Create a Fully Functional, Multifeatured ASP Shopping Basket 
 Many hosted e-commerce Web sites today still rely on their ISPs for shopping cart 
functionality - at additional monthly fees. This article by Manny Agrinya shows how 
you can painlessly design and program a multifunctional shopping cart application 
using standard hosting plan features like SQL Server, ASP, and ODBC.
[Read This Article]  [Top] 
 
 Mar 29, 2001 - Overcome Data Shaping Limitations 
 At some point in their career, most developers have had to create and store a 
hierarchy of information. Craig Huber will show you a brief overview of ADO Data 
Shaping and its associated limitations. Then he will explore a solution that overcomes 
the limitations and supports infinite levels in a hierarchy. 
[Read This Article]  [Top] 
 
 Feb 28, 2001 - The Truth About VarChar 
 Read what members of the 15Seconds Discussion list had to say on the properties of 
SQL VARCHAR. 
[Read This Article]  [Top] 
 
 Feb 15, 2001 - The Nature of A Recordset 
 Members of the 15Seconds discussion list clear up some confusion about the properties 
of ADO recordsets.
[Read This Article]  [Top] 
 
 Feb 9, 2001 - Importing Files into A Database 
 Read what advice members of the 15Seconds Discussion list had to offer on importing 
files into a database where field 1 contains the filename and field 2 contains the 
contents. 
[Read This Article]  [Top] 
 
 Jan 16, 2001 - Using the TDC to Access and Manipulate Legacy Data Client Side 
 IE provides the perfect tool for accessing legacy data stored in various formats over 
the Web. Ian Vink shows us how to harness the power of the Tabular Data Control 
feature.
[Read This Article]  [Top] 
 
 Nov 2, 2000 - Retrieving Dynamic XML from SQL Server 7.0 and 2000 
 SQL Server is packed with features for retrieving XML documents. Steven Woods offers 
a demonstration of extending a SQL Query via the RAW, AUTO, and EXPLICIT modes to 
illustrate the functionality available. The article then discusses the concept of 
templates, which allow the creation of dynamic parameter-based XML documents, and how 
templates can be executed via Visual Basic. 
[Read This Article]  [Top] 
 
 Oct 30, 2000 - ASP AND SQL-DMO:
Create a Server Component Encompassing the SQL-DMO Functionality 
 Creating an ASP component to manage SQL Server remotely is fairly easy. It only 
requires a basic knowledge of ASP, VB, and SQL Server. S.S. Ahmed's article 
demonstrates how to create a component that harnesses the power of SQL-DMO so you can 
manage SQL tasks remotely.
[Read This Article]  [Top] 
 
 Aug 31, 2000 - Creating Dependent Select Objects With ASP 
 Select boxes must often communicate with one another (i.e., a Child select object's 
option values depend on the value selected in the Parent object). Jason Butler details 
how to create a hierarchy of select objects using ASP, SQL, ADO, and JavaScript.
[Read This Article]  [Top] 
 
 Aug 17, 2000 - Introduction to Transact SQL User-Defined Functions 
 User-defined functions are a new feature in SQL Server 2000. Karen Gayda shows how 
UDFs can be used to enhance queries and provide functionality that was previously 
unavailable.
[Read This Article]  [Top] 
 
 Aug 10, 2000 - Calling Stored Procedures From Active Server Pages 
 With a low-level database, offering only basic data storing functionality, SQL code 
often needs to be embedded in Active Server Pages. With a more sophisticated database, 
stored procedures can be far more effective. Here's a case study, including code, 
showing how a database was converted to stored procedures.
[Read This Article]  [Top] 
 
 Jul 14, 2000 - Content Management Made Easy with ASP 
 Automated content management is a must for many web sites. It's difficult to provide 
fresh new content without a standard automated system. This article discusses how to 
generate a general submission system, as well as how to manage the work flow, all with 
examples!
[Read This Article]  [Top] 
 
 Jun 21, 2000 - Keeping Track of Who's In Charge Today? 
 Many offices, particularly in military and government organizations, are required to 
have someone in charge during office hours. If the official manager is absent, that 
person delegates responsibility to someone else as acting, but who?
A Key Personnel Today table shows who is acting in every official position and how to 
reach them.
[Read This Article]  [Top]
 
 
 Jun 8, 2000 - Get Your Data Faster with a Data Cache 
 Storing frequently used lookup data in a database is a great idea (e.g. order status 
codes, state names, etc.) that saves tremendous amounts of time in design and 
maintenance. However, retrieving that data from the database every time it is needed 
is very inefficient. This article describes how to use Application variables to cache 
frequently used lookup data in memory to achieve lightning fast access times. In my 
tests, I've seen as much as a 5000% increase in performance.
[Read This Article]  [Top] 
 
 Mar 23, 2000 - Using an ADO Standalone/Custom Recordset in VBScript 
 Developer Stephan Onisick shows us how to create a standalone/custom recordset and 
use its organizational ability to perform logical tasks with data without connecting 
to a database. This article uses a small application written using VBScript, ADO 2.1, 
and an Excel spreadsheet to record and print computer expenses for tax preparations. 
The standalone recordset is saved in XML format, and the file can be updated with new 
data simply by reopening as a recordset and using normal recordset methods.
[Read This Article]  [Top] 
 
 Mar 9, 2000 - SQL Solutions 
 Cindy Cruciger claims there is a better way to write a functional Active Server Page 
that allows interaction between a database file and the Web, without getting caught in 
an SQL nightmare. She offers a snippet of SQL code and adds some logical layers, error 
checking and formatting.
[Read This Article]  [Top] 
 
 Jan 31, 2000 - ASP-Oracle Connectivity Using OO4O 
 Selva Kumar�s article shows how to create practical Oracle database connectivity from 
ASP using Oracle Objects for OLE (OO4O). OO40, the Oracle middleware, allows native 
access to Oracle from client applications using the Microsoft Object Linking and 
Embedding (OLE) standard. Sample code is provided.
[Read This Article]  [Top] 
 
 Nov 11, 1999 - Database-Driven WWW Help System 
 The help system presented in Vujosevic and Laberge's article is self contained and 
can be updated and altered without impacting the original Web application. Much like 
an online book, the help icon in the Web application dives into an application system 
for the help option. Each Web page has its own separate help page with a database that 
contains one row in a table for every calling Web page. Sample code is provided.
[Read This Article]  [Top] 
 
 Oct 21, 1999 - Updating Excel From the Web 
 Bill Jeffries's article on Excel's Web Query tool demonstrates how to update selected 
spreadsheet cells instantly over an HTTP connection. 
[Read This Article]  [Top] 
 
 May 31, 1997 - Connection Pooling with ASP 
 Connection pooling might be the easiest way to speed up your dynamic web pages 
reading from SQL Server. Unfortunately, connection pooling within is turned off by 
default in Active Server pages. Probably because connection pooling is rarely 
understood in its entirety. This issue discusses connection pooling with ASP, ISAPI, 
IDC, and Visual Basic applications. Included is a discussion about ODBC 3.0 and the 
newest bug fix for ODBC.
[Read This Article]  [Top] 
 
 Dec 10, 1996 - ODBC 3.0 Connection Pooling 
 This issue of 15 Seconds contain an example of how to create an ISAPI server 
extension in MSVC 4.2 with ODBC 3.0 connection pooling. There is also an evaluation of 
ODBC 3.0, OLEDB, ADO and DAO.
[Read This Article]  [Top] 
 
 


salam

handita


------ Hemat Bandwith : Hapus pesan yang tidak perlu sebelum reply ------
SUBSCRIBE---> To:   [EMAIL PROTECTED], Isi/Body: kosong
UNSUBSCRIBE---> To: [EMAIL PROTECTED], Isi/Body: kosong
Moderator: Ronny <[EMAIL PROTECTED]>, Alex <[EMAIL PROTECTED]>
Web : http://hub.xc.org/cgi-bin/lyris.pl?enter=i-kan-software

Kirim email ke