JWColby
jwcolby at colbyconsulting.com
Thu Oct 5 20:06:31 CDT 2006
Looks good. Now... As with all time estimating, a very realistic time estimate can be found by taking the number and multiplying it by 3. Then take the unit and increase it by 1. In other words, if you think it will take 15 minutes, multiply 15 times 3 (45) and up the minutes to hours. Other than that, your estimates look fine to me. Seriously though, 1. Migrate Data to SQL. Resetting of autonumbers, referential integrity, some indexes. 332 instances @ 10 minutes = 55 hours Multiply by at LEAST 3. 2. Convert queries to views. Convert high-impact queries into Views and Stored Procedures. For each of those migrated queries, redesign filtering code to pass parameters back to SQL Server. 1451 instances @ 15 minutes = 362.75 hours. Limiting to high impact queries: 300 instances @ 15 minutes = 75 hours. Multiply by at LEAST 3. Etc. Etc. Etc. And yes, I am serious. You will have no clue until you get in there what a mess you have. Access allows things that SQL Server does not, such as referencing home built functions in VBA inside of queries. How do you replace those? Referencing built-in VBA functions inside of queries. Easier to replace but still often not trivial. You have to learn the similarities and differences between the Access version and the SQL Server equivalent. And what about data type differences? You will end up completely rewriting portions of your application inside of SQL Server. The more "Access tricks" in the Access app, the tougher it will be to rewrite. And one thing you missed completely is testing of the changes to ensure that the result still does whatever it did originally, with exactly the same result. Access was designed from the ground up to be a RAD environment and in order to achieve this it gives you power beyond anything that SQL Server has ever imagined. I will be watching this thread closely, I can tell you that. John W. Colby Colby Consulting www.ColbyConsulting.com -----Original Message----- From: dba-sqlserver-bounces at databaseadvisors.com [mailto:dba-sqlserver-bounces at databaseadvisors.com] On Behalf Of Steve Capistrant Sent: Thursday, October 05, 2006 5:56 PM To: dba-sqlserver at databaseadvisors.com Subject: [dba-SQLServer] Access BE to SQL Well, looks like I'm going to be hanging out in this group a little more. My team is about to migrate an Acc/Acc (AccessFE over AccessBE) application to Acc/SQL (AccessFE to SQL Server). I'm sure this topic has been well discussed, but could I please as for some starter tips and feedback? Also, I am considering hiring out some or all of this to someone who's done it a few times, so let me know if you are interested. The Acc/Acc app is a mature 6 year old system sold commercially, but getting unwieldy in size, speed, and corruptability. Long term plan is VB.NET over SQL. Short term (1 year) is to just get the BE in place, and rewire the FE. Pushing heavy queries to the BE are expected to go a long way in improving performance, buying us time to migrate the FE later. The application has 332 tables, 940 saved queries, 239 queries dynamically defined in code, 282 reports, 119 code modules, 899 recordset manipulations, and over 25,000 lines of code. FE is 27 meg (in MDE format) and growing. Here's the essential task list as we see it (lacking experience), including an estimate of time: 1. Migrate Data to SQL. Resetting of autonumbers, referential integrity, some indexes. 332 instances @ 10 minutes = 55 hours 2. Convert queries to views. Convert high-impact queries into Views and Stored Procedures. For each of those migrated queries, redesign filtering code to pass parameters back to SQL Server. 1451 instances @ 15 minutes = 362.75 hours. Limiting to high impact queries: 300 instances @ 15 minutes = 75 hours. 3. NewID modification. Adjust the programming code in all places where a new record is created and the resulting unique ID is captured. Access and SQL behave differently - Access allows capture before posting, SQL does not. 66 instances @ 15 minutes = 16.5 hours. 4. Boolean field modification. Access and SQL both support a Boolean data type SQL allows a null option whereas Access does not. All default Boolean settings in the app must be reviewed and changed as necessary to account for this difference. 664 instances @ 5 minutes = 55 hours. 5. Paging on List Views. Currently, all list views (on forms) are structured to allow display unlimited number of records (often returning hundreds of thousands of records). To minimize the traffic hit, we want to reengineer few of the biggest ones to implement paged subsets (e.g., 100 at a time). 15 major list views @ 2.5 hours each = 37.5 hours. Targeting high impact only: 5 lists@ 2.5 hours = 12.5 hours. ------- How's that look? Missing things? Over/underestimating time? Thank you in advance. Steve Capistrant Symphony Information Services scapistrant at symphonyinfo.com www.symphonyinfo.com Main: 763-391-7400 ext 801 Toll Free: 888-357-1373 ext 801 Direct: 612-237-0075