Question Call Logging Application suggestion/help

nkotbox

Active member
Joined
May 28, 2011
Messages
31
Programming Experience
Beginner
I have created a call logging application for work using
VB.NET:
dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"
I have this back end database and a front end app. Currently the database is 284MB.

The customer database is ~50,000 customers and having multiple datasets has slowed down my pc considerably. Each call is logged and we generally get about 100 calls a day.

I am looking to change the application now to something much faster as the speed of the app is too slow, especially for multiple users.

Please give me suggestions on what to use that will speed this app up. Please consider that we have ~50,000 customers and nearly 100 calls a day.
 
What do you mean by "multiple datasets"? What exactly do you mean by "too slow"? What sort of performance are you getting and what sort of performance do you expect? Have you profiled your code to work out where the performance bottleneck(s) is? You can't just say that something is too slow and you want something faster and expect it to happen. You need to quantify the issue. 50,000 records and 100 transactions a day is not especially heavy usage.

That said, I would tend to recommend a proper RDBMS like SQL Server over a file-based database like Jet/Access for any multi-user system.
 
too slow

I meant datatable and typed dataset. When the app is started, multiple datatables are created. They include 1 for all the customers, 1 for all of the calls by the user who is logged in, 1 for all the customers arranged in a grid and finally 1 for the calls of the selected customer.

By too slow i mean when i try to save a call entry, which involves updating the datatable, writing to the database, clearing the datatable and then recreating the datatable, this process may take 90-120 seconds.

I would not know how to "profile" my code as I am not formerly trained. I took on this project to learn and I am sure my code is riddled with issues hampering the performance.

I will look into sql server and jet/access if uou yhink that is a good solution.

Also the database resides on a network server location. Do you feel the current app should be performing bettrr than what I stated? I have not tested if the issue is only due to yje location of the database. If so is it possible for many users to sync a temp database to the main at the end of the day?
 
You should first determine whether you need to get all the data that you're getting.
I meant datatable and typed dataset. When the app is started, multiple datatables are created. They include 1 for all the customers, 1 for all of the calls by the user who is logged in, 1 for all the customers arranged in a grid and finally 1 for the calls of the selected customer.
That says that you're getting all the customer data twice. Are you really? You can reduce that time straight off by just getting that data once.
By too slow i mean when i try to save a call entry, which involves updating the datatable, writing to the database, clearing the datatable and then recreating the datatable, this process may take 90-120 seconds.
Why would you throw away all the data you've already got, simply to get it all again?

You really need to do some profiling too. That simply means timing your code to see how long it actually takes. Isolate various operations, e.g. each individual query, and time it. You can then focus on only those parts that actually take a long time. The bottlenecks are not always where you think. Once you've identified the bottlenecks, you can show us just the relevant code and we can help determine whether it can be optimised. You should look at the Stopwatch class for timing. It does just what the name suggests.
 
Back
Top