PDA

Click to See Complete Forum and Search --> : Intranet to Internet? speed concerns, methods


Sep 11th, 2000, 06:27 PM
This one might just fascinate you =)

DAO
Access 97 Database
VB6 (orig. VB5)

Typical Client Company: NT server with multiple workstations running Windows 98

(I apologize for the length of this post, but I felt it necessary. I look forward to a discussion.)


Okay. Everything works wonderfully with my program, except for one thing: some of my clients are interested in sharing data between different locations. A location in this sense would ordinarily be a local network with one copy of the database on the server, with any number of clients connected to it. I am looking for a way to globalize (to coin a word) the database, so that each location could, if they chose, have a central location/server, instead of multiple, local servers, and in doing so, share data with no extra step involved. (where an extra step could be any number of ways to share information between the locations... something I am not familiar with either. If this extra step is easy, I am listening.)

Background info done =)

How would this normally be accomplished? The program itself has the ability to change the database that it is pointing to (to any valid path in Windows). So far, the only solution I've come up with is to map a drive through Network Neighborhood on the clients to \\<IP>\Shared. It does work, but the drive is slower than you'd expect, and does not use all the bandwidth available to it. (Even just copying a file to it does not go as quickly as it should!) So, the program is ordinarily quite fast, but it becomes unacceptably slow when the workstations are connected to a database that is accessed through this drive (i.e., through the internet to another computer with the database on it). Most of the time delays appear to occur when updating a recordset, or calling a query (and understandably so). Some of these can be measured in seconds! The initial connection to the database takes 10 seconds, but one-time delays are not a big issue. (Anything I can convert to one-time delays are a great plus, but I've only met with limited success, or an admitted case where it simply should have been less database-dependent)

I am looking for solutions, but I'm also interested in the concept in general. Mapping a drive to the host computer seemed obvious to me, but it's unusually slow. I'm looking for any solutions that work, either a miraculous way to speed up the "drive", or new approaches. The small company I work for is anxious to prove that we can beat our competitors at this game. (Who provide a hodgepodge mix of DOS, Windows, and dumb-terminal Unix-ish programs... some that have this ability but only painfully slowly, and I don't know that any of them use relational databases... we're talking acient technology. It is generally acknowledged that we have the best program in the market for what we do, but only if our program fits the specific customer, we don't "cover quite all the bases" for many larger customers, and we're clawing at the mid-range customers... but this would make a dent!)

All comments appreciated.

Mark Delano

PS - I seem to get about 8K per second through my DSL on my q: drive that is really a folder on my computer at home (which is on cable). This is VERY cool... I used to use an ftp program to upload to a site from work, and download from home. Normally, I can get a minimum 25K/s on DSL, and the cable is faster. It may only be that this is the wrong way to go about it, and that the computers aren't designed for this. Any thoughts?

PPS - If I can get it to work full speed over cable, at 70K+ bytes/sec (read: an 8 to 10 time speed increase), it would really solve the problem, and 25K/s might be acceptable with some internal optimizations in the program. I'll say one thing, it has helped me find unnecessary database calls! They sure stick out =) Thanks! I hope we can solve this one! =)

mikegt
Sep 12th, 2000, 07:21 PM
We use an internet connection at the remote sites with winproxy to connect to our Citrix Metaframe server. The apps that the remote sites need are running on the citrix server. It's very fast as only screen updates are sent to the remote' screen. One remote site is using ordinary dial up with a modem. Best speed he can get is 33kbps, sometimes slower. Another site use's ISDN. The new remote site to be added will use dial up modem connection. Hope this helps to point you in the right direction. If you need any additional info, drop me a line. Or if you want to take a look at citrix, go to http://www.citrix.com

I'm not a citrix sales person, I just like what it does for me!



[Edited by mikegt on 09-12-2000 at 08:24 PM]

JasonGS
Sep 13th, 2000, 12:48 AM
In addition to Citrix WinFrame, you might try Windows NT Terminal Services, but your project sounds like a candidate for a database server.

I would suggest setting up MS SQL Server 7 as it accepts imports from Access quite easily. I would then have the remote locations setup an ODBC connection pointing to the SQL server’s IP address using TCP/IP. I have setup systems in which a SQL server was accessed by a VB application over a 56K modem with acceptable performance.

SQL Server will offer you an improvement in performance for a number of reasons including the fact that SQL server gets and sends the actual data. When using a file-based solution such as Access, your session is slower because of the overhead of a NetBIOS session not to mention all of the other caveats that make Access (as well as other file-based databases) slow.

You also can use things like stored procedures and triggers which are not available to Access (well, unless you’re one of those “Macro Programmers” =c] )

Sep 13th, 2000, 12:47 PM
Because the program is Windows based, with users needing to change screens with some frequency, I can't imagine that we will have acceptable performance with the actual images of the screen being sent to the client, but it is a thought.

Right now, they have me writing a syncronization program, but I'm not thrilled about it. =) (Where say, once a day, in the middle of the night, the databases are matched against eachother and data is copied)

I admit I don't know too much about SQL Server. How much do those cost to set up per-customer? And exactly how could I go about converting my database? Also, what about updates to the database... could they be done in Access? Is it more of a conversion, or just SQL Server using the Database? And how much program code would have to be rewritten? Everything that has to do with the database? Obviously Databases aren't my specialty... :(

Thank you for your help!