AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ORDER in Unterselect sehr langsam
Thema durchsuchen
Ansicht
Themen-Optionen

ORDER in Unterselect sehr langsam

Ein Thema von Gruber_Hans_12345 · begonnen am 13. Okt 2009 · letzter Beitrag vom 15. Okt 2009
Antwort Antwort
Seite 4 von 5   « Erste     234 5      
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.438 Beiträge
 
Delphi 2007 Professional
 
#31

Re: ORDER in Unterselect sehr langsam

  Alt 15. Okt 2009, 11:43
also hab mir das IBExpert runtergeladen

da funkt das nun
SQL-Code:
execute block
returns (ID INTEGER, MBID INTEGER)
as
declare variable ID1 INTEGER;
begin
  for select ID FROM PERSONAL into :ID
  DO begin
    MBID = null;
    SELECT FIRST 1 TB.AUFTRAGID FROM TERMINAL_BUCHUNGEN TB WHERE TB.PERSONALID = :ID INTO :mbid;
    suspend;
  end
end
Allerdings sehe ich in der PErsonal keine infos über die Zeiten und co, so wie in der IBConsole ....
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Delphianer

Registriert seit: 19. Feb 2003
Ort: Rossau
149 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#32

Re: ORDER in Unterselect sehr langsam

  Alt 15. Okt 2009, 12:01
Hi,

versuch mal folgendes:

SQL-Code:
SELECT P.ID, TEMP.BUCHUNG, TB.AUFTRAGID FROM PERSONAL P
JOIN (SELECT PERSONALID, MAX(BUCHUNG) BUCHUNG FROM TERMINAL_BUCHUNGEN GROUP BY PERSONALID) TEMP on TEMP.PERSONALID=P.ID
JOIN TERMINAL_BUCHUNGEN TB ON TEMP.BUCHUNG = TB.BUCHUNG
Ich hoffe, ich habe mich nirgends mit den Namen vertan.

Grüße
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#33

Re: ORDER in Unterselect sehr langsam

  Alt 15. Okt 2009, 12:21
Hallo,

stimmt

Deshalb schreibe ich sowas auch immer so

SQL-Code:
CREATE PROCEDURE SP_Bla
RETURNS (
    theID INTEGER,
    theMBID INTEGER)
AS
begin
  for select ID FROM PERSONAL into :theID
  DO begin
    MBID = null;
    SELECT FIRST 1 TB.AUFTRAGID
    FROM TERMINAL_BUCHUNGEN TB WHERE TB.PERSONALID = theID
    order by tb.buchung desc
    INTO :theMBID
    suspend;
  end
end
Oder Unterstriche, halt immer was eindeutiges.


Heiko
Heiko
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.438 Beiträge
 
Delphi 2007 Professional
 
#34

Re: ORDER in Unterselect sehr langsam

  Alt 15. Okt 2009, 12:31
Zitat von hoika:
Hallo,

stimmt

Deshalb schreibe ich sowas auch immer so

Oder Unterstriche, halt immer was eindeutiges.


Heiko
verstehe nicht, was du meinst?
funktionieren tut es nun ja, nur in der Personal Edition gibt es leider keine PLAN oder PERFORMANCE Daten, sehe nun nicht ob ich schneller bin oder nicht ...
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#35

Re: ORDER in Unterselect sehr langsam

  Alt 15. Okt 2009, 12:40
Also der Plan wird bei mir angezeigt
Markus Kinzler
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.438 Beiträge
 
Delphi 2007 Professional
 
#36

Re: ORDER in Unterselect sehr langsam

  Alt 15. Okt 2009, 12:43
ja, der PLAN schon :
SQL-Code:
execute block
returns (ID INTEGER, MBID INTEGER)
as
declare variable ID1 INTEGER;
begin
  for select ID FROM PERSONAL into :ID
  DO begin
    MBID = null;
    SELECT FIRST 1 TB.AUFTRAGID FROM TERMINAL_BUCHUNGEN TB WHERE TB.PERSONALID = :ID INTO :mbid;
    suspend;
  end
end

Statement Plan
--------------
PLAN (TB INDEX (TB_PERSONALID))
PLAN (PERSONAL NATURAL)
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#37

Re: ORDER in Unterselect sehr langsam

  Alt 15. Okt 2009, 12:47
Hat PERSONAL keinen PK bzw ist es ein anderer als ID?
Markus Kinzler
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.438 Beiträge
 
Delphi 2007 Professional
 
#38

Re: ORDER in Unterselect sehr langsam

  Alt 15. Okt 2009, 13:13
Doch aht es und ist auch der ID

meinst du wegen dem
PLAN (PERSONAL NATURAL)
?

Ich vermute mal das ist, weil ich die ganze PERSONAL Tabelle auslese, daher kann bzw brauche ich ja keinen Index in dem Fall oder?
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#39

Re: ORDER in Unterselect sehr langsam

  Alt 15. Okt 2009, 13:15
Könnte sein
Markus Kinzler
  Mit Zitat antworten Zitat
webcss

Registriert seit: 10. Feb 2006
255 Beiträge
 
Delphi XE2 Professional
 
#40

Re: ORDER in Unterselect sehr langsam

  Alt 15. Okt 2009, 13:24
Versuch mal einfach folgendes:
SQL-Code:
SELECT Terminal_Buchungen.PersonalID, Max(Terminal_Buchungen.AuftragID), Max(Terminal_Buchungen.Buchung)
FROM Terminal_Buchungen
GROUP BY PersonalID
"Wer seinem Computer Mist erzählt, muss immer damit rechnen..." (unbekannt)
"Der Computer rechnet damit, dass der Mensch denkt..." (auch unbekannt)
mein blog
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 5   « Erste     234 5      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz