SQL Substr() Full Table Scan ?

- OCinside.de PC Forum
https://www.ocinside.de

-- Software
https://www.forum-inside.de/forums.cgi?forum=17

--- SQL Substr() Full Table Scan ?
https://www.forum-inside.de/topic.cgi?forum=17&topic=9354

Ein Ausdruck des Beitrags mit 8 Antworten ergibt bei 3 Antworten pro Seite ca. 3 DIN A4 Seiten. Das entspricht bei 80 g/m² ca. 14.97 Gramm Papier.


-- Veröffentlicht durch OberstHorst am 16:56 am 30. Okt. 2013

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:


-- Veröffentlicht durch OberstHorst am 8:12 am 30. Okt. 2013

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


-- Veröffentlicht durch ocinside am 7:35 am 30. Okt. 2013

Hat es denn geklappt ?


-- Veröffentlicht durch OberstHorst am 18:45 am 27. Okt. 2013

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


-- Veröffentlicht durch ocinside am 18:16 am 25. Okt. 2013

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


-- Veröffentlicht durch OberstHorst am 15:01 am 25. Okt. 2013

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?!


-- Veröffentlicht durch ocinside am 13:16 am 25. Okt. 2013

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


-- Veröffentlicht durch OberstHorst am 10:18 am 25. Okt. 2013

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:


OCinside.de PC Forum
© 2001 - 2024 www.ocinside.de