473,387 Members | 1,548 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

Access -> SQL Server. Any benefit on a single PC?

8,435 Expert 8TB
Hi all.

I've been considering the use of SQL Server for a fairly large-ish database that I work with a bit. Mainly for performance reasons; it's working fine in Access, but some operations take longer than I like.

What I'd like to know is, given that this database lives on my local drive and is only used on the single PC, would I actually see any benefit by moving to SQL Server? And is there much work involved in the change? (I don't have SQL Server at present, but I gather there's a free version I can install).
Feb 3 '08 #1
12 1842
NeoPa
32,556 Expert Mod 16PB
I would say yes.
SQL Server is better designed to handle large databases. SQL Server works just fine on a local connection.

How much work involved? That's a hard one for me as I don't have much experience there. Ensure that you have the security tied down carefully before you start (obviously). It's more complicated in SQL Server, although more logical in a way - maybe easier even than Access security.

Most field types have a simple and direct association with the ones in Access, even if they are somewhat different.

For someone of your calibre, Killer, easy enough I would think. Certainly worth a go to see how much benefit it yields. The experience will be good for you too I would think.
Feb 3 '08 #2
ADezii
8,834 Expert 8TB
Hi all.

I've been considering the use of SQL Server for a fairly large-ish database that I work with a bit. Mainly for performance reasons; it's working fine in Access, but some operations take longer than I like.

What I'd like to know is, given that this database lives on my local drive and is only used on the single PC, would I actually see any benefit by moving to SQL Server? And is there much work involved in the change? (I don't have SQL Server at present, but I gather there's a free version I can install).
Hello Killer!
Since it is working fine in Access, the migration is primarily for performance reasons, it is a Single User configuration, and enhanced Security Measures do not appear to be an issue, why not make an attempt to Optimize those operations that are apparently sluggish. Obviously, I do not know the specifics of your DB, but migration to SQL Server may be comparable to killing a mosquito with a howitzer. Just for curiosity, how large is fairly large-ish, what is the Schema of your Database, and which Operations are sluggish and what exactly do they consist of? Just a few questions you may want to consider before you jump in to something as complex as SQL Server.
Feb 4 '08 #3
Killer42
8,435 Expert 8TB
Thanks for the input. A few responses...
  • I'm inclined to agree that it will be a worthwhile exercise just for the experience.
  • "Fairly large-ish" translates to around 75 million records, growing by perhaps 50,000 per day.
  • Schema? No idea what you mean. This is a "quick and dirty" database I've thrown together. I find programming quite easy, but have virtually no skills on the design side, so database is probably a mess.
  • I have tweaked the database (and VB code) to improve performance in a number of areas, and will probably be looking for others. In fact, one process which used to take a minute or less in VBA now takes ages in compiled VB6. The database structure and end result are the same, so there's obviously some scope for improvement there.
  • The problem areas generally seem to be simply a matter of the sheer volume. Daily processing dumps 50,000 records into the main table, and has to update tons of statistical information in other tables. This is done so that I don't have to wait 3 hours each time I ask for some stats later.
    I have some other questions in relation to this, which I'll put in another thread. I basically want to try and find the fastest way, working with Access (or SQL Server) from VB6, to dump a bunch of records into a table. Or to do a bulk update. But as I said, the details can wait for their own thread.
  • Security is not an issue in this case - not using any.
    Though of course it will be worth learning about the security features. Just as soon as I've had time to learn SQL Server, install and learn VB 2005 or 2008, etc etc etc. :(
Feb 4 '08 #4
Killer42
8,435 Expert 8TB
I guess a lot of this really boils down to one question. It's a fair assumption that I'm not doing things as efficiently as I could be in Access (and I'll be looking into this). But, is it likely that the same inefficient things would happen faster in SQL Server? :)
Feb 4 '08 #5
ADezii
8,834 Expert 8TB
I guess a lot of this really boils down to one question. It's a fair assumption that I'm not doing things as efficiently as I could be in Access (and I'll be looking into this). But, is it likely that the same inefficient things would happen faster in SQL Server? :)
Sheer size and volume would seem to dictate that a move to SQL Server would be an excellent option. I'd be willing to guess that you are, or currently will be, pushing the limits of Access anyway, and with a 50,000 influx of Records daily, a migration to SQL Server will be imminent. Good luck in your venture!
Feb 4 '08 #6
Killer42
8,435 Expert 8TB
Sheer size and volume would seem to dictate that a move to SQL Server would be an excellent option. I'd be willing to guess that you are, or currently will be, pushing the limits of Access anyway, and with a 50,000 influx of Records daily, a migration to SQL Server will be imminent. Good luck in your venture!
Heheh... way past the limits already. I had to split it ages ago into multiple back-end MDBs, with their tables linked to the front-end MDB. I'm adding a new MDB every quarter.

As far as I can recall (haven't been fiddling with it for a while), some of my code works with the linked tables, while other parts work out which MDB/table is required and work with it directly to cut out the middle man. Where I need to work with all or a bunch of them combined, I UNION them. Generally speaking, I'd prefer to be able to use one big table. Especially since Access seems to pretty much forget about indexes in certain circumstances, leaving you to wait while it scans tens of millions of unnecessary records.

This is not a critical application. I'm just thinking it might be "fun" to use as a test case to convert to SQL Server, and the slow parts are annoying me.

It'll also be a chance to refresh my memory on how it all works. Haven't been doing anything much with VB/Access for a while.
Feb 4 '08 #7
Jim Doherty
897 Expert 512MB
Heheh... way past the limits already. I had to split it ages ago into multiple back-end MDBs, with their tables linked to the front-end MDB. I'm adding a new MDB every quarter.

As far as I can recall (haven't been fiddling with it for a while), some of my code works with the linked tables, while other parts work out which MDB/table is required and work with it directly to cut out the middle man. Where I need to work with all or a bunch of them combined, I UNION them. Generally speaking, I'd prefer to be able to use one big table. Especially since Access seems to pretty much forget about indexes in certain circumstances, leaving you to wait while it scans tens of millions of unnecessary records.

This is not a critical application. I'm just thinking it might be "fun" to use as a test case to convert to SQL Server, and the slow parts are annoying me.

It'll also be a chance to refresh my memory on how it all works. Haven't been doing anything much with VB/Access for a while.
The fun ones are always the best! you can automate a lot of what you might need to do too... like loading (bcp...bulk insert) the data scheduling on a 'job', rebuilding indexes following load, truncating (super swift) view performance issues via execution plans, tracing, profiling. Throwing the data around more powerfully in SQL more join capabilities, temp tables, table variables, stored (pre compiled) procedures, user defined functions.

Making it efficient and fast though is the fun part. Speed tip: look at 'lock hints' in the context of where/how you can/maybe/should use them

SELECT * FROM tblMyTable WITH(NO LOCK)

overrides locking on the table during the select (speed gain as you might imagine - that you might want to benchmark yourself in the playtime with your huge datasets)

Regards

Jim :)
Feb 4 '08 #8
ADezii
8,834 Expert 8TB
Heheh... way past the limits already. I had to split it ages ago into multiple back-end MDBs, with their tables linked to the front-end MDB. I'm adding a new MDB every quarter.

As far as I can recall (haven't been fiddling with it for a while), some of my code works with the linked tables, while other parts work out which MDB/table is required and work with it directly to cut out the middle man. Where I need to work with all or a bunch of them combined, I UNION them. Generally speaking, I'd prefer to be able to use one big table. Especially since Access seems to pretty much forget about indexes in certain circumstances, leaving you to wait while it scans tens of millions of unnecessary records.

This is not a critical application. I'm just thinking it might be "fun" to use as a test case to convert to SQL Server, and the slow parts are annoying me.

It'll also be a chance to refresh my memory on how it all works. Haven't been doing anything much with VB/Access for a while.
The more you tell me, the more I'm convinced that the move is definately warranted. (LOL).
Feb 4 '08 #9
ADezii
8,834 Expert 8TB
The fun ones are always the best! you can automate a lot of what you might need to do too... like loading (bcp...bulk insert) the data scheduling on a 'job', rebuilding indexes following load, truncating (super swift) view performance issues via execution plans, tracing, profiling. Throwing the data around more powerfully in SQL more join capabilities, temp tables, table variables, stored (pre compiled) procedures, user defined functions.

Making it efficient and fast though is the fun part. Speed tip: look at 'lock hints' in the context of where/how you can/maybe/should use them

SELECT * FROM tblMyTable WITH(NO LOCK)

overrides locking on the table during the select (speed gain as you might imagine - that you might want to benchmark yourself in the playtime with your huge datasets)

Regards

Jim :)
Thanks for joining in Jim, if you didn't I was gonna request that you do so. (LOL). You definately seem to have a 'pulse' on SQL Server.
Feb 4 '08 #10
jaxjagfan
254 Expert 100+
You may want to take a look at SQL Server Express as it is free to start with. It has most of the same functionality as SQL Server. When going to SQL Server it has several cost structures but Small Business Edition may give ya the best bang for the buck.

You will want to look at system requirements as SQL Server is designed to run on a "database server" vice "file server". You may have to upgrade the hardware before installing.

If you work in a corporate environment, there may be SQL Servers that you can use to build your database and table structure on. There may be SQL Server DBA's available to give you a hand.

I use SQL Server DTS (Data Transformation Services) to move and transform data from and to multiple sources every day.

SQL Server has built-in feature to import your current structure from an Access database.

You may want to take a look at your table structures. It sounds like you are creating summary tables to make reporting quicker. If using Access MakeTable queries with large datasets try switching to Append queries - use a delete query to delete all data (its the same as truncate) and then append the data. This also gives you more control over your data types.

You are "crunching and compiling" the data - are there other users of the data (IE - report viewers)? If so then you will want the SQL Server set up on a network server. And if so you will have to consider licensing (Per CPU, Per Connection, Per User, etc).

FYI: Oracle has a free version as well if your corporate environment is Oracle.
Feb 4 '08 #11
Jim Doherty
897 Expert 512MB
Thanks for joining in Jim, if you didn't I was gonna request that you do so. (LOL). You definately seem to have a 'pulse' on SQL Server.
Thanks Dez....which version Killer goes for is a matter for him I have no idea what facilities are open to him 'corporately as Jax points too. If his company has enterprise wide licensing then he could hook into an existing server and use client tools. alternatively if standalone is the only way to go then one is down to msde or SQL Express which are cut back versions tools and management wise, but none the less powerful on the engine side. Heres a rather helpful blog that concisely describes some options

http://arcanecode.wordpress.com/2007...ing-a-version/

Jim :)
Feb 4 '08 #12
Killer42
8,435 Expert 8TB
Thanks for all the info. I'll definitely bookmark this for reference. It may be a week or two before I have a chance to get started.

I will say now though, "if it ain't free, it won't happen".

Oh, and automating the load probably won't happen. It's already "automated" in the sense that a VB program generates the data and loads it. Producing the info is quite a complex task; I'm scanning log files and picking out details such as when things started and ended. Some of them even span the end of a file and the start of the next one, which I don't get until the next day.
Feb 4 '08 #13

Sign in to post your reply or Sign up for a free account.

Similar topics

1
by: Dave | last post by:
Hello NG, Regarding access-declarations and member using-declarations as used to change the access level of an inherited base member... Two things need to be considered when determining an...
20
by: Olav.NET | last post by:
I am a .NET/C++ developer who is supposed to do some work with Access. I do not know much about it except for the DB part. Questions: *1* I am looking for INTENSIVE books to get quickly up to...
47
by: ship | last post by:
Hi We need some advice: We are thinking of upgrading our Access database from Access 2000 to Access 2004. How stable is MS Office 2003? (particularly Access 2003). We are just a small...
4
by: bbdobuddy | last post by:
Hi, How do I open a Microsoft Access 2003 form from Visual Basic.net Thanks in advance bbdobuddy
70
by: lgbjr | last post by:
Hello All, I've been developing a VB.NET app that requires the use of a DB. Up to now, I've been using Access. It's a bit slow, but everything works. I'm at a point now where I need to decide if...
49
by: Mell via AccessMonster.com | last post by:
I created databases on Access 2003 and I want to deploy them to users. My code was also done using 2003. If they have Ms Access 2000 or higher, will they be able to use these dbs with all code,...
17
by: Mell via AccessMonster.com | last post by:
Is there a way to find out where an application was created from? i.e. - work or home i.e. - if application sits on a (work) server/network, the IT people know the application is sitting...
37
by: jasmith | last post by:
How will Access fair in a year? Two years? .... The new version of Access seems to service non programmers as a wizard interface to quickly create databases via a fancy wizard. Furthermore, why...
37
by: Allen Browne | last post by:
If you develop for others, you probably have multiple versions of Access installed so you can edit and create MDEs for clients in different versions. This works fine under Windows XP, even with...
17
by: Neil | last post by:
A client of mine likes some of the new bells and whistles in Access 2007, and is thinking about converting our A03 format MDB to an A07 format file. However, while some of the users have A07, many...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.