Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

should i advocate migrating from access to (my)sql

We have a windows MFC app that is written against an access database on a company server. The db is not that big: 19 MB. There are at most 2-3 users accessing it at any one time. It is used in a factory environment where access speed (or lack thereof) over the intranet becomes noticeable as it is part of the manufacturing time for our widgets.

The scenario is this: as each widget is completed, it gets a record in the db.. by the end of the year, the db is larger and searching for a record takes longer and longer. The solution so far has been to manually move older records to an archival table about once a year.

We are reworking other portions of this app right now, and it would be a good time to move to another db if we are going to do it.

It is my understanding that if we were using sql, the search time would not go up as the table gets bigger because the entire .mdb does not have to be sent over the network each time. Is this correct? Does anyone have any insight about whether it could be worth it to go to the trouble (time and money) of migrating to a new db, or should I just add more functionality to the application we have now, and maybe automatically purge the older records from time to time, and add additional facilities to the app to get at the older records when needed?

Thanks for any wisdom you can share..

like image 445
HotOil Avatar asked Dec 06 '22 02:12

HotOil


2 Answers

Since your database is small and very few users, I could not make a solid case for migration. I would definetly set up an script to archive old records on a more frequent basis (don't archive into same db, this would somewhat defeat the purpose). But also make sure two things are correct as well.

  1. INDEXES. If your queries start slowing down, make sure you have proper indexes http://support.microsoft.com/kb/304272
  2. Your network connection between computers is fast. Maybe upgrade to gigabit cards and router? Possibly put the db on a scsi drive (raid 10 for speed and redundancy)

Throwing advanced technology at simple problems is an expensive way to go and not always the answer!

like image 169
RandyMorris Avatar answered Dec 21 '22 19:12

RandyMorris


First of all, the information that the whole table and the whole database is transferred across the network is simply incorrect. If the queries are indexed, then the search times should not go up that much over time.

As others have mentioned spending the time + money to setup and maintain and then have someone maintain and manage and support that database server is certainly a possibility here. However, keep in mind that simply migrating a JET based application to sql server in many cases will run slower, and in fact sql server is slower then JET when no network is involved.

So, I would take some time to ascertain why things slow down so much, and also check into how indexing is setup.

So, just keep in mind that it is pure folklore and myth that the whole tables and whole database is transferred over the network. This concept is ONLY DUE to most people really not having any computer training and not knowing and understanding how the JET data engine works.

like image 27
Albert D. Kallal Avatar answered Dec 21 '22 19:12

Albert D. Kallal