Your SlideShare is downloading. ×
Microsoft® Access 2000: Choosing between MSDE and Jet.doc
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Microsoft® Access 2000: Choosing between MSDE and Jet.doc

516

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
516
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Microsoft® Access 2000: Choosing between MSDE and Jet White Paper Published: October 1998 Last updated: May 1999
  • 2. Table of Contents Table of Contents....................................................................................................2 Introduction...........................................................................................................3 What is Microsoft Access?........................................................................................3 Quick Synopsis of Jet 4.0 and MSDE..........................................................................4 Jet....................................................................................................................4 Microsoft Data Engine (MSDE) .............................................................................5 Comparing Jet and MSDE.........................................................................................6 Enterprise Requirements......................................................................................6 Jet and MSDE Usage Analysis...............................................................................7 Jet and MSDE Feature Analysis............................................................................10 Microsoft Access Upsizing Wizard............................................................................10 How to Obtain the Upsizing Wizard......................................................................11 Use Jet if…........................................................................................................13 Use MSDE if…....................................................................................................13 Appendix A: MSDE Specifications...........................................................................14 Appendix B: Access/Jet (.mdb) Specifications..........................................................16 Microsoft® Access 2000 Data Engine Options 2
  • 3. Microsoft Access 2000 Data Engine Options White Paper For the latest information, please see http://www.microsoft.com/sql/ Introduction With the release of Microsoft® Access 2000, users and developers now have the choice of two data engines in the product: an improved version of the existing Access engine, called Jet, or the Microsoft Data Engine (MSDE), which is compatible with Microsoft SQL Server™ 7.0. MSDE is an enabling technology that provides local data storage and offers compatibility with SQL Server. This is similar to Microsoft Jet, the data engine that currently exists in Microsoft Access. Although Access 2000 uses and installs the Jet data engine by default, developers who want to develop a single application that is also compatible with Microsoft SQL Server™ will want to use MSDE. The specific purpose of this white paper is to help you determine which data engine, Jet or MSDE, to use with Access 2000. The data engines are compared three ways: by enterprise requirements, usage analysis, and feature analysis. In short, Jet works best if you want the highest compatibility with Access 97 or earlier versions; MSDE works best for new applications if you want to develop from a single code base that scales from a single user to thousands of users or if you ever anticipate a future need to scale up to SQL Server. By the end of reading this short paper, you will be able to determine which data engine best meets your requirements. What is Microsoft Access? Microsoft Access 2000 is a powerful relational database application that a desktop user can use to efficiently create and manipulate database systems. Access targets the desktop category and works best for individuals and workgroups managing megabytes of data. For multi-user access to the same database, Access uses file-server architecture, rather than client-server architecture. Access is included in the Professional, Premium, and Developer Editions of Microsoft Office. As a leader in the desktop database category, Microsoft® Access makes it easy for users to find and manage their data to make better business decisions. With Microsoft® Access 2000 Data Engine Options 3
  • 4. strong integration with Microsoft Office, Access offers a similar appearance and functionality to that found in the popular Microsoft Word and Excel applications. For general business users, Access provides ease-of-use wizards throughout, such as the Database Wizard for getting up and running quickly, and the Simple Query Wizard for easily finding information from the data. More advanced users appreciate the power behind the Microsoft Visual Basic® for Applications programming language, programmable toolbars, and the freely distributable runtime version of Access available with the Office Developer Edition. The combination of ease-of-use and power in Access makes it the top choice among developers who frequently use Access as a front-end to SQL Server in a client- server scenario. Access has two major components. The first contains an application development environment for Visual Basic for Applications programmers that include forms technology, reports and database administration. In addition, as mentioned earlier, there is also the User Interface (UI) common to both Access and the other Office applications. The second component in Access, and the main topic of this paper, is the data engine. Before Access 2000, users and developers were using the Jet data engine, whether they knew it or not. In the next version, users and developers will be given a choice of data engines. They can continue with an improved version of the default Access data engine Jet 4.0, or MSDE, a new data engine option in Access 2000. Quick Synopsis of Jet 4.0 and MSDE In this section, we will quickly review the enhancements made to the Access default database engine, Jet, and introduce the functionality of MSDE. Jet Jet 4.0 is the default data engine for Access 2000. It is a new and improved version of Jet 3.51, the data engine in Access 97. Jet 4.0 contains the following enhancements: • Full UNICODE support • Sorting compatible with the Windows NT® operating system on Windows® 95 and 98 and Windows NT • Row-level Locking • Enhanced support for ANSI SQL92 and compatibility with SQL Server (examples include GRANT/REVOKE, DECIMAL type data type, and Declarative Referential Integrity) • Jet/SQL Server 7 bi-directional replication • Enhanced replication conflict resolution • Native OLE DB provider Microsoft® Access 2000 Data Engine Options 4
  • 5. Although many users of Access are individuals, there is a wide spectrum of uses. However, most users have databases under 50MB in size. Microsoft Data Engine (MSDE) MSDE is the new data engine for Microsoft and is completely compatible with the SQL Server 7.0 code base, enabling customers to write one application that scales from a PC running the Windows 95 operating system to multiprocessor clusters running Windows NT Server, Enterprise Edition. A single data store compatible with SQL Server is the Microsoft strategic direction. Some of the technologies included in MSDE are: • Dynamic Locking. This automatically chooses the optimal level of lock (row, key range page, or table) for all database operations. It maximizes the trade-off between concurrency and performance, resulting in optimal usage. No tuning is required. • Unicode. This improves multilingual support. • Transaction Log. MSDE contains at least one data file and one transaction log file that is a serial record of all modifications that have occurred and can be used to recover transactions. • Dynamic Self-Management. This enables the server to monitor and manage itself, allowing for hands-off standard operations. • Merge Replication. This allows users to modify distributed copies of a database at different times online or offline and the work is later combined into a single uniform result. MSDE may be either a publisher or subscriber. • Transactional Replication. MSDE may be used as the “subscriber” to a SQL Server “publisher”. The publisher can replicate two distinct types of objects: tables and stored procedures. Changes made at the Publisher flow continuously or at scheduled intervals out to subscribing sites. MSDE incorporates technology from SQL Server 7. By using MSDE, developers can leverage their existing work and later choose to scale up to a SQL Server to enable hundreds or even thousands of users to use SQL Server 7.0 features like: • Data Transformation Services. This makes it easy to import data from any source (ex: OLE databases, Windows NT Directory Services, and spreadsheets) and transform or export it to any other data source • Microsoft SQL Server OLAP Services. This enables fast, efficient analysis of complex information by optimizing data access to enable your organization to get the specific data it needs quickly. The Pivot-Table® Services run on client workstations and provide desktop multi- dimensional analysis by making the Pivot Table dynamic views more intuitive and putting all of the PivotTable options on the screen for your use. For the first time, Excel users can analyze Gigabytes and Terabytes of data by using Microsoft SQL Server 7.0. Microsoft® Access 2000 Data Engine Options 5
  • 6. • English Query. This allows users to pose questions in English instead of forming queries with complex SQL statements. • Parallel Queries. This allows steps in a single query to be executed in parallel, delivering optimal response time. Comparing Jet and MSDE This section compares these two data engines in three different ways: by enterprise requirements, usage, and feature set. After reading this section, you should have a good understanding of which data engine is right for you. Enterprise Requirements If you are developing or using Access in an enterprise environment, MSDE is the recommended data engine. Even if your current needs are not enterprise level, using the Access front-end with the MSDE back-end will help ensure that your database will be in the optimal position for scaling as your business needs grow. Enterprise applications require scalability, security and robustness, which can be implemented with MSDE or SQL Server but not with Jet. For example, if your application needs transaction support, even in the event of a network, server, client computer, or client application crash, then you will want to use MSDE or SQL Server. Conversely, the Jet engine does not support atomic transactions: it does not guarantee that all changes performed within a transaction boundary are committed or rolled back. Another important issue to corporate environments is security. MSDE and SQL Server are integrated with Windows NT security; Jet security is not. This makes administering Jet more expensive than administering MSDE or SQL Server 7.0. The chart below shows these two potential enterprise requirements and how each of the data engines compare. If your business has any of the needs listed in the left column, you will want to implement MSDE; if not, you will need to continue on to the next section to determine which is right for you. Microsoft® Access 2000 Data Engine Options 6
  • 7. Requirement MSDE Microsoft Access (Jet) Scalability • Recommended up to 5 • Recommended for concurrent users up to about 20 total (easily scales to SQL users Server to obtain unlimited number of • 2 GB of data concurrent users) • No transaction • 2 GB of data logging • Transaction Logging Ease in • Seamless since based • Access Upsizing upgrading to on the same Wizard: converts SQL Server technology: Simply Access/Jet Table detach the database objects to SQL via Access/MSDE and Server. Makes no then re-attach from modifications to within the SQL Server Forms, Reports, Enterprise Manager; Queries, Macros, or Preserves all stored Security. May procedures, objects, require some views. modification upon conversion. EXAMPLE using Pubs database: • Data Transformation 1) sp_detach_db ‘pubs’ Services: Imports 2) sp_attach_db ‘pubs’, data only. ‘C:mssql7datapubs.mdf’ Business • 7X24 support and QFE • No 7X24 support or Critical QFE • Point-in-time recovery • Recoverable to last • Guaranteed backup transaction integrity • No transaction • Built-in fault tolerance logging • Security integrated • No integrated with Windows NT security with Windows NT Rapid • Access is UI for both engines and offers WYSIWIG Application database tools and built-in forms generation. Prototyping Jet and MSDE Usage Analysis There are four key usage criteria to consider when choosing your database engine. Let’s review them in priority order. Microsoft® Access 2000 Data Engine Options 7
  • 8. • Simplicity. Jet 4.0 has the highest compatibility with Access 97 and earlier versions. If you have existing applications developed for Access, Jet is your easiest and probably best option given its compatibility with Access 97 and earlier. Jet is easier to use and administer than MSDE, making it a good choice for new and relatively simple database applications that do not have compatibility concerns with SQL Server. It has low resources for memory and disk and requires nearly zero administration. Jet is also the default database option for Access 2000. A database created using the Jet engine can always be upsized later to SQL Server using the Upsizing Wizard although additional modification may be required. (a) Advantage – Jet • Data Integrity. MSDE incorporates technology from SQL Server 7. SQL Server delivers a single code base, which scales from a PC running Windows 95 to multiprocessor clusters running Windows NT Server, Enterprise Edition, offering 100% application compatibility. Jet does not have this type of scalability as it is confined to the Access product. MSDE is a client/server data engine; Jet is a file/server data engine. The big advantage that MSDE has over Jet is that MSDE is a process that runs queries and logs transactions. If anything should go wrong during a write to the database, such as disk error, network failure or power failure, MSDE can recover as it logs transactions. After the system comes back up, MSDE will revert back to the last consistent state. This gives MSDE greater reliability than Jet. If the system were to go down with Jet, the database could be corrupt and you may need to revert back to your last backup copy. MSDE is the right engine for systems that involve important transactions, such as financial applications, or for mission critical applications that need to be up 24 hours per day, seven days a week, such as the Internet. The more important the database, the more likely you are to choose MSDE. (b) Advantage – MSDE • Number of Simultaneous Users (Performance). SQL Server 7.0, the basis for MSDE technology, can handle a very large number of simultaneous users. Jet and MSDE are optimized for individual or small workgroup solutions. MSDE also has a performance advantage over Jet for large sets of data and many simultaneous users. Because Jet is a file-server system, the query processing must happen on the client. This involves moving a lot of data over the network for large databases. MSDE runs that same query on the server. This loads the server more, but can reduce network traffic substantially, especially if the users are selecting a small subset of the data. If you are creating a new application for a small group of users, MSDE or SQL Server will help your application scale in the future. Microsoft® Access 2000 Data Engine Options 8
  • 9. (c) Advantage – MSDE and SQL Server for scalability. • Amount of Data. Jet can handle up to 2 GB of data per MDB file. MSDE also supports 2 GB of data per database. Microsoft® Access 2000 Data Engine Options 9
  • 10. Jet and MSDE Feature Analysis The third and final way to decide on which engine is best for you to use is by analyzing features of both engines. The partial feature listing below is intended to assist Microsoft Access users in deciding between the Jet engine and MSDE. Features Jet MSDE Heterogeneous joins X X Top n and top n% queries X X Validation rules X X Default values X X Triggers and stored procedures X Referential integrity through triggers X Declarative referential integrity X X Engine level cascading updates and deletes X Basic locking unit Row Row Row locking on insert X X Field-level replication X X Custom code for replication conflict resolution X X Scheduled replication X (requires Microsoft X Office 2000 Developer Built-in security X (file level read/write X password or permissions via OS) Built-in encryption X X Distributed transactions X Dynamic backup and restore X Transaction log backups X Automatic Recovery X 32-bit engine X X Data capacity 2 GB per database 2 GB per database. Scalable to SQL Server which supports TBs per database Microsoft Access Upsizing Wizard The Microsoft Access Upsizing Wizard utility takes a Jet database and creates an equivalent database on SQL Server with the same table structure, data, and many other attributes of the original database. It will recreate table structures, indexes, validation rules, defaults, autonumbers, and relationships, and takes advantage of the latest SQL Server functionality wherever possible. However, there are no modifications made to reports, queries, macros or security. The Upsizing Tool can convert simple Select queries with moderate levels of nesting. Microsoft® Access 2000 Data Engine Options 10
  • 11. VBA references cannot be upsized so they will need to be re-set. If the solution contains DAO code, it will need to be converted to ADO. The Upsizing Wizard has three main functions: • Migrating databases from Jet to SQL Server • Creating Access and SQL Server applications via Jet linked tables • Creating Access and SQL Server applications via Access Projects (new development model in Access 2000 that uses an Access project file connected directly to a SQL Server database via OLE DB). This tool allows developers who design client-server applications on their desktop in Access to generate a SQL Server database from their prototype. Also, developers who have existing Jet-based applications will be able to grow those applications to SQL Server and take advantage of its technology. The wizard will run from a read-only share and use a temporary database to store information about the upsizing process. All user-preferences will be stored in the registry on a per-user basis. How to Obtain the Upsizing Wizard The Access 2000 Upsizing Wizard is available in Access 2000 under Tools+Database Utilities+Upsizing Wizard. This version will upsize Access 2000 Jet-based applications to SQL Server 7.0 or MSDE. Any version of Access may be first converted to Access 2000 in order to use this version of the Upsizing Wizard. Access 97 users may take advantage of the Access 97 Upsizing Wizard for SQL Server 7.0. This version assists Access 97 users who wish to upsize directly to SQL Server 7.0 (bypassing Access 2000). This version of the wizard is freely downloadable on http://www.microsoft.com/AccessDev/ProdInfo/AUT97dat.htm. Migration Options for Access to SQL Server 7.0 Data Transformatio Access Upsizing Wizard n Services* Acces Use Access 2000 Upsizing Wizard available in Access 2000 s Yes under Tools+Database Utilities+Upsizing Wizard. 2000 Acces Use Access 97 Upsizing Wizard for SQL Server 7.0 available s 97 for download from Yes http://www.microsoft.com/AccessDev/ProdInfo/AUT97dat.ht m Acces Upsizing Wizard not available for SQL Server 7.0; s 2.0, Recommended approach is to use either the SQL Server Data Yes Acces Transformation Services, OR upgrade first to Access 2000 s 95 and then use the Access 2000 Upsizing Wizard. Microsoft® Access 2000 Data Engine Options 11
  • 12. * Available with SQL Server 7.0, Data Transformation Services can transport data from any OLE DB- compliant data source to any other OLE DB-compliant data source. Microsoft® Access 2000 Data Engine Options 12
  • 13. Conclusion Hopefully by now, you understand which database engine in Access 2000 best meets your requirements. Below is a capsule summary. Use Jet if… • You want the highest compatibility with Access 97 or earlier. • Your environment has a small number of simultaneous users. • You have very low resources, such as memory or disk. • Ease of use is a premium. Use MSDE if… • You want to develop from a single code base scalable from single user to thousands of users. • You expect a future need for greater scalability. • You require easy merge replication with the central server. • You need the best security. • You need greater reliability, such as transaction logging. • Your system is online 24 hours a day, 7 days a week. • You need stored procedures and triggers. For more information: http://www.microsoft.com/office/  This is a preliminary document and may be changed substantially prior to final commercial release. This document is provided for informational purposes only and Microsoft makes no warranties, either express or implied, in this document. Information in this document is subject to change without notice. The entire risk of the use or the results of the use of this document remains with the user. The example companies, organizations, products, people and events depicted herein are fictitious. No association with any real company, organization, product, person or event is intended or should be inferred. Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation. Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property. Unpublished work. © 1999 Microsoft Corporation. All rights reserved. Microsoft, the BackOffice logo, the Office logo, Pivot Table, Visual Basic, Windows, and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Other trademarks and trade names mentioned herein are the property of their respective owners. Part Number 098-81609 The names of actual companies and products mentioned herein may be the trademarks of their respective owners. Microsoft® Access 2000 Data Engine Options 13
  • 14. Appendix A: MSDE Specifications Number of concurrent users 5 concurrent* Batch size 65,536* Network Packet Size Bytes per short string column 8000 Bytes per text, ntext, or image column 2 GB-2 Bytes per GROUP BY, ORDER BY 8060 Bytes per index 900 Bytes per foreign key 900 Bytes per primary key 900 Bytes per row 8060 Bytes in source text of a stored procedure Lesser of batch size or 250 MB Clustered indexes per table 1 Columns in GROUP BY, ORDER BY Limited by no. of bytes Columns or expressions in a GROUP BY WITH CUBE or WITH ROLLUP statement 10 Columns per index 16 Columns per foreign key 16 Columns per primary key 16 Columns per base table 1024 Columns per SELECT statement 4096 Columns per INSERT statement 1024 Database size 2 Gb Databases per server 32,767 Filegroups per database 256 Files per database 32,767 File size (data) 2 GB File size (log) 2 GB Foreign key table references per table 253 Identifier length (in characters) 128 Locks per connection Max. locks per server Locks per server 2,147,483,647 (static) 40% of SQL Server memory (dynamic) Nested stored procedure levels 32 Nested subqueries 32 Nested trigger levels 32 Nonclustered indexes per table 249 Objects concurrently open in a server* 2,147,483,647 Objects in a database* 2,147,483,647 Parameters per stored procedure 1024 REFERENCES per table 63 Rows per table Limited by available storage SQL string length (batch size) 128** TDS packet size Microsoft® Access 2000 Data Engine Options 14
  • 15. Tables per database Limited by number of objects in a database Tables per SELECT statement 256 Triggers per table Limited by number of objects in a database UNIQUE indexes or constraints per table 249 nonclustered and 1 clustered * Microsoft recommends up to 5 concurrent users for MSDE. This threshold is reached due to a performance throttle designed with a complex, patented formula based on aggregate load. The setting is such that, exceeding 5 concurrent users causes overall throughput to begin to decrease and will continue to decrease at increasing rates as additional users are added. Microsoft recommends developers benchmark MSDE against their workloads for a better indicator of performance in a particular situation. ** Database objects include all tables, views, stored procedures, extended stored procedures, triggers, rules, defaults, and constraints. The sum of the number of all these objects in a database cannot exceed 2,147,483,647. Microsoft® Access 2000 Data Engine Options 15
  • 16. Appendix B: Access/Jet (.mdb) Specifications File size (.mdb filetype) 2 GB No. of objects in a database 32,768 Modules 1,000 Number of characters in an object name 64 Number of characters in a password 14 Number of characters in a user name or group name 20 Number of characters in a table name 64 Number of characters in a field name 64 Number of fields in a table 255 Number of open tables 2048. Table size 1 gigabyte Number of characters in a Text field 255 No. of characters in a Memo field (data entered via UI) 65,535 No.of char. in a Memo field (data entered programmatically) 1 gigabyte Size of an OLE Object field 1 gigabyte Number of indexes in a table 32 Number of fields in an index 10 Number of characters in a validation message 255 Number of characters in a validation rule 2,048 Number of characters in a table or field description 255 Number of characters in a record 2,000 Number of characters in a field property setting 255 Microsoft® Access 2000 Data Engine Options 16

×