Autor Téma: WHERE - spôsob vyhodnotenia podmienka.  (Přečteno 1210 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2720
  • Karma: 26
    • Verze Delphi: XE7 professional
WHERE - spôsob vyhodnotenia podmienka.
« kdy: 16-11-2015, 14:26:23 »
Vyhodnocujú sa podmienky postupne zľava doprava, alebo vždy celý výraz?
Príklad. V každej tabuľke mám hodnotu FKFOCS = FOCS.IDFOCS (SVB, alebo jednoduchšie bytovka). Oplatí sa robiť
Kód: [Vybrat]
SELECT *
FROM myTable
WHERE FKFOCS = 10 and podmienka2
alebo je to rovnako rýchle ako
Kód: [Vybrat]
SELECT *
FROM myTable
WHERE podmienka2
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 1672
  • Karma: 69
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:WHERE - spôsob vyhodnotenia podmienka.
« Odpověď #1 kdy: 16-11-2015, 15:21:14 »
Tak si to zkus spustit v nejakem nastroji, ten ti ukaze jak dlouho to zpracovaval. Resp. si muzes zkusit zobrazit plan vyhodnocovani SQL a ten ti rekne Cost jednotlivych operaci.

Podle mne to u jednoduchych SQL nebude mit vyznam. Vetsina lepsich SQL serveru ma optimizer, ktery optimalizuje provadeni SQL dotazu, tak aby vysledek byl co nejrychlejsi - pro zobrazeni slouzi prave ten plan
Embarcadero MVP - Czech republic

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2720
  • Karma: 26
    • Verze Delphi: XE7 professional
Re:WHERE - spôsob vyhodnotenia podmienka.
« Odpověď #2 kdy: 16-11-2015, 19:14:57 »
Citace
Podle mne to u jednoduchych SQL
Keby som vedel ktoré sú tie zložité :)
Citace
Tak si to zkus spustit v nejakem nastroji
Teraz mám veľmi málo údajov. Buď si urobím skúšobnú DB, alebo neskôr.
Ale zariadim sa podľa toho.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline geby

  • Plnoletý
  • ***
  • Příspěvků: 162
  • Karma: 13
    • Verze Delphi: 7, 2007, XE2, 10.2
    • Synapse
Re:WHERE - spôsob vyhodnotenia podmienka.
« Odpověď #3 kdy: 25-02-2016, 16:16:09 »
Jakekoliv rady "co je lepsi" jsou zavisle na pouzite databazi. Pro kazdou z nich to muze byt ruzne!

A co je jednodusi a co slozitejsi databaze? No ja nevim, ale i ten superjednoduchy SQLite ma query optimizer! A naopak, i u tech dospelych databazi, jako je Firebird a Oracle se vyplati kouknout se na Query Plan a pripadne dotaz rucne optimalizovat. Nic neni samospasne!

 

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

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

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