Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   FB2/2.5 Distinct über viele NULL sehr langsam (https://www.delphipraxis.net/157460-fb2-2-5-distinct-ueber-viele-null-sehr-langsam.html)

hoika 12. Jan 2011 15:43

Datenbank: FB • Version: 2/2.5 • Zugriff über: egela

FB2/2.5 Distinct über viele NULL sehr langsam
 
Hallo #,

ich habe hier ein doofes Problem ;(

Tabelle mit 25.000 Einträgen, davon ein VarChar(20) komplett NULL.

1. Ein Select Distinct(Feld) From Tabelle braucht nach dem Start des Rechners 4 Min ...
2. Beim nächsten Auruf ist das Ding ratzbatz da.

3. Beende ich FB (ist per -a gestartet), und führe die Query erneut aus,
wird sie ebenfalls schnell ausgeführt.

Der Punkt 3. wundert mich sehr.

Interessieren würde mich aber, wie ich das Beschleunigen kann.
Ein Index hilft nicht.
Das Laden aller Einträge lokal (Notlösung) dauert nach dem Rechnerneustart ebenfalls wieder so lange.

Hilfe .. ;(

PS:
Der Test mit der 2.5 erfolgte über die 2.er DB, ohne Restore.


#Update#
OK, habe mich mal belesen, Distinct nutzt keinen Index.


Heiko

mkinzler 12. Jan 2011 15:57

AW: FB2/2.5 Distinct über viele NULL sehr langsam
 
Wie sieht es bei
SQL-Code:
select
    distinct iif( <feld> is not null, <feld>, 0)
from
    <tabelle>;
aus?

omata 12. Jan 2011 18:25

AW: FB2/2.5 Distinct über viele NULL sehr langsam
 
Anstelle von DISTINCT einfach GROUP BY verwenden.

Also nicht:
SQL-Code:
SELECT DISTINCT ...
FROM ...
Sondern:
SQL-Code:
SELECT ...
FROM ...
GROUP BY ...

hoika 12. Jan 2011 18:54

AW: FB2/2.5 Distinct über viele NULL sehr langsam
 
Hallo,

probiere ich morgen aus.

Danke


Heiko

hoika 13. Jan 2011 20:32

AW: FB2/2.5 Distinct über viele NULL sehr langsam
 
Hallo,

mit dem GroupBy dauert es noch 6 Sekunden,
dös pascht ;)

Danke


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz