-
Wie gesagt TABLE + INDEX ist meist schneller als PF+LF.
Eine PF mit eigenen Keys ist genauso schnell wie eine PF mit einer LF.
Siehe auch Diskussion:
PF - prüfen beim Lesen, nicht prüfen beim Schreiben
TABLE - prüfen beim Schreiben, nicht prüfen beim Lesen
Das erklärt auch, warum eine TABLE schneller ist als eine PF.
Messbar wird das allerdings erst bei Massenzugriffen und nicht bei einzelnen Sätzen.
-
soviel ich weiß ist eine table mit key-feldern ein wenig schneller, da bei einem LF auf 2 objekte zugegriffen werden müssen (LF -> PF). und bei einem table mit keys brauch ich nur die eine table für den zugriff.$
wenn ich eine große abrage mache ist meines wissens der performance-unterschied verschwindend gering. interessant wäre es wenn in einer schleife 1 mio mal ein update ausgeführt wird.
lg andreas
-
Da die LF mit der PF verpointert ist, ist der Zugriff hier genauso schnell. Selbst wenn 2mal zugegriffen werden müsste, ist dies auch nur beim Open der Fall.
Ein Schlüssel verweist direkt auf den Datensatz per Adresse.
Deshalb dauert ja ein RGZPFM oder Neuaufbau eines Index ja so lange, da nun mal diese Referenzen neu aufgebaut werden müssen.
-
Hallo allerseits,
vielleicht noch ein anderer Aspekt:
Ich hatte eine _große_ PF, die ein 6-stelliges Feld mit JJMMTT als Key-Feld enthielt.
Vor gut 10 Jahren wurde dann das Feld erweitert und anschl. das JH zugefügt
Da habe ich geflucht! Die vielen LFs konnte ich abhängen und nach der Bestückung mit JH wieder gesamt aufbauen. Das hat nur ein paar Stunden gedauert.
Den Key in der PF konnte ich halt nicht abhängen, d.h. jeder einzelne geänderte Satz sorgte für ein umsortieren der Datei. Das hat _ewig_ gedauert :-(
Vorher fand ich PF mit Key auch ganz ok, aber man lernt ja immer wieder dazu...
Gruß,
Christian
-
... nur am Rande: Für einen Index wird nix sortiert, das ist als (mehrstufiger) binärer Baum implementiert, da werden nur Verpointerungen von Knoten gepflegt. Bei einer solchen Änderung (Feld des Primärindexes vergrößern) müssen die betroffenen Indexe gelöscht werden, egal ob sie zur PF gehören oder nicht und selbige muss eh gelöscht werden (Copy Arie hin und zurück), wenn sich ein Feld in der Dimenionierung ändert.
Früher galt mal: wenn der Primär Index beschädigt ist und zur PF gehört, dann muss per Restore geheilt werden, ist er separat reicht Neuaufbau des Index. Dieses Argument ist für SQL wahrscheinlich schwächer geworden (eine Constraint kann man mit drop bearbeiten) aber möglicherweise nicht ganz weg.
Ansonsten ist das ganze Perfomance Gedöns mit Prüfung ob und wann und Tralala bestenfalls nutzlose Beschäftigung auf Nebenkriegsschauplätzen, daran entscheidet sich nicht, ob eine Anwendung langsam oder schnell ist, oder ob die Datenbank besser oder schlechter skaliert, das ist alles Marketing Getute aus der Schublade: DB2 jetzt auch mit Kalkseifenentferner oder jetzt wäscht RPG noch weißer als vorher - und da wusch es schon so weiß, dass es weißer nicht ging!
D*B
 Zitat von cbe
Hallo allerseits,
vielleicht noch ein anderer Aspekt:
Ich hatte eine _große_ PF, die ein 6-stelliges Feld mit JJMMTT als Key-Feld enthielt.
Vor gut 10 Jahren wurde dann das Feld erweitert und anschl. das JH zugefügt
Da habe ich geflucht! Die vielen LFs konnte ich abhängen und nach der Bestückung mit JH wieder gesamt aufbauen. Das hat nur ein paar Stunden gedauert.
Den Key in der PF konnte ich halt nicht abhängen, d.h. jeder einzelne geänderte Satz sorgte für ein umsortieren der Datei. Das hat _ewig_ gedauert :-(
Vorher fand ich PF mit Key auch ganz ok, aber man lernt ja immer wieder dazu...
Gruß,
Christian
-
klar musste der Index neu aufgebaut werden, wenn ich das Feld vergrößere.
Hierfür habe ich die Daten gesichert
die LFs gelöscht
die PF neu erstellt
die Daten wieder per CPYF zukopiert
dann 19 bzw. 20 in das Key-Feld dazugeschrieben
und zuletzt die LFs wieder aufgebaut
Das Problem war eben, dass _beim_Update_jedes_einzelnen_Satzes die AS den Index in der PF aktualisiert hat, was dadurch viel länger dauerte, als 1x neuaufbauen am Ende, so wie bei den LFs
-
... das kann man mit CHGPF bzw. CHGLF einstellen, ob der Zugriffspfad sofort aktualisiert wird, oder nicht, bzw. man muss eine Constraint nicht sofort anlegen, kann sie auch mit alter table drop constraint aufheben und später einrichten...
D*B
 Zitat von cbe
klar musste der Index neu aufgebaut werden, wenn ich das Feld vergrößere.
Hierfür habe ich die Daten gesichert
die LFs gelöscht
die PF neu erstellt
die Daten wieder per CPYF zukopiert
dann 19 bzw. 20 in das Key-Feld dazugeschrieben
und zuletzt die LFs wieder aufgebaut
Das Problem war eben, dass _beim_Update_jedes_einzelnen_Satzes die AS den Index in der PF aktualisiert hat, was dadurch viel länger dauerte, als 1x neuaufbauen am Ende, so wie bei den LFs
-
oh, gut zu wissen.
Das hätte mir beim y2k einiges an Zeit + Nerven gespart, danke für den Tip
(also auch kein Argument für oder wider Key in PF)
-
... die diversen Indexe kann man dann noch in parallelen Jobs aufbauen, dann geht das noch fixer.
D*B
 Zitat von cbe
oh, gut zu wissen.
Das hätte mir beim y2k einiges an Zeit + Nerven gespart, danke für den Tip
(also auch kein Argument für oder wider Key in PF)
-
Ich klink mich hier mal ein ..
wir haben hier ein PF mit Key
K FINRCD
K SARTCD
K SPRCCD
K SAKZCD
K RKEYCD
beim Zugriff mit SQL hab ich unter debug diese Zugriffspfad Empfehlung
FINRCD SARTCD SPRCCD SAKZCD
Das versteh ich nicht.
Kann SQL nicht mit Key PF ?
Danke
Robi
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Da müßte eigentlich auch noch stehen, welche Zugriffspfade alle berücksichtigt wurden und welcher ausgewählt wurde und welche anderen warum nicht ausgewählt wurden.
-
und welcher Zugriffspfad wurde schlussendlich genommen?
Mit welchen Schlüsseln gehst du auf die Tabelle Lesen?
Welche Schlüssel hat der Zugriffspfad der von SQL genommen wurde, falls nicht direkt die PF genommen wurde?
Similar Threads
-
By jogisarge in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 24-04-09, 21:40
-
By harkne in forum NEWSboard Programmierung
Antworten: 10
Letzter Beitrag: 18-07-08, 13:41
-
By GraueEminenz in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 05-01-07, 11:47
-
By deni87991 in forum IBM i Hauptforum
Antworten: 21
Letzter Beitrag: 07-08-06, 16:42
-
By Robi in forum IBM i Hauptforum
Antworten: 16
Letzter Beitrag: 06-07-05, 10:47
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