-
 Zitat von cbe
dann spart man sich den EXISTS.
(Ich mag die coalesce-Funktion einfach, vor allem wegen dem Namen...)
Gruß, Christian
@Christian
Nur solltest Du dabei berücksichtigen, dass bei der Verwendung von EXISTS nur die Datensätze, für die die Bedingung zutrifft geändert werden, während bei der Verwendung von COALESCE ALLE Datensätze geändert werden. Im Klartext heißt das, dass der Datensatz gelesen und unverändert wieder (physisch) geschrieben wird. Wenn Du also eine große Datei hast und nur wenige Sätze ändern willst, kann die Performance schon ganz schön in den Keller gehen, vor allem wenn man berücksichtigt, dass man auf Satz-Sperren (bzw. entsprechende Wartezeiten) beim Lesen von Datensätzen, die man eigentlich nicht ändern will laufen kann.
Birgitta
-
@Baldur
Manchmal ist es hilfreich, den Key auf der linken Seite per cast anzupassen, also
decimal(a.Key, n, y) = b.key
oder
zoned(a.key, n, y) = b.key
Das funktioniert auch mit ungleich langen Zeichenfeldern:
cast(a.key as char(nn)) = b.key
Bringt allerdings bei Joinen von ungleichen Feldern wenig bis gar nichts! Ein Index kann (zumindest) vor Release 6.1 nur verwendet werden, wenn das Original-Feld unverändert ist. Die Verwendung von CAST oder einer skalaren Funktion bewirkt, dass das Original-Feld verändert wird. Die Länge spielt dabei keine Rolle!
Allerdings kann durch die explizite Konvertierung Einfluss darauf genommen werden kann, welche Datei "führend" verarbeitet wird und mit der anderen Datei verknüpft wird. Für die Datei, bei der die Original-Felder verwendet werden, kann ein Index verwendet werden. Für die andere Datei kann allenfalls ein Teilschlüssel verwendet werden.
Ansonsten konvertiert SQL intern selber (zumindest seit V5R3)!
Natürlich sollten z.B. in Where-Bestimmungen immer die gleichen oder compatible Datentypen verwendet werden. Wenn also z.B. das Feld Kunden-Nr. alphanumerisch ist, die Kunden-Nr. in diesem Feld jedoch numerisch ist, kann man das folgende angeben:
PHP-Code:
Where KundeNr = 4711
Der Datensatz wird gefunden, allerdings muss für jeden zu lesenden/vergleichenden Satz eine Konvertierung vorgenommen werden, um identische Datentypen zu vergleichen zu können, was Performance kostet.
Birgitta
Similar Threads
-
By mk in forum NEWSboard Programmierung
Antworten: 13
Letzter Beitrag: 13-07-12, 08:53
-
By steven_r in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 25-09-06, 08:22
-
By daniel.ludwig in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 21-07-06, 12:41
-
By wuwu in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 18-07-06, 15:31
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 01-06-06, 09:43
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