Robi
18-02-11, 12:37
Hi
ich habe folgenes select im interaktiven SQL abgesetzt, es ist rasend schnell
select 'K1',susunr, susun2, case
when length(replace(replace(sukto1, '-', ''), ' ', ''))=9
then '0' concat replace(replace(sukto1, '-', ''), ' ', '')
when length(replace(replace(sukto1, '-', ''), ' ', ''))=8
then '00' concat replace(replace(sukto1, '-', ''), ' ', '')
when length(replace(replace(sukto1, '-', ''), ' ', ''))=7
then '000' concat replace(replace(sukto1, '-', ''), ' ', '')
when length(replace(replace(sukto1, '-', ''), ' ', ''))=6
then '0000' concat replace(replace(sukto1, '-', ''), ' ', '')
when length(replace(replace(sukto1, '-', ''), ' ', ''))=5
then '00000' concat replace(replace(sukto1, '-', ''), ' ', '')
when length(replace(replace(sukto1, '-', ''), ' ', ''))=4
then '000000' concat replace(replace(sukto1, '-', ''), ' ', '')
when length(replace(replace(sukto1, '-', ''), ' ', ''))=3
then '0000000' concat replace(replace(sukto1, '-', ''), ' ', '')
else replace(replace(sukto1, '-', ''), ' ', '')
end as kto,
replace(replace(sublz1, '-', ''), ' ', '') as blz
from schulp where sukto1 <> ' '
union all
select 'K2',susunr, susun2, case
when length(replace(replace(sukto2, '-', ''), ' ', ''))=9
then '0' concat replace(replace(sukto2, '-', ''), ' ', '')
when length(replace(replace(sukto2, '-', ''), ' ', ''))=8
then '00' concat replace(replace(sukto2, '-', ''), ' ', '')
when length(replace(replace(sukto2, '-', ''), ' ', ''))=7
then '000' concat replace(replace(sukto2, '-', ''), ' ', '')
when length(replace(replace(sukto2, '-', ''), ' ', ''))=6
then '0000' concat replace(replace(sukto2, '-', ''), ' ', '')
when length(replace(replace(sukto2, '-', ''), ' ', ''))=5
then '00000' concat replace(replace(sukto2, '-', ''), ' ', '')
when length(replace(replace(sukto2, '-', ''), ' ', ''))=4
then '000000' concat replace(replace(sukto2, '-', ''), ' ', '')
when length(replace(replace(sukto2, '-', ''), ' ', ''))=3
then '0000000' concat replace(replace(sukto2, '-', ''), ' ', '')
else replace(replace(sukto2, '-', ''), ' ', '')
end as kto,
replace(replace(sublz2, '-', ''), ' ', '') as blz
from schulp where sukto2 <> ' '
Ich 'normalisiere' das Feld KontoNr ( eine alpha Feld )
auf 10 Stellen mit führender 0, ohne blank und -
Da in der Datei 2 KontoNr sind, hänge ich die 2. Nr
einfach dahinter.
Erstelle ich damit eine View und mache ein
Select * from view
warte ich über eine Stunde auf die Anzeige.
Interactiv im SQL, ohne View, habe ich sofort ein Bild.
Auch ein LF (Index) über SUKTO1, SUBLZ1 bringt nix (auch SUKTO2 SUBLZ2)
Muß ich nun die Daten doch physikalisch kopieren
um schnell mit meiner Kontonr einen Debitor zu finden?
Wie kann ich das beschleunigen ?
V5R4, ca 1,25 Mio Debitoren
Danke
Robi
ich habe folgenes select im interaktiven SQL abgesetzt, es ist rasend schnell
select 'K1',susunr, susun2, case
when length(replace(replace(sukto1, '-', ''), ' ', ''))=9
then '0' concat replace(replace(sukto1, '-', ''), ' ', '')
when length(replace(replace(sukto1, '-', ''), ' ', ''))=8
then '00' concat replace(replace(sukto1, '-', ''), ' ', '')
when length(replace(replace(sukto1, '-', ''), ' ', ''))=7
then '000' concat replace(replace(sukto1, '-', ''), ' ', '')
when length(replace(replace(sukto1, '-', ''), ' ', ''))=6
then '0000' concat replace(replace(sukto1, '-', ''), ' ', '')
when length(replace(replace(sukto1, '-', ''), ' ', ''))=5
then '00000' concat replace(replace(sukto1, '-', ''), ' ', '')
when length(replace(replace(sukto1, '-', ''), ' ', ''))=4
then '000000' concat replace(replace(sukto1, '-', ''), ' ', '')
when length(replace(replace(sukto1, '-', ''), ' ', ''))=3
then '0000000' concat replace(replace(sukto1, '-', ''), ' ', '')
else replace(replace(sukto1, '-', ''), ' ', '')
end as kto,
replace(replace(sublz1, '-', ''), ' ', '') as blz
from schulp where sukto1 <> ' '
union all
select 'K2',susunr, susun2, case
when length(replace(replace(sukto2, '-', ''), ' ', ''))=9
then '0' concat replace(replace(sukto2, '-', ''), ' ', '')
when length(replace(replace(sukto2, '-', ''), ' ', ''))=8
then '00' concat replace(replace(sukto2, '-', ''), ' ', '')
when length(replace(replace(sukto2, '-', ''), ' ', ''))=7
then '000' concat replace(replace(sukto2, '-', ''), ' ', '')
when length(replace(replace(sukto2, '-', ''), ' ', ''))=6
then '0000' concat replace(replace(sukto2, '-', ''), ' ', '')
when length(replace(replace(sukto2, '-', ''), ' ', ''))=5
then '00000' concat replace(replace(sukto2, '-', ''), ' ', '')
when length(replace(replace(sukto2, '-', ''), ' ', ''))=4
then '000000' concat replace(replace(sukto2, '-', ''), ' ', '')
when length(replace(replace(sukto2, '-', ''), ' ', ''))=3
then '0000000' concat replace(replace(sukto2, '-', ''), ' ', '')
else replace(replace(sukto2, '-', ''), ' ', '')
end as kto,
replace(replace(sublz2, '-', ''), ' ', '') as blz
from schulp where sukto2 <> ' '
Ich 'normalisiere' das Feld KontoNr ( eine alpha Feld )
auf 10 Stellen mit führender 0, ohne blank und -
Da in der Datei 2 KontoNr sind, hänge ich die 2. Nr
einfach dahinter.
Erstelle ich damit eine View und mache ein
Select * from view
warte ich über eine Stunde auf die Anzeige.
Interactiv im SQL, ohne View, habe ich sofort ein Bild.
Auch ein LF (Index) über SUKTO1, SUBLZ1 bringt nix (auch SUKTO2 SUBLZ2)
Muß ich nun die Daten doch physikalisch kopieren
um schnell mit meiner Kontonr einen Debitor zu finden?
Wie kann ich das beschleunigen ?
V5R4, ca 1,25 Mio Debitoren
Danke
Robi