» Willkommen auf Software «

OberstHorst
aus Taunusstein
offline



OC God
16 Jahre dabei !

Intel Core i7
2800 MHz


Frage an die Datenbankler hier: wird bei Nutzung Substr(blubb,1,n) ein full table scan gemacht?

Irgendwie läuft mein SQL auf Prod schon 5min ohne Chance auf abbruch *hust* :red:


<-- Killerspielespieler
Geh doch zum MediaMarkt und lass dich da beraten...

Beiträge gesamt: 6824 | Durchschnitt: 1 Postings pro Tag
Registrierung: Nov. 2007 | Dabei seit: 6003 Tagen | Erstellt: 10:18 am 25. Okt. 2013
ocinside
aus Krefeld
online



Administrator
23 Jahre dabei !

Intel Core i9
3600 MHz @ 5200 MHz
78°C mit 1.552 Volt


Ja, wenn du keinen Index verwendest, wird bei Where Substr(blubb,1,n) = 'XYZ' ein full table scan durchgeführt.


Hardware News lesen * Unterhalten * Smarthome und Gadgets
Übertakten, Modding und Testberichte * Fanartikel kaufen

Beiträge gesamt: 169737 | Durchschnitt: 20 Postings pro Tag
Registrierung: April 2001 | Dabei seit: 8397 Tagen | Erstellt: 13:16 am 25. Okt. 2013
OberstHorst
aus Taunusstein
offline



OC God
16 Jahre dabei !

Intel Core i7
2800 MHz


Hmm... Ich habe ein Feld KDNR_BLA CHAR(12). Auf diesem Feld liegt ein Index xyz. In einer anderen Tabelle habe ich eine KDNR CHAR(10).

Wenn sich KDNR_BLA aus der KDNR + '00' zusammensetzt, dann kann ich einen JOIN

SELECT * FROM A INNER JOIN B ON A.KDNR_BLA = B.KDNR||00

ohne Probleme machen. Wenn jetzt die letzten zwei Zeichen von KDNR_BLA unbekannt sind, bleibt mir nichts anderes übrig als

SELECT * FROM A INNER JOIN B ON SUBSTR(A.KDNR_BLA,1,10) = B.KDNR

zum joinen zu verwenden. Ich hätte jetzt eigentlich bei einem CHAR Feld erzwartet, dass der Index auch bei Nutzung der ersten Zeichen herangezogen wird. Dass er bei SUBSTR(A.KDNR,2,3) nicht funktioniert ist klar, aber ab der ersten Stelle?!


<-- Killerspielespieler
Geh doch zum MediaMarkt und lass dich da beraten...

Beiträge gesamt: 6824 | Durchschnitt: 1 Postings pro Tag
Registrierung: Nov. 2007 | Dabei seit: 6003 Tagen | Erstellt: 15:01 am 25. Okt. 2013
ocinside
aus Krefeld
online



Administrator
23 Jahre dabei !

Intel Core i9
3600 MHz @ 5200 MHz
78°C mit 1.552 Volt


Dann versuche es einfach mal mit LEFT, das sollte deutlich schneller gehen.


Hardware News lesen * Unterhalten * Smarthome und Gadgets
Übertakten, Modding und Testberichte * Fanartikel kaufen

Beiträge gesamt: 169737 | Durchschnitt: 20 Postings pro Tag
Registrierung: April 2001 | Dabei seit: 8397 Tagen | Erstellt: 18:16 am 25. Okt. 2013
OberstHorst
aus Taunusstein
offline



OC God
16 Jahre dabei !

Intel Core i7
2800 MHz


Das könnte ich natürlich morgen mal probieren ;)


<-- Killerspielespieler
Geh doch zum MediaMarkt und lass dich da beraten...

Beiträge gesamt: 6824 | Durchschnitt: 1 Postings pro Tag
Registrierung: Nov. 2007 | Dabei seit: 6003 Tagen | Erstellt: 18:45 am 27. Okt. 2013
ocinside
aus Krefeld
online



Administrator
23 Jahre dabei !

Intel Core i9
3600 MHz @ 5200 MHz
78°C mit 1.552 Volt


Hat es denn geklappt ?


Hardware News lesen * Unterhalten * Smarthome und Gadgets
Übertakten, Modding und Testberichte * Fanartikel kaufen

Beiträge gesamt: 169737 | Durchschnitt: 20 Postings pro Tag
Registrierung: April 2001 | Dabei seit: 8397 Tagen | Erstellt: 7:35 am 30. Okt. 2013
OberstHorst
aus Taunusstein
offline



OC God
16 Jahre dabei !

Intel Core i7
2800 MHz


Jo, lief besser ... auch wenn er sich bei der Masse der Daten trotzdem noch recht schwer tut :thumb:


<-- Killerspielespieler
Geh doch zum MediaMarkt und lass dich da beraten...

Beiträge gesamt: 6824 | Durchschnitt: 1 Postings pro Tag
Registrierung: Nov. 2007 | Dabei seit: 6003 Tagen | Erstellt: 8:12 am 30. Okt. 2013
OberstHorst
aus Taunusstein
offline



OC God
16 Jahre dabei !

Intel Core i7
2800 MHz


Hmm.. ich glaube, ich war durch Oracle geblendet. Bei Oracle funktioniert substr() super, dafür gibt es gar kein left(). Bei db2 funktioniert substr() mehr schlecht als recht und dafür funktioniert left() super.

Falls es wen interessiert :lol:


<-- Killerspielespieler
Geh doch zum MediaMarkt und lass dich da beraten...

Beiträge gesamt: 6824 | Durchschnitt: 1 Postings pro Tag
Registrierung: Nov. 2007 | Dabei seit: 6003 Tagen | Erstellt: 16:56 am 30. Okt. 2013