-
SQL Insert
Hallo Forum.
Schon wieder ich...
Wie prüfe ich sinnvoll das Vorhandensein von Sätzen beim
Insert?
1. Tabelle mit Unique Key definieren , Insert absetzen und
SQLCODE prüfen
oder
2. Select Count(*) und bei > 0 kein Insert.
oder
3. ???
Ich verwende Pkt. 1
Den "Select Count(*)" habe ich jetzt in verschiedenen Programmen oder Beispielen gesehen. Wie sieht es denn da
mit der Performance aus wenn eine Tabelle mehrere Mio. Sätze
enthält. Oder wie "zählt" der Count?
Gruss
Joe
-
Den Insert auf einen Fehler laufen zu lassen ist (meistens) besser, da zwischen dem "select count(*)" und dem Insert ein anderer Job den Insert durchführen kann.
Der Select gibt zwar den momentanen Stand, der kann sich aber Millisekunden später schon ändern.
Der Select ist schnell, wenn es über die Felder der where-Bedingung eine LF (Index) gibt.
-
Hallo Joe,
direkter INSERT ist das Beste
SELECT COUNT(*) ist Murks, weil das nur heisst das jetzt noch keiner da war, beim tatsächlichen INSERT könnte sich das geändert haben.
Wenn bei vorhandenem Satz ein Update erfolgt, könnte man auch diesen zuerst probieren und wenn der schief geht den INSERT machen. Das ist dann minimal billiger, wenn der Satz eher vorhanden ist, aber komplizierter zu programmieren, wenn der Satz dann doch da ist, weil einer schneller war.
Wieder mal: mit der Peorformance, das ist meist viel zu kurz gedacht; Datenbankperformance ist dominiert von zwei Dingen:
1. Zugriffspfade (hat mit den Statements nix zu tun)
2. Sperrkonflikte (dauert bei Deadlock 60 sec.)
Zweiteres wird zu 99,9 % übersehen!!! Statt dessen wird gerne über Kleinigkeiten spekuliert und schwadroniert. Das einzige was hier zählt ist messen!!!
mfg
Dieter Bender
-
Danke für die, wie immer, prompten und qualifizierten Anworten.
Gruss Joe
Similar Threads
-
By Robi in forum IBM i Hauptforum
Antworten: 20
Letzter Beitrag: 16-03-09, 10:32
-
By woki in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 31-10-06, 10:21
-
By Deficiency in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 13-01-06, 09:00
-
By linguin in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 07-01-06, 15:46
-
By Deficiency in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 01-12-05, 11:22
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