-
24.02.11 10:36 #1
- Registriert seit
- Feb 2011
- Beiträge
- 19
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
[SQL]SELECT ...[/SQL]
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.---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
24.02.11 10:42 #3
- Registriert seit
- Feb 2011
- Beiträge
- 19
wo finde ich den code?
-
24.02.11 10:44 #4
- Registriert seit
- Feb 2011
- Beiträge
- 19
oh man nichts kann ich
-
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
24.02.11 10:48 #6
- Registriert seit
- Feb 2011
- Beiträge
- 19
Code :1 2 3 4 5 6 7 8 9 10 11 12 13
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
-
24.02.11 10:51 #7
- Registriert seit
- Feb 2011
- Beiträge
- 19
ich glaube ich bin ein hoffnungsloser Fall

für mich ist das was ich da gebastelt habe schon zu hoch .
-
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.---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
24.02.11 10:59 #9
- Registriert seit
- Feb 2011
- Beiträge
- 19
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 9Geändert von blackhawk2101 (24.02.11 um 11:01 Uhr)
-
Hi,
WITH : Im SQL-99 Definiert
, zumindest seit Oracle 9 R2 wird es unterstützt
(--> subquery factoring)
Beispiel :
Code sql:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
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')
GrussGeändert von dbwizard (24.02.11 um 11:06 Uhr)
-
item: Bitte, bitte achte Auf Gross-Kleinschreibung. Auch Satzzeichen sind was nettes. Genauso wie dein Text sieht auch dein Code aus.
item: Dies ist kein Chat. Mehrfachposts hintereinander sind ncith gerne gesehen. Es gibt ein 'Bearbeiten'-Button mit dem man nachträglich in sein Beitrag was anfügen kann
item: Beantwortest du nicht mal meine Fragen die wirklich notwendig sind um dir ev helfen zu können.
item: Dass du keine Ahnung hast, dass wissen wir jetzt. steht je egientlich in jedem Beitrag. Es währe Sinnvoll sich nun auf das problem zu konzentrieren.
item: Damit wir dir helfen können, solltest du uns schon soweit entgegen kommen und unsere Beiträge lesen, überdenken und wenn da Gegenfragen oder so sind, diese nicht zu ignorieren. Wir fragen nicht weils Spass macht, sondern weil wir mehr wissen müssen um helfen zu können.
Also:
Nachtrag:
@dbwizard
Ich kenne 'SQL-99 ANSI' nicht. Kennst du es? dann bitte übernehmen---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
24.02.11 11:09 #12
- Registriert seit
- Feb 2011
- Beiträge
- 19
Ok ich gebe mir Mühe. Also Schritt für Schritt jetzt. Was ist mit DB gemeint?
-
Hi,
Damit ist deine Datenbank (DB) gemeint, dies hast du ja schon beantwortet (SQL Anywhere 9)
Was yaslaw mit "formatieren" gemeint hat ist, das du deinen SQL Code zwischen SQL-Tags setzt :
Code sql:1 2 3 4 5 6 7 8 9 10 11 12
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
Frage : Kannst du die beiden Teile der Abfrage auseinandernehmen und separat ausführen ? Als einmal folgendes :
Code sql:1 2 3 4
SELECT forkchoiceid, ugcchoiceid,ugcphraseid,ugcparentchoiceid,phrase FROM ugcchoicelist LEFT OUTER JOIN phrase ON ugcphraseid = phraseid WHERE ugcparentchoiceid = 610781 AND languageid = 4
...und dann als 2. :
Code sql:1 2 3 4
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
- Sind beide Teile "langsam" ?
GrussGeändert von dbwizard (24.02.11 um 11:15 Uhr)
-
24.02.11 11:14 #14
- Registriert seit
- Feb 2011
- Beiträge
- 19
Ah danke . Das war Idioten sicher.
-
24.02.11 11:16 #15
- Registriert seit
- Feb 2011
- Beiträge
- 19
Ich probiers mal
Ähnliche Themen
-
Ausgabe von Datensätzen als Tabelle, Ausgabe horizontal statt vertikal
Von godfather_al im Forum PHPAntworten: 15Letzter Beitrag: 16.08.09, 22:31 -
Algorithmus der rekursiven Hyperlinksuche verschnellern
Von NTDY im Forum PHPAntworten: 7Letzter Beitrag: 04.12.08, 23:09 -
Rendern verschnellern
Von mibsteve im Forum Cinema 4DAntworten: 2Letzter Beitrag: 30.04.07, 18:28 -
SQL - Query Ausgabe gibt mehrere Zeile aus -> Ausgabe soll nur 1 Zeile zurück geben
Von Briefkasten im Forum Relationale DatenbanksystemeAntworten: 5Letzter Beitrag: 26.01.07, 12:10 -
PHP ausgabe
Von andulus im Forum PHPAntworten: 2Letzter Beitrag: 31.08.05, 16:42



1Danke

Zitieren


Login





