sql ausgabe verschnellern

blackhawk2101

Grünschnabel
ich bin neu in sql und habe nun folgendes problem ich soll dieses "verschnellern" , habe jedoch keine ahnung wie ich das machen soll .
Folgendes habe ich mit mühe und not zusammen geflickt :



WITH recursive ABCDE (forkchoiceid, ugcchoiceid, ugcphraseid,ugcparentchoiceid,phrase ) AS
( SELECT forkchoiceid, ugcchoiceid,ugcphraseid,ugcparentchoiceid,phrase FROM ugcchoicelist
left outer join phrase on ugcphraseid = phraseid
WHERE ugcparentchoiceid = 610781
and languageid = 4
UNION ALL
SELECT A.forkchoiceid , A.ugcchoiceid,a.ugcphraseid,a.ugcparentchoiceid,c.phrase FROM ugcchoicelist A
left outer join phrase C on a.ugcphraseid = phraseid
and languageid = 4
INNER JOIN ABCDE B ON A.ugcparentchoiceid = B.forkchoiceid )
SELECT * FROM ABCDE
order by forkchoiceid
 
Als allerserstes bitte den Code Formatiert in SQL-Tags schreiben, damit wir das auch lesen können
[code=sql]SELECT ...[/code]

Nachtrag:
item :Sind das wirklich Feld- und Tabellennamen? Mein Gott, da hötte ich sofoert ein Chaos
item: Ich zitiere mich mal selber aus einem andeen Thread
Performance-Verbesserungen sind keine eindeutige und einfache Sache. Es ist ein testen und heran tasten. Auswerten von Explainplans, SQL umschreiben - ggf. total umschreiben, weiter testen, Anzahl Datensätze der Tabelle vergleichen, ggf. Subqueries machen um die Datenmenge so früh wie möglich klein zu kriegen etc.
Also, so einfach *schnipp*und ein SQL ist schnell - das kannst du vergessen. Diese ganzen Punkte die ich aufgezählt habe gehen auch nicht einfach so mit im Forum hin und her schreiben. Lies dich in das Thema ein. Verscuh es zu verstehen. Und dann setz dich hin und probier dich durch.
 
Zuletzt bearbeitet von einem Moderator:
Code:
WITH recursive ABCDE (forkchoiceid, ugcchoiceid, ugcphraseid,ugcparentchoiceid,phrase ) AS 
( SELECT forkchoiceid, ugcchoiceid,ugcphraseid,ugcparentchoiceid,phrase FROM ugcchoicelist
left outer join phrase on ugcphraseid = phraseid
WHERE ugcparentchoiceid =  610781 
and languageid = 4 
UNION ALL
SELECT A.forkchoiceid , A.ugcchoiceid,a.ugcphraseid,a.ugcparentchoiceid,c.phrase FROM ugcchoicelist A 
left outer join phrase C on a.ugcphraseid = phraseid
and languageid = 4 
INNER JOIN ABCDE B ON A.ugcparentchoiceid = B.forkchoiceid )
SELECT * FROM ABCDE
 order by forkchoiceid
 
Sorry, aber hast du mein Posting gelesen? Nicht - auch gut. Ich kann die Beispiele machen wie der Tag aussehen muss-wird ignoriert. Ich mache ein Beispiel was mit 'formatiert' gemeint ist - ignoriert.

Zudem ist das ganze nur ein Ausschnitt, den ich so nicht versteh. Ein SQL das mit WITH beginnt und einem SELECT endet?
Was für eine DB ist denn da eigentlich dahinter?

Und auf die Gefahr hin, dass ich mich wiederhole - mach dir mal nicht zuviel Hoffnung, dass wir etwas sehen könnten.
Performance-Verbesserungen sind keine eindeutige und einfache Sache. Es ist ein testen und heran tasten. Auswerten von Explainplans, SQL umschreiben - ggf. total umschreiben, weiter testen, Anzahl Datensätze der Tabelle vergleichen, ggf. Subqueries machen um die Datenmenge so früh wie möglich klein zu kriegen etc.
Also, so einfach *schnipp*und ein SQL ist schnell - das kannst du vergessen. Diese ganzen Punkte die ich aufgezählt habe gehen auch nicht einfach so mit im Forum hin und her schreiben. Lies dich in das Thema ein. Verscuh es zu verstehen. Und dann setz dich hin und probier dich durch.
 
ich habe ja nicht mal eien idee was ich da anders machen soll... ich habes schon alles gelesen nur steh ich grade etwas neben mir . ich weiß ja selber nicht was ich da gebaut habe ich habe das eingegeben und schwub da kam das. ich weiß nicht wie was beginen muss und wies enden muss ich mache das erst seit 2 tagen . ich wurde ohne grundkenntnisse auf ne 4 milionen eintröäge datenbank losgelassen. und versuche irgendwie befehle zu finden und die logisch zusammen zu bauen

wenns hiflt das programm heißt sql anywhere 9
 
Zuletzt bearbeitet:
....
Ein SQL das mit WITH beginnt und einem SELECT endet?
Was für eine DB ist denn da eigentlich dahinter?
...

Hi,


WITH : Im SQL-99 Definiert :), zumindest seit Oracle 9 R2 wird es unterstützt
(--> subquery factoring)

Beispiel :

SQL:
WITH myTestTab AS (
     SELECT 'Roger' FIRST_NAME,
            'Testo' SURE_NAME, 
            TO_DATE('01.01.1970','DD.MM.YYYY')  DAY_OF_BIRTH FROM DUAL UNION
     SELECT 'Hoger' FIRST_NAME, 
            'Aloah' SURE_NAME, 
            TO_DATE('01.01.1980','DD.MM.YYYY')  DAY_OF_BIRTH FROM DUAL UNION
     SELECT 'Noger' FIRST_NAME, 
            'Tarum' SURE_NAME, 
            TO_DATE('01.01.1975','DD.MM.YYYY')  DAY_OF_BIRTH FROM DUAL UNION
     SELECT 'Doger' FIRST_NAME, 
            'Herdo' SURE_NAME, 
            TO_DATE('01.01.1985','DD.MM.YYYY')  DAY_OF_BIRTH FROM DUAL
     )
     SELECT * 
         FROM myTestTab 
            WHERE DAY_OF_BIRTH BETWEEN TO_DATE('01.01.1969','DD.MM.YYYY') 
                                   AND TO_DATE('01.01.1976','DD.MM.YYYY')


Gruss
 
Zuletzt bearbeitet von einem Moderator:
Zurück