Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

SQL-Abfrage Timeout problem

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von P8310, 27 Mai 2015.

  1. P8310

    P8310 Benutzer

    Hallo zusammen,

    ich möchte mich kurz vorstellen, mein Name ist Tino und Prog. hin und wieder mal kleiner Sachen.

    Nun habe ich natürlich gleich ein Anliegen mitgebracht...
    Code:
    SELECT Parts.* FROM Label INNER JOIN Date ON Label.H_SER = Date.D_SER INNER JOIN Parts ON Label.H_SER = Parts.P_SER" & _
                                 " 
    WHERE Date.D_S BETWEEN CONVERT(datetime, '" & von & "', 104) AND CONVERT(datetime, '" & bis & "', 104) AND Label.H_TEST = '" & line & "' AND Parts." & spalte & " = '" & such & "'
    ich habe hier das Problem das ich meist immer in ein Timeout laufe, darauf hin habe ich diesen auf 120 angehoben, und es kommen auch Daten. Aber irgendwie hab ich das Gefühl das es nicht korrekt ist oder es besser geschrieben werden kann b.z es schneller geht.

    lieben dank im Voraus
    Tino
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Indexe? Explain?
     
  3. P8310

    P8310 Benutzer

    Hallo akretschmer,

    ich sollte vllt. noch erwähnen das ich mehr im Anwenderbereich arbeite und in Sachen SQL nicht sehr fix bin.
    könntest kurz etwas näher darauf eingehen? danke
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Indexe helfen Abfragen schneller auszuführen, Explain zeigt des Ausführungsplan an.
     
    P8310 gefällt das.
  5. ukulele

    ukulele Datenbank-Guru

    Die Abfrage ist zunächst mal nicht ungewöhnlich, da kann man nicht viel optimieren. Jetzt kennen wir ja nicht die Datenmengen die dahinter stehen aber Indexe werden vermutlich dein Problem lösen.

    Wenn du das MSSQL Management Studio benutzt gibt es einen Button "tatsächlichen Ausführungsplan einschließen", das ist wie EXPLAIN und liefert dir eine grafische Darstellung.
     
  6. P8310

    P8310 Benutzer

    hmm...bin ja da nicht so fit drin. würde es was bringen wenn ich euch diesen Execution Plan hochlade?
     
  7. ukulele

    ukulele Datenbank-Guru

    Der ist eigentlich nicht schwer zu lesen, dort wo die meiste Zeit verbraucht wird liegt dein Problem.
     
  8. P8310

    P8310 Benutzer

    also ist es bei mir die between oder?
     

    Anhänge:

    • we.JPG
      we.JPG
      Dateigröße:
      41,4 KB
      Aufrufe:
      10
  9. ukulele

    ukulele Datenbank-Guru

    Das Bild ist unvollständig aber es zeigt 98% Kosten für das ausgewählte Element. Hier ist die Abfrage auf jeden Fall am längsten zu Gange.
     
  10. P8310

    P8310 Benutzer

    okay da ist es die Between. da kann auch nicht viel anderes gemacht werden. Danke, hab jetzt schon viel mitgenommen aus diesen einem Thema
     
  11. ukulele

    ukulele Datenbank-Guru

    Du könntest einen Index auf die Spalten von und bis legen. So ein Index beißt auch nicht, der läßt sich schnell wieder löschen.
     
  12. P8310

    P8310 Benutzer

    ...kannst du mir da bitte kurz auf die beine helfen?

    ...würde es dadurch kürzer? oder wird nur der erste und letzte Datensatz selektiert und zwischen denn beiden aufsteigend index angelegt?
     
  13. Distrilec

    Distrilec Datenbank-Guru

    Ich bin absolut kein MS SQL Experte... Aber das könnte ja erstmal helfen oder?
    (Bevor man jetzt anfängt wild neue Indizes anzulegen...)
    Code:
    Select t.name,
      i.*
    From  sys.indexes i
    
    Inner  Join sys.tables t
    On  t.object_id = i.object_id
    
    Where  t.name  In ('Label', 'Date', 'Parts')
    (Kann sein das die Tabellennamen groß geschrieben werden müssen... Weiß nicht wie das da hinterlegt ist...)
     
  14. akretschmer

    akretschmer Datenbank-Guru

    erfordert aber in vielen Systemen einen exclusiven lock (PostgreSQL: create index concurrently ... ohne locks ;-) )
     
  15. P8310

    P8310 Benutzer

    das wäre auch das was mir die ausgabe (execution plan) sagt....denk ich....
     

    Anhänge:

    • sq2.JPG
      sq2.JPG
      Dateigröße:
      33,1 KB
      Aufrufe:
      6
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden