-
oh, stimmt, das erste UPPER habe ich glatt überlesen :-(
Dann hast Du wohl tatsächlich keine andere Chance, als die 2 UPPER.
Trotzdem - vergiss die Verdopplung der Hochkomma nicht, falls Dein String solche enthält.
-
Ausserdem ist der "Order by rrn(x)" nicht performanceförderlich.
Ein Like führt immer zum Tablescan wenn es denn keine weiteren Einschränkungen gibt.
-
vergiss die Verdopplung der Hochkomma nicht, falls Dein String solche enthält.
Ist bekannt, kommt aber nicht vor, BeforeTrigger verhindern das, schon wegen dem csv export.
Ausserdem ist der "Order by rrn(x)" nicht performanceförderlich.
Wenn das PF mit reusedltrcd(*no) erstellt wurde auch?
Ein Like führt immer zum Tablescan wenn es denn keine weiteren Einschränkungen gibt
Ja, stimmt. Daran habe ich bei der Performance-Bemerkung nicht gedacht.
Trotzdem ...
Auch wenn ich in diesem Fall die Unterscheidung GROSS/klein nicht brauche...
Ist das Verhalten 'normal'? einstellbar? oder ein Fehler?
Robi
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
 Zitat von Robi
Wenn das PF mit reusedltrcd(*no) erstellt wurde auch?i
Der Order By wird dabei immer als letztes geprüft!
Sowohl der CQE als auch der SQE-Optimizer versuchen so schnell wie möglich an die Daten zu kommen.
Sofern ein oder mehrere Zugriffsweg verwendet werden können (um möglichst schnell an die Daten zukommen), ist es oft/meist besser diesen zu verwenden, die selektierten Daten temporär (z.B. in Hash-Tables) zu speichern und anschließend das Ergebnis zu sortieren.
Der Table-Scan (bzw. Table-Probe bei SQE) wird durch die Selektion über das LIKE-Prädikat erforderlich, da macht eine anschließende Sortierung des Ergebnisses den Kohl auch nicht mehr allzu fett.
Birgitta
-
 Zitat von Fuerchau
Ein Like führt immer zum Tablescan wenn es denn keine weiteren Einschränkungen gibt.
Tablescan ja, bei:
Code:
WHERE Upper (sp1) like Upper('XXX%')
WHERE sp1 like '%XXX%'
Jedoch bei folgenden Beispiel sollte kein Tablescan durchgeführt werden, falls ein Index mit dem Key vorhanden ist:
Code:
WHERE sp1 like 'XXX%'
(Zumindest ab 6.1)
lg Andreas
Last edited by andreaspr@aon.at; 16-11-12 at 09:06.
Grund: OS-Version
-
Dies ist korrekt, manche SQL-Dialekte erlauben da einen "start with ...".
Similar Threads
-
By Sony in forum IBM i Hauptforum
Antworten: 27
Letzter Beitrag: 20-07-09, 21:48
-
By Squall in forum NEWSboard Programmierung
Antworten: 9
Letzter Beitrag: 10-10-06, 08:53
-
By Hubert in forum IBM i Hauptforum
Antworten: 12
Letzter Beitrag: 11-05-05, 13:25
-
By Matthias.Hayn in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 06-12-04, 13:33
-
By Matthias.Hayn in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 28-07-04, 09:26
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks