Board index » delphi » BDE and Interbase Slow in international character set

BDE and Interbase Slow in international character set

Please, a need help.

I'm working with Delphi 3 and the BDE and Interbase 4.2.
I create a Database with Default Charset WIN1252 or ISO... for Spanish
sorting.

I create a table CUSTOMERS with a few columns and a primary key...
I create indexes for the columns defined as COLLATE ES_ES or COLLATE
PDW_SPAN (COLUMN NAME)

When I Execute:

// Quick
Customers.indexfieldnames:='CODE';
// Quick
Customers.Open;
// Very Slow on 60.000 records.(30 seconds)
Customers.indexfieldnames:='NAME'

// On locate procedures is also slow if BDE needs to change the active index

// If I Execute a Query it's very quick
SELECT CODE,NAME FROM CUSTOMERS ORDER BY NAME

I tried to change the alias Language driver to Spanish ANSI and others....
If I select NULL alias language driver the characters dont display correctly
and I have errors.

When I use a database created with CHARACTER SET NONE and without any
language driver the same code works fast.

If I use SQL Server the code works fast.

I would be very gratefull if somebody could help me,
   Yours faithfully,
            Toni

 

Re:BDE and Interbase Slow in international character set


When the result set was taking too long, were you accessing the table via a
TTable or a TQuery?  using an SQL statement (and restricting it if possible i.e.
a Where clause) would definitely speed things up.  Also, if there are any order
by's in the SQL statement, that will slow it down.

-Adam
Delphi Developer Support

Quote
Toni Mrtir wrote:
> Please, a need help.

> I'm working with Delphi 3 and the BDE and Interbase 4.2.
> I create a Database with Default Charset WIN1252 or ISO... for Spanish
> sorting.

> I create a table CUSTOMERS with a few columns and a primary key...
> I create indexes for the columns defined as COLLATE ES_ES or COLLATE
> PDW_SPAN (COLUMN NAME)

> When I Execute:

> // Quick
> Customers.indexfieldnames:='CODE';
> // Quick
> Customers.Open;
> // Very Slow on 60.000 records.(30 seconds)
> Customers.indexfieldnames:='NAME'

> // On locate procedures is also slow if BDE needs to change the active index

> // If I Execute a Query it's very quick
> SELECT CODE,NAME FROM CUSTOMERS ORDER BY NAME

> I tried to change the alias Language driver to Spanish ANSI and others....
> If I select NULL alias language driver the characters dont display correctly
> and I have errors.

> When I use a database created with CHARACTER SET NONE and without any
> language driver the same code works fast.

> If I use SQL Server the code works fast.

> I would be very gratefull if somebody could help me,
>    Yours faithfully,
>             Toni

Re:BDE and Interbase Slow in international character set


Hello,

First thanks for your help.

I'm using TTable Objects

The problem is that when I do not select a languaje in Interbase it works
very fast, but when I create the database with CHARACTER SET ISO... or
another, it works very, very slow.

Why?

Thanks,

Toni
Adam Markowitz escribi en mensaje <35A1E85E.E1393...@corp.inprise.com>...

Quote
>When the result set was taking too long, were you accessing the table via a
>TTable or a TQuery?  using an SQL statement (and restricting it if possible
i.e.
>a Where clause) would definitely speed things up.  Also, if there are any
order
>by's in the SQL statement, that will slow it down.

>-Adam
>Delphi Developer Support

>Toni Mrtir wrote:

>> Please, a need help.

>> I'm working with Delphi 3 and the BDE and Interbase 4.2.
>> I create a Database with Default Charset WIN1252 or ISO... for Spanish
>> sorting.

>> I create a table CUSTOMERS with a few columns and a primary key...
>> I create indexes for the columns defined as COLLATE ES_ES or COLLATE
>> PDW_SPAN (COLUMN NAME)

>> When I Execute:

>> // Quick
>> Customers.indexfieldnames:='CODE';
>> // Quick
>> Customers.Open;
>> // Very Slow on 60.000 records.(30 seconds)
>> Customers.indexfieldnames:='NAME'

>> // On locate procedures is also slow if BDE needs to change the active
index

>> // If I Execute a Query it's very quick
>> SELECT CODE,NAME FROM CUSTOMERS ORDER BY NAME

>> I tried to change the alias Language driver to Spanish ANSI and
others....
>> If I select NULL alias language driver the characters dont display
correctly
>> and I have errors.

>> When I use a database created with CHARACTER SET NONE and without any
>> language driver the same code works fast.

>> If I use SQL Server the code works fast.

>> I would be very gratefull if somebody could help me,
>>    Yours faithfully,
>>             Toni

Re:BDE and Interbase Slow in international character set


First thanks for your help.

Please Help me a little more.

I'm using TTable Objects

The problem is that when I do not select a languaje in Interbase it works
very fast, but when I create the database with CHARACTER SET ISO... or
another, it works very, very slow.

Why?

Name is indexed.

Thanks,

Toni

Quote
>Adam Markowitz escribi en mensaje <35A1E85E.E1393...@corp.inprise.com>...
>>When the result set was taking too long, were you accessing the table via
a
>>TTable or a TQuery?  using an SQL statement (and restricting it if
possible
>i.e.
>>a Where clause) would definitely speed things up.  Also, if there are any
>order
>>by's in the SQL statement, that will slow it down.

>>-Adam
>>Delphi Developer Support

>>Toni Mrtir wrote:

>>> Please, a need help.

>>> I'm working with Delphi 3 and the BDE and Interbase 4.2.
>>> I create a Database with Default Charset WIN1252 or ISO... for Spanish
>>> sorting.

>>> I create a table CUSTOMERS with a few columns and a primary key...
>>> I create indexes for the columns defined as COLLATE ES_ES or COLLATE
>>> PDW_SPAN (COLUMN NAME)

>>> When I Execute:

>>> // Quick
>>> Customers.indexfieldnames:='CODE';
>>> // Quick
>>> Customers.Open;
>>> // Very Slow on 60.000 records.(30 seconds)
>>> Customers.indexfieldnames:='NAME'

>>> // On locate procedures is also slow if BDE needs to change the active
>index

>>> // If I Execute a Query it's very quick
>>> SELECT CODE,NAME FROM CUSTOMERS ORDER BY NAME

>>> I tried to change the alias Language driver to Spanish ANSI and
>others....
>>> If I select NULL alias language driver the characters dont display
>correctly
>>> and I have errors.

>>> When I use a database created with CHARACTER SET NONE and without any
>>> language driver the same code works fast.

>>> If I use SQL Server the code works fast.

>>> I would be very gratefull if somebody could help me,
>>>    Yours faithfully,
>>>             Toni

Other Threads