Re: ORDER in Unterselect sehr langsam
also hab mir das IBExpert runtergeladen
da funkt das nun
SQL-Code:
Allerdings sehe ich in der PErsonal keine infos über die Zeiten und co, so wie in der IBConsole ....
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 |
Re: ORDER in Unterselect sehr langsam
Hi,
versuch mal folgendes:
SQL-Code:
Ich hoffe, ich habe mich nirgends mit den Namen vertan.
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 Grüße |
Re: ORDER in Unterselect sehr langsam
Hallo,
stimmt ;) Deshalb schreibe ich sowas auch immer so
SQL-Code:
Oder Unterstriche, halt immer was eindeutiges.
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 Heiko |
Re: ORDER in Unterselect sehr langsam
Zitat:
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 ... |
Re: ORDER in Unterselect sehr langsam
Also der Plan wird bei mir angezeigt
|
Re: ORDER in Unterselect sehr langsam
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) |
Re: ORDER in Unterselect sehr langsam
Hat PERSONAL keinen PK bzw ist es ein anderer als ID?
|
Re: ORDER in Unterselect sehr langsam
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? |
Re: ORDER in Unterselect sehr langsam
Könnte sein
|
Re: ORDER in Unterselect sehr langsam
Versuch mal einfach folgendes:
SQL-Code:
:wink:
SELECT Terminal_Buchungen.PersonalID, Max(Terminal_Buchungen.AuftragID), Max(Terminal_Buchungen.Buchung)
FROM Terminal_Buchungen GROUP BY PersonalID |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:43 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