Anmelden

View Full Version : Frage wegen DDS, CONCAT Funktion



Seiten : 1 [2] 3

a.wojcik
15-01-15, 07:05
Danke, Birgitta - wäre schön mit dem Index, aber die Indexerstellung bei 28 GB kann ziemlich lange laufen, muss ich es überlegen.

malzusrex
15-01-15, 07:29
Wenn du eine LF mit Key erstellst, braucht das aber auch doch seine Zeit ?

Gruß Ronald

a.wojcik
15-01-15, 07:55
Ich werde es zuerst in einer Testumgebung ausprobieren, thanks.

Fuerchau
15-01-15, 08:25
Die einmalige Zeit der Indexerstellung steht ggf. der Summe der eingesparten Laufzeiten gegenüber. Dabei spielt die Größe des Index keine Rolle.

a.wojcik
15-01-15, 08:59
Ich habe eine Sache dabei vergessen - die Datumsfelder kann ich nur unter bestimmten Bedigungen aus einer Stelle rausschneiden - also ein Index für die ganze Datei entfällt; man kann kein "where" im Index haben. Sonst wäre es richtig so:
CREATE INDEX TEST/TESTIDX
ON TEST/TESTPF
( (SUBSTR(TEXT, 25, 4)) CONCAT
(SUBSTR(TEXT, 22, 2)) CONCAT
(SUBSTR(TEXT, 19, 2)) AS DATECHAR ASC )
RCDFMT TESTPFF1 ADD ALL COLUMNS
Habe ich mit einer vorselektierten Test Datei ausprobiert.

Fuerchau
15-01-15, 13:46
CREATE INDEX TEST/TESTIDX
ON TEST/TESTPF
( (SUBSTR(TEXT, 25, 4)) CONCAT
(SUBSTR(TEXT, 22, 2)) CONCAT
(SUBSTR(TEXT, 19, 2)) AS DATECHAR ASC )

WHERE ...........

RCDFMT TESTPFF1 ADD ALL COLUMNS

B.Hauser
16-01-15, 12:17
WHERE-Bedingungen sind bei Indices erlaubt.
Wie sieht denn Deine Syntax mit der WHERE-Bedingung aus?

Birgitta

a.wojcik
16-01-15, 13:05
Hallo Birgitta,
Es könte so ausehen (ausprobiert):
CREATE INDEX TEST/TESTIDX1
ON TEST/TESTKOPF
(DIGITS (SUBSTR(TEXT, 21, 4)) CONCAT
DIGITS (SUBSTR(TEXT, 18, 2)) CONCAT
DIGITS (SUBSTR(TEXT, 15, 2)) AS DATECHAR ASC )
WHERE POSSTR(TEXT, 'DISPONIERT') > 0
and SATZ_KZ = 'STATI'
and LIEFNR < 990000000
RCDFMT TESTKOPFF1 ADD ALL COLUMNS
- aber wie kann diesen Index nutzen ? Direkt selektieren geht damit nicht.

B.Hauser
16-01-15, 13:37
Ich dachte Du wolltest mit native I/O und nicht mit SQL zugreifen!
Native I/O kann SQL-Indices wie jede geschlüsselte Datei verarbeiten.
(In SQL kann/darf man einen Index nicht direkt angeben! Der Optimizer sucht sich den Zugriffspfad)

Birgitta

a.wojcik
16-01-15, 13:46
Geht das in RPG ? Sorry, wusste ich nicht - ich probiere es aus, danke.