Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 10 of 15 total
Thread Problem with a multi-users database access
Fri, Feb 1 2013 12:04 PMPermanent Link

Mahistre

Hello,

we have translated a delphi6-Paradox program into a Dephi6-DBIsam program. The database is located onto a Server (W2K3). With one single user, opening a big table works fine but with 2 or 3 users, shared access is very long.

We tried some parameters (like BlobBlockSize) but no better result. We are searching for optimization parameters, from the engine or table structure. Our last test was adding the DBIsamEngine and changed some properties for buffer but it's still the same.

BDE worked quick and fine and unfortunately there's no time for a C/S solution.

Thanks for your answer.

David MAHISTRE
ARCADE Company
Fri, Feb 1 2013 1:01 PMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Mahistre


>we have translated a delphi6-Paradox program into a Dephi6-DBIsam program. The database is located onto a Server (W2K3). With one single user, opening a big table works fine but with 2 or 3 users, shared access is very long.
>
>We tried some parameters (like BlobBlockSize) but no better result. We are searching for optimization parameters, from the engine or table structure. Our last test was adding the DBIsamEngine and changed some properties for buffer but it's still the same.
>
>BDE worked quick and fine and unfortunately there's no time for a C/S solution.

Almost certainly its a Windows problem - search these ngs for the keyword OpLocks. There's not much you can do apart from going to c/s.

It might be that a simple change to c/s without doing any work to optimse things would show some benefits. It shouldn't take much more than changing the session type to remote and firing up the server software.

Roy Lambert [Team Elevate]
Sat, Feb 2 2013 11:33 AMPermanent Link

Fernando Dias

Team Elevate Team Elevate

Mahistre,

In addition to what Roy said, another thing that you should try is to revise all the indexes and check if they are optimally designed - sort order, case sensitivity/insensitivity, tables indexed on the fields that you use for sorting and searching, etc.. That alone might make a huge difference.

--
Fernando Dias
[Team Elevate]
Mon, Feb 4 2013 6:36 AMPermanent Link

Mahistre

Ok thank you for your answer,

I want to test the c/s architecture but how i can do it quickly ?

Can you explain to me , how i can use the different objects dbisam like engine et session ?

I would like to test simply with an table access with c/s for validate the solution...

It's very important to me and my enterprise ...


Thank a lot
David mahistre.
Best regards
Mon, Feb 4 2013 7:36 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Mahistre


I don't use c/s personally, and I switched to ElevateDB ages ago, however, it should be little more than starting the server (you get a 5 connection server free with DBISAM), changing the connection from local to remote and recompiling your software.

As I remember it was covered quite well in the pdf manual. You should also find a fair bit of help in these ngs if you search for server or c/s

Roy Lambert
Mon, Feb 4 2013 9:18 AMPermanent Link

Mahistre

hi,

I don't understand why on my customer when i want to see the remote database, i see my serveur but no database ...

Can you explain to me where is my mistake ?

Thank you best regards.
Mon, Feb 4 2013 9:42 AMPermanent Link

Raul

Team Elevate Team Elevate

You'd need to create the database (using server admin utility).

Basic steps would be as follows (i'm doing these from memory):
- copy the dbisam server (dbsrvr) to your windows server (looks like
this is done)
- copy your data (tables) into a folder on the server
- using server admin utility connect to sever and add a new database
(databases tab) - pick whatever name you like but you will need to use
it later and point the directory to the folder you copied your files in
previous step

at this point you should be able to run dbsys and connect to server and
see and be able to open/query you tables


- now you need to change your application to use remote session
(www.elevatesoft.com/manual?action=viewtopic&id=dbisam4&product=rsdelphiwin32&version=XE2&topic=Starting_Sessions)

- and in database components set the RemoteDatabase to whatever you
named the database on the server

Raul


On 2/4/2013 9:18 AM, Mahistre wrote:
> hi,
>
> I don't understand why on my customer when i want to see the remote database, i see my serveur but no database ...
> Can you explain to me where is my mistake ?
Mon, Feb 4 2013 11:47 AMPermanent Link

Mahistre

Thank you,

I test with C/S but i have the same problem ??
I display a DBGrid with Filter on the table, and this is really slow ???

Did you have a problem with filter on table ?

If we use the software on local, there are no problems ???

Can you help me ?

best regards.
David Mahistre
Mon, Feb 4 2013 1:35 PMPermanent Link

Raul

Team Elevate Team Elevate

On 2/4/2013 11:47 AM, Mahistre wrote:
> I test with C/S but i have the same problem ??

Then the problem is likely with the application or indexes or such.


> I display a DBGrid with Filter on the table, and this is really slow ???
> Did you have a problem with filter on table ?

No. However data-bound grids and lookup fields can be chatty and result
in lot of round-trips and data retrieval.


> If we use the software on local, there are no problems ???

Moving to C/S simply exposes problems already present - with local disk
the latency is very low so everything seems ok.


> Can you help me ?

Not without additional info.

However i would suggest you start from index side:
- you run the query that represents the filtered grid view in dbsys and
enable "generate plan" option and see what the execution plan is like
and if anything there is unoptimized. You can post it here if you need a
another opinion as well

Other option would be to enable the RemoteTrace on the session and see
what is actually happening in trerms of db access. see here:
http://www.elevatesoft.com/manual?action=viewevent&id=dbisam4&product=rsdelphiwin32&version=XE3&comp=TDBISAMSession&event=OnRemoteTrace

Raul
Mon, Feb 4 2013 5:56 PMPermanent Link

Jan Ferguson

Data Software Solutions, Inc.

Team Elevate Team Elevate

Mahistre,

You don't even have to recompile as Roy suggested (although you can). I
use an INI file which has my RemotePort, RemoteHost, SessionType, etc.
listed in the INI file (see example below).

[Configuration]
RemoteAddress=
RemoteHost=
SessionType=
RemotePort=

I simply read the information from the INI file in the data module's
OnCreate event and plug the information into the appropriate properties
before activating the session, database or tables.

To make things easier on my clients, I created a small application I
called "NetConfig" which allows them to enter the information into the
fields (some fields have drop down picklists, ie., SessionType). They
save the information and it writes it to the INI file.

---------------------
Jan Ferguson [Team Elevate]


Roy Lambert wrote:

> it should be little more than starting the server (you get a
> 5 connection server free with DBISAM), changing the connection from
> local to remote and recompiling your software.
Page 1 of 2Next Page »
Jump to Page:  1 2
Image