Anmelden

View Full Version : SQL - Create Table X/Y Angabe Satzformat



Seiten : 1 [2] 3

Fuerchau
02-11-04, 06:56
@Dieter
Interne Dateien aber dann externe Strukturen ??

@Birgitta
Dass ein CHAIN noch schneller sein soll als ein Select, halte ich für ein Gerücht.
Was ich in RPG mit mehreren native-Befehlen machen muss, erledige ich häufig mit einem SQL.
Das mit der Performance war mal so bei V3 !

BenderD
02-11-04, 08:09
Hallo,

genau das!!! damit hört der Quatsch des impliziten Füllens auf etc... Ich kann genau sagen wohin ich lesen will und aus was ich füllen will - das ist um Längen lesbarer- denk mal drüber nach.
Zu den Performance Geschichten: nach meinen Erfahrungen ist record level access bezogen auf eine Einzeloperation immer noch schneller als SQL, obwohl IBM von Release zu Release seit V4 das Gegenteil behauptet, da handelt es sich wohl um Wunschdenken aber: bezogen auf reale Programme ist SQL im Schnitt schneller und ich biete folgendes an:
jedes Batchprogramm, das mehr als 30 Minuten läuft und Rekord Löffel Exzess benutzt, mache ich mit SQL schneller, wenn die Maschine genug freie Ressourcen hat, erreiche ich das Ziel nicht, ist mein Bemühen kostenlos. (Habe ich auch mal für Java im Batch schneller als RPG angeboten).

mfg

Dieter Bender


@Dieter
Interne Dateien aber dann externe Strukturen ??

@Birgitta
Dass ein CHAIN noch schneller sein soll als ein Select, halte ich für ein Gerücht.
Was ich in RPG mit mehreren native-Befehlen machen muss, erledige ich häufig mit einem SQL.
Das mit der Performance war mal so bei V3 !

holgerscherer
04-11-04, 23:31
@Birgitta
Dass ein CHAIN noch schneller sein soll als ein Select, halte ich für ein Gerücht.
Was ich in RPG mit mehreren native-Befehlen machen muss, erledige ich häufig mit einem SQL.
Das mit der Performance war mal so bei V3 !

**snip**

Och... auch eine V5-Kiste kriege ich mit RPG oder SQL sehr schnell langsam ;-)

Besonders zu beachten ist der gelegentliche Unterschied, wie ein RPG-gewohnter Programmierer sich ein SQL Statement zusammenlötet und dann nicht beachtet, was der gelobte (sic) Optimizer daraus treibt. Ich kann nur eine Lehrstunde mit den Performance-Tools und dem Advisor im OopsNav5.3 empfehlen, auch wenn sonst im V5R3 einige Kataströfchen enthalten sind.

Übrigens schliesse ich mich hier mal Dieters Performance-Aussage an, das kann sogar für das interpretierte Net.Data gelten, wenn man hier optimiert.

Und letztendlich ist Ausführungsgeschwindigkeit auch nicht immer alles. Da bastelt man tagelang um ein interaktives RPG-Programm zum fliegen zu bekommen, und wenn es dann Reisegeschwindigkeit erreicht hat, kommt Herr Interaktivwächter und haut dem Programm eins auf die Fr^h^hNase.
Währenddessen läuft ein Net.Data- oder sonstwieinsbatchgehobene Programm gemütlich aber zügig daran vorbei.

Ich bin ja auch eher ein Freund der grün-auf-schwarzen, aber hier muss man leider der Realität ins Auge sehen.

Übrigens: Wer eine zufällig zwei Maschinen (V5R2 und V5R3) hat, kann ja mal parallel auf beiden Kisten etwas interaktive Last ausprobieren und mit WRKSYSACT sich verlustieren.

Besonders lustige Ergebnisse gibt ein interaktives STRSQL bei parallelem INSERT INTO blubb SELECT * FROM irgendwo ;-)

[Hartgesottene blättern parallel wild im DSPLOG rum]

-h

Fuerchau
05-11-04, 08:12
Was mir bei SQL native noch fehlt, ist die gleiche Möglichkeit wie bei SQLCLI, den SQL-Prozess als Hintergrundprogramm (QSQSRVR) zu aktivieren. Damit lege ich dann eine nicht unerhebliche Last in Batch.

Kennt jemand da eine Lösung ?

BenderD
05-11-04, 08:40
@Baldur: Diese Lösung ist elementar: Zwei Maschinen sind billiger als eine!!!
- Alle Zugriffe per SQL, Rekord Löffel Exzess komplett ablösen
- eine kleine 250 oder so, für 5250, eine (5)250 sozusagen.
- jetzt darf man von der (5)250 auf die richtige AS400, den Datenbankserver connecten und ist dort im Batch.

Dieter Bender


Was mir bei SQL native noch fehlt, ist die gleiche Möglichkeit wie bei SQLCLI, den SQL-Prozess als Hintergrundprogramm (QSQSRVR) zu aktivieren. Damit lege ich dann eine nicht unerhebliche Last in Batch.

Kennt jemand da eine Lösung ?

B.Hauser
05-11-04, 09:06
Was mir bei SQL native noch fehlt, ist die gleiche Möglichkeit wie bei SQLCLI, den SQL-Prozess als Hintergrundprogramm (QSQSRVR) zu aktivieren. Damit lege ich dann eine nicht unerhebliche Last in Batch.

Kennt jemand da eine Lösung ?

iSeries Navigator Database?

Birgitta

holgerscherer
05-11-04, 09:13
Was mir bei SQL native noch fehlt, ist die gleiche Möglichkeit wie bei SQLCLI, den SQL-Prozess als Hintergrundprogramm (QSQSRVR) zu aktivieren. Damit lege ich dann eine nicht unerhebliche Last in Batch.


RUNSQLSTM? Oder habe ich das falsch gelesen?

-h

Fuerchau
05-11-04, 12:05
Das ist nicht das, was ich meine.

Bei SQLCLI habe ich die Möglichkeit, beim SQLConnect, bzw. SQLSetConnectAttr den SQL-Server in einen Batchprozess zu verlegen. Dieser wird dann im QSYSWRK gestartet und sämtliche SQL-Befehle laufen dann nicht in meinem Dialog-Job, belasten daher nicht die Dialog-CPW sonder gelten als Batch-CPW.

Wie schaffe ich das aber im native SQL in RPG/LE ?

RUNSQLSTM funktioniert eh nur, wenn SQL installiert ist und läuft auch in dem Job, in dem es ausgeführt wird.

Und Dialogprogramme führe ich nicht über den OpsNav aus ;) !

BenderD
05-11-04, 13:03
Hallo Baldur,

wie gehabt: zwei Maschinen; auf die remote Datenbank darfst du connect machen und hängst an einem Serverjob.

Dieter


Das ist nicht das, was ich meine.

Bei SQLCLI habe ich die Möglichkeit, beim SQLConnect, bzw. SQLSetConnectAttr den SQL-Server in einen Batchprozess zu verlegen. Dieser wird dann im QSYSWRK gestartet und sämtliche SQL-Befehle laufen dann nicht in meinem Dialog-Job, belasten daher nicht die Dialog-CPW sonder gelten als Batch-CPW.

Wie schaffe ich das aber im native SQL in RPG/LE ?

RUNSQLSTM funktioniert eh nur, wenn SQL installiert ist und läuft auch in dem Job, in dem es ausgeführt wird.

Und Dialogprogramme führe ich nicht über den OpsNav aus ;) !

holgerscherer
05-11-04, 13:07
wie gehabt: zwei Maschinen; auf die remote Datenbank darfst du connect machen und hängst an einem Serverjob.


Ist auf jeden Fall eine gute Idee. Das könnte man "iSeries-Lizenzadapter" nennen...

Ich habe da noch einen Stapel 170er, den ich dafür anbieten könnte <g>

-h