Was mache ich falsch ?


[ ruban.de ] [ Antworten ] [ Forum ]

Geschrieben von Andreas on Dezember 09, 2002 um 13:08:

Hallo zusammen !

Ich habe folgendes SQL:
EXEC SQL SELECT RBIS01_NA1
INTO :RBIS01-NA
FROM SYBIS01
WHERE
RBIS01_NA1IX LIKE 'BAU%' AND
RBIS01_ORTIX LIKE 'BOCH%' OR
RBIS01_NA2IX LIKE 'BAU%' AND
RBIS01_ORTIX LIKE 'BOCH%'
END-EXEC

In der Tabelle befinden sich 8,2 Millionen Datensätze. Runstats + Reorg wurden ausgeführt
Der INDEX 02 besteht aus NA1IX + ORTIX. Der INDEX 04 besteht aus NA2IX + ORTIX. Hier ein Auszug aus dem EXPLAIN
Subquery 1, Step 1
0 First Table F536.TBBIS01 (1)
M Multiple Index
MX Index Scan F536.IXBIS0102
MX Index Scan F536.IXBIS0104
MU Union

Processor Processor
Milliseconds Service Units
============ =============
1 4

Sieht doch alles sehr gesund aus. Beim Ausführen der Abfrage warte ich auf die 400 Ergebnisszeilen jedoch ca. 40 Sekunden. Bastel ich die Abfrage programmseitig auseinander also
EXEC SQL SELECT RBIS01_NA1
INTO :RBIS01-NA
FROM SYBIS01
WHERE
RBIS01_NA1IX LIKE 'BAU%' AND
RBIS01_ORTIX LIKE 'BOCH%' OR
END-EXEC UND danach
EXEC SQL SELECT RBIS01_NA1
INTO :RBIS01-NA
FROM SYBIS01
WHERE
RBIS01_NA2IX LIKE 'BAU%' AND
RBIS01_ORTIX LIKE 'BOCH%' OR
END-EXEC und mische die Ergebnisse dann im Programm habe ich meine 400 Datensätze nach ca.3 Sekunden.

Wie kann das sein ?????


Antworten:


Schreibe eine Antwort

Name:   
E-Mail:  

Thema:

Kommentar:

Optionale Link URL:   
Link Titel:                  
Optionale Image URL:


[ Antworten ] [ Forum ]