Alaska Software Inc. - ISAM-Emulation in xBase++ 2.0
Username: Password:
AuthorTopic: ISAM-Emulation in xBase++ 2.0
Dietmar SchnitzerISAM-Emulation in xBase++ 2.0
on Wed, 26 Nov 2014 11:32:01 +0100
Hello,

the long awaited xBase++ 2.0 is now available. Hip hip hurray.
I don’t know, why you are waiting for 2.0 but we are in need to support 
SQL-DBMS in large environments with many clients.
So using SQL in xBase is no problem for years, but we have millions of 
lines of code using SKIP an EOF() and all the other things that we are 
used to, but not a SQL-DBMS.
So we are longing for the ISAM-Emulation with ‚PGDBE‘

We recompiled our application with xBase++ 2.0 and added ‚PGDBE‘ support.
The whole application compiled without error, but data access was… to 
say poor would be playing down the problem…
We made a test scenario with a small dbf database with 30 fields. Record 
size was 250 bytes. Record count was 300000.
We used a simple scenario: we read all the fields in one record, and 
skipped to the next.
With DBFCDX on the local machine 10000 records were read in 0.6 Seconds.
With PGDBE 100 records were read in 8 seconds.
So we had a huge problem…. A factor greater thousand against us…
Working in and with our application wasn’t possible.

Fortunately our test were a few days before xBase++ Conference near 
Frankfurt.
So we went to Frankfurt and asked Steffen for help.
Steffen did the trick 

Now we came down to the factor 20-30 (please have in mind 
SQL-ISAM-emulation against local ISAM!)

What was the trick? So simple, that we didn’t thought it would get such 
an enormous boost.
Steffen added the fields that Alaska added in each table in the 
migration process from DBF to SQL for each ISAM-index-key (Index in 
cdx-file) as new indices in the POSTGRESQL-table.
Sounds complicated, but is very easy.
You use the pgAdmin-Tool, to open your database. Get to the table. Under 
the table you find the Indizes for this table.
Right-klick and use ‚new index‘. Give it a name and click on the 
columns-tab. Open the dropdown and choose one or all fields beginning 
with ‚__order‘
Click add and you are done.
You have added a new index in POSTGRESQL analog to your ‚old‘ ISAM-index 
to optimize the access.
Access in ISAM-Emulation with this order is now 500 times faster as 
before in our scenario… Wow…

To be honest: We didn’t optimize the POSTGRESQL-server because we 
couldn’t believe that such a acceleration would be possible.

Our last test was a compare in our scenario to DBFCDX access in a LAN 
environment (without concurrent access).

POSTGRES-ISAM-emulation to 'old fashioned‘ Access via DBFCDX is now 5 to 
10 times times slower, but Steffen has promised that this is not the end 
of the road and we didn’t do any other optimization in pgAdmin yet. And 
the LAN-scenario didn't have any concurrent access either.

At last, our application can be used with PGDBE and we can start to 
optimize the parts that are designed against the idea of SQL 

We post this news, because a lot of attendees of the xBase++  Conference 
were eager to get news about the state of ISAM-Emulation and perhaps so 
are you...

Greetings

	Dietmar & Matthias
Pedro HernßndezRe: ISAM-Emulation in xBase++ 2.0
on Mon, 19 Jan 2015 17:59:00 +0100
Great Thanks !!!



Dietmar Schnitzer wrote in message
news:5aaac7d4$246396e9$af8d8@news.alaska-software.com...
>Hello,
>
>the long awaited xBase++ 2.0 is now available. Hip hip hurray.
>I don’t know, why you are waiting for 2.0 but we are in need to support 
>SQL-DBMS in large environments with many clients.
>So using SQL in xBase is no problem for years, but we have millions of 
>lines of code using SKIP an EOF() and all the other things that we are 
>used to, but not a SQL-DBMS.
>So we are longing for the ISAM-Emulation with ‚PGDBE‘
>
>We recompiled our application with xBase++ 2.0 and added ‚PGDBE‘ support.
>The whole application compiled without error, but data access was… to 
>say poor would be playing down the problem…
>We made a test scenario with a small dbf database with 30 fields. Record 
>size was 250 bytes. Record count was 300000.
>We used a simple scenario: we read all the fields in one record, and 
>skipped to the next.
>With DBFCDX on the local machine 10000 records were read in 0.6 Seconds.
>With PGDBE 100 records were read in 8 seconds.
>So we had a huge problem…. A factor greater thousand against us…
>Working in and with our application wasn’t possible.
>
>Fortunately our test were a few days before xBase++ Conference near 
>Frankfurt.
>So we went to Frankfurt and asked Steffen for help.
>Steffen did the trick 
>
>Now we came down to the factor 20-30 (please have in mind 
>SQL-ISAM-emulation against local ISAM!)
>
>What was the trick? So simple, that we didn’t thought it would get such 
>an enormous boost.
>Steffen added the fields that Alaska added in each table in the 
>migration process from DBF to SQL for each ISAM-index-key (Index in 
>cdx-file) as new indices in the POSTGRESQL-table.
>Sounds complicated, but is very easy.
>You use the pgAdmin-Tool, to open your database. Get to the table. Under 
>the table you find the Indizes for this table.
>Right-klick and use ‚new index‘. Give it a name and click on the 
>columns-tab. Open the dropdown and choose one or all fields beginning 
>with ‚__order‘
>Click add and you are done.
>You have added a new index in POSTGRESQL analog to your ‚old‘ ISAM-index 
>to optimize the access.
>Access in ISAM-Emulation with this order is now 500 times faster as 
>before in our scenario… Wow…
>
>To be honest: We didn’t optimize the POSTGRESQL-server because we 
>couldn’t believe that such a acceleration would be possible.
>
>Our last test was a compare in our scenario to DBFCDX access in a LAN 
>environment (without concurrent access).
>
>POSTGRES-ISAM-emulation to 'old fashioned‘ Access via DBFCDX is now 5 to 
>10 times times slower, but Steffen has promised that this is not the end 
>of the road and we didn’t do any other optimization in pgAdmin yet. And 
>the LAN-scenario didn't have any concurrent access either.
>
>At last, our application can be used with PGDBE and we can start to 
>optimize the parts that are designed against the idea of SQL 
>
>We post this news, because a lot of attendees of the xBase++  Conference 
>were eager to get news about the state of ISAM-Emulation and perhaps so 
>are you...
>
>Greetings
>
>	Dietmar & Matthias
Hank HovingRe: ISAM-Emulation in xBase++ 2.0
on Wed, 25 Mar 2015 15:15:14 +0100
Dietmar,

I am testing  with postrgresql with isam. But the seek on an certain index is very slow. 
Even I have made the extra indexes  the way you describe. The search stays slow. I 
have the idea the indexes for the isam doesnot work

If I use the select-statement of sql-express then the search is at least 200 times faster.

I am using Postgres 9,4 and Xbase 2.0 554

What is the version of your postgres and xbase


Hank


Pedro Hernßndez wrote in message news:2649cd2a$5fda5625$59b@news.alaska-
software.com...
>Great Thanks !!!
>
>
>
>Dietmar Schnitzer wrote in message
>news:5aaac7d4$246396e9$af8d8@news.alaska-software.com...
>>Hello,
>>
>>the long awaited xBase++ 2.0 is now available. Hip hip hurray.
>>I don’t know, why you are waiting for 2.0 but we are in need to support 
>>SQL-DBMS in large environments with many clients.
>>So using SQL in xBase is no problem for years, but we have millions of 
>>lines of code using SKIP an EOF() and all the other things that we are 
>>used to, but not a SQL-DBMS.
>>So we are longing for the ISAM-Emulation with ‚PGDBE‘
>>
>>We recompiled our application with xBase++ 2.0 and added ‚PGDBE‘ support.
>>The whole application compiled without error, but data access was… to 
>>say poor would be playing down the problem…
>>We made a test scenario with a small dbf database with 30 fields. Record 
>>size was 250 bytes. Record count was 300000.
>>We used a simple scenario: we read all the fields in one record, and 
>>skipped to the next.
>>With DBFCDX on the local machine 10000 records were read in 0.6 Seconds.
>>With PGDBE 100 records were read in 8 seconds.
>>So we had a huge problem…. A factor greater thousand against us…
>>Working in and with our application wasn’t possible.
>>
>>Fortunately our test were a few days before xBase++ Conference near 
>>Frankfurt.
>>So we went to Frankfurt and asked Steffen for help.
>>Steffen did the trick 
>>
>>Now we came down to the factor 20-30 (please have in mind 
>>SQL-ISAM-emulation against local ISAM!)
>>
>>What was the trick? So simple, that we didn’t thought it would get such 
>>an enormous boost.
>>Steffen added the fields that Alaska added in each table in the 
>>migration process from DBF to SQL for each ISAM-index-key (Index in 
>>cdx-file) as new indices in the POSTGRESQL-table.
>>Sounds complicated, but is very easy.
>>You use the pgAdmin-Tool, to open your database. Get to the table. Under 
>>the table you find the Indizes for this table.
>>Right-klick and use ‚new index‘. Give it a name and click on the 
>>columns-tab. Open the dropdown and choose one or all fields beginning 
>>with ‚__order‘
>>Click add and you are done.
>>You have added a new index in POSTGRESQL analog to your ‚old‘ ISAM-index 
>>to optimize the access.
>>Access in ISAM-Emulation with this order is now 500 times faster as 
>>before in our scenario… Wow…
>>
>>To be honest: We didn’t optimize the POSTGRESQL-server because we 
>>couldn’t believe that such a acceleration would be possible.
>>
>>Our last test was a compare in our scenario to DBFCDX access in a LAN 
>>environment (without concurrent access).
>>
>>POSTGRES-ISAM-emulation to 'old fashioned‘ Access via DBFCDX is now 5 to 
>>10 times times slower, but Steffen has promised that this is not the end 
>>of the road and we didn’t do any other optimization in pgAdmin yet. And 
>>the LAN-scenario didn't have any concurrent access either.
>>
>>At last, our application can be used with PGDBE and we can start to 
>>optimize the parts that are designed against the idea of SQL 
>>
>>We post this news, because a lot of attendees of the xBase++  Conference 
>>were eager to get news about the state of ISAM-Emulation and perhaps so 
>>are you...
>>
>>Greetings
>>
>>	Dietmar & Matthias
Zoltan NagyRe: ISAM-Emulation in xBase++ 2.0
on Tue, 22 Sep 2015 12:54:27 +0200
Hello.

Is possibe this "new index" adding without pgAdmin from my source code?
I have thousand of dbf tables, and I need manually adding this indexes?
Horrible.

Regards, Nagy


"Dietmar Schnitzer" a következőket írta üzenetében 
news:5aaac7d4$246396e9$af8d8@news.alaska-software.com...
> Hello,
>
> the long awaited xBase++ 2.0 is now available. Hip hip hurray.
> I don’t know, why you are waiting for 2.0 but we are in need to support 
> SQL-DBMS in large environments with many clients.
> So using SQL in xBase is no problem for years, but we have millions of 
> lines of code using SKIP an EOF() and all the other things that we are 
> used to, but not a SQL-DBMS.
> So we are longing for the ISAM-Emulation with ‚PGDBE‘
>
> We recompiled our application with xBase++ 2.0 and added ‚PGDBE‘ support.
> The whole application compiled without error, but data access was… to say 
> poor would be playing down the problem…
> We made a test scenario with a small dbf database with 30 fields. Record 
> size was 250 bytes. Record count was 300000.
> We used a simple scenario: we read all the fields in one record, and 
> skipped to the next.
> With DBFCDX on the local machine 10000 records were read in 0.6 Seconds.
> With PGDBE 100 records were read in 8 seconds.
> So we had a huge problem…. A factor greater thousand against us…
> Working in and with our application wasn’t possible.
>
> Fortunately our test were a few days before xBase++ Conference near 
> Frankfurt.
> So we went to Frankfurt and asked Steffen for help.
> Steffen did the trick 
>
> Now we came down to the factor 20-30 (please have in mind 
> SQL-ISAM-emulation against local ISAM!)
>
> What was the trick? So simple, that we didn’t thought it would get such an 
> enormous boost.
> Steffen added the fields that Alaska added in each table in the migration 
> process from DBF to SQL for each ISAM-index-key (Index in cdx-file) as new 
> indices in the POSTGRESQL-table.
> Sounds complicated, but is very easy.
> You use the pgAdmin-Tool, to open your database. Get to the table. Under 
> the table you find the Indizes for this table.
> Right-klick and use ‚new index‘. Give it a name and click on the 
> columns-tab. Open the dropdown and choose one or all fields beginning with 
> ‚__order‘
> Click add and you are done.
> You have added a new index in POSTGRESQL analog to your ‚old‘ ISAM-index 
> to optimize the access.
> Access in ISAM-Emulation with this order is now 500 times faster as before 
> in our scenario… Wow…
>
> To be honest: We didn’t optimize the POSTGRESQL-server because we couldn’t 
> believe that such a acceleration would be possible.
>
> Our last test was a compare in our scenario to DBFCDX access in a LAN 
> environment (without concurrent access).
>
> POSTGRES-ISAM-emulation to 'old fashioned‘ Access via DBFCDX is now 5 to 
> 10 times times slower, but Steffen has promised that this is not the end 
> of the road and we didn’t do any other optimization in pgAdmin yet. And 
> the LAN-scenario didn't have any concurrent access either.
>
> At last, our application can be used with PGDBE and we can start to 
> optimize the parts that are designed against the idea of SQL 
>
> We post this news, because a lot of attendees of the xBase++  Conference 
> were eager to get news about the state of ISAM-Emulation and perhaps so 
> are you...
>
> Greetings
>
> Dietmar & Matthias