Autor Téma: SUM(F1) - SUM(F2), alebo subselect  (Přečteno 178 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2731
  • Karma: 26
    • Verze Delphi: XE7 professional
SUM(F1) - SUM(F2), alebo subselect
« kdy: 04-05-2017, 12:21:12 »
Čo je efektívnejšie, alebo to je jedno:
Kód: Delphi [Vybrat]
  1. SELECT SUM(F1) - SUM(F2), SUM(F1),  SUM(F2)
  2. ...
  3.  
čiže všetko v jednom select-e, alebo
Kód: Delphi [Vybrat]
  1. SELECT A - B, A,  B
  2. ...
  3. FROM
  4. (SELECT SUM(F1) A,  SUM(F2) B)
  5. ...
  6.  
Môj názor je, že je lepšie použiť subselect, pretože agregačné funkcie sa vykonajú 2 x. Ináč 4 x.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1741
  • Karma: 72
    • Verze Delphi: D2007, XE3, DX10
Re:SUM(F1) - SUM(F2), alebo subselect
« Odpověď #1 kdy: 04-05-2017, 13:07:18 »
Môj názor je, že je lepšie použiť subselect, pretože agregačné funkcie sa vykonajú 2 x. Ináč 4 x.
To hodne zalezi na optimizeru daneho RDBMS. Normalni postup je se neptat v konferenci a zkusit ty verze spustit v nejakem toolu, ktery obsahuje plan & performance analyzer a vidis vysledek driv, nez stacis napsat a odeslat dotaz. Ja ziju v domneni, ze jsi do nejakeho nastroje investoval, takze v placenem nastroji bych takove funkce ocekaval...

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2731
  • Karma: 26
    • Verze Delphi: XE7 professional
Re:SUM(F1) - SUM(F2), alebo subselect
« Odpověď #2 kdy: 04-05-2017, 13:14:48 »
Všetko čo si napísal je pravda, včítane domnienky.
S plan & performance analyzer som ešte nepracoval. Len či mu budem rozumieť?  Asi už je čas :)
Hlavný problém vidím v tom, že mám len pár údajov. Doslovne. Nie sú to ani len desiatky. Takže podľa časov sa nebudem vedieť orientovať. Asi si budem musieť urobiť kópiu DB a automaticky vygenerovať tisícky záznamov.
Pripomienku si beriem k srdcu.
Ďakujem.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1741
  • Karma: 72
    • Verze Delphi: D2007, XE3, DX10
Re:SUM(F1) - SUM(F2), alebo subselect
« Odpověď #3 kdy: 04-05-2017, 13:31:43 »
S plan & performance analyzer som ešte nepracoval. Len či mu budem rozumieť?  Asi už je čas :)
V tech analyzerech te vetsinou ani tak nezajimaji casy, ale pocty operaci, zejmena ve srovnani s celkovymi pocty zaznamu
a) je treba zbystrit vsude tam, kde je pristup k datum natural tj. bez indexu
b) a u tabulek, ze kterych se cte plny pocet zaznamu (u jedne to byva normalni)

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Jméno: E-mail:
Ověření:
Křestní jméno zpěváka Gotta: