Autor Téma: Select so subselectom s rovnakým poradím polí. Má to význam?  (Přečteno 2309 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Taká primitívna otázka:
Má nejaký praktický význam uvádzať polia v rovnakom poradí? Tak laicky si myslím, že to sa môže prejaviť akurát pri parsovaní SQL textu, čo je prakticky o ničom.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 766
  • Karma: 43
    • Verze Delphi: 10.3
Re:Select so subselectom s rovnakým poradím polí. Má to význam?
« Odpověď #1 kdy: 07-12-2017, 14:14:08 »
Excellent
Rated 1 time
Asi to bude přehlednější, až se v tom dotazu jednou budou dělat nějaké změny.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Select so subselectom s rovnakým poradím polí. Má to význam?
« Odpověď #2 kdy: 07-12-2017, 14:56:30 »
Príklady
Rovnaké poradie

Kód: [Vybrat]
SELECT A.A, A.B, A.C
FROM
  (SELECT MYTABLE.A, MYTABLE.B, MYTABLE.C
  FROM MYTABLE) A
Náhodné poradie
Kód: [Vybrat]
SELECT A.A, A.B, A.C
FROM
  (SELECT MYTABLE.C, MYTABLE.B, MYTABLE.A
  FROM MYTABLE) A
Citace
Tomu nerozumim. Co je mysleno polem? Sloupec v SQL prikazu?
Áno. Všade to tak nazývajú.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Ján Masaryk

  • Mladík
  • **
  • Příspěvků: 82
  • Karma: 5
    • Verze Delphi: 2010
Re:Select so subselectom s rovnakým poradím polí. Má to význam?
« Odpověď #3 kdy: 07-12-2017, 17:03:04 »
Podľa mňa to má význam. Nielen - ako píše Vandrovník - kvoli prehľadnosti, ale aj kvoli rýchlosti, či už čítania ale aj kvoli zápisu.
Ja pri zmene štruktúry tabuľky posúvam pridané stlpce na pozíciu, kde logicky patria (či už vo FB alebo v MySQL).
Pokiaľ ten select púšťaš na nejakú prcatú tabuľku, tak ti to môže byť šumafuk. Ak potrebuješ dáta zobraziť v poprehadzovanom
poradí v dbgride, tam to dáva zmysel. Ak by si však robil opakované selecty na tabuľke trebárs s 300 000 záznamami, tak tam by si už podľa mňa rozdiel v rýchlosti videl.
Odporúčam urobiť testovaciu tabuľku, resp. určite nejakú takú tabuľku s veľkým množstvom záznamov v niektorej databáze máš a zmerať čas.

Offline Ján Masaryk

  • Mladík
  • **
  • Příspěvků: 82
  • Karma: 5
    • Verze Delphi: 2010
Re:Select so subselectom s rovnakým poradím polí. Má to význam?
« Odpověď #4 kdy: 07-12-2017, 20:07:47 »
Nedalo mi to a otestoval som to.
Máš pravdu (Delfin) rozdiely na selecte sú minimálne. Skúšal som to na nanovo skopírovanej databáze, resp. s reštartovaným FB servrom, aby som zabránil použitiu cache.

To Stano:

To čo si napísal, ako akože "vnorený select"

Kód: [Vybrat]
SELECT A.A, A.B, A.C
FROM
  (SELECT MYTABLE.A, MYTABLE.B, MYTABLE.C
  FROM MYTABLE) A

sa dá napísať aj takto a "trochu" zrozumiteľnejšie

Kód: [Vybrat]
SELECT A.A, A.B, A.C  FROM MYTABLE A

Skúšal som obe varianty a výsledok bol rovnaký  ;)
« Poslední změna: 07-12-2017, 20:15:33 od Ján Masaryk »

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Select so subselectom s rovnakým poradím polí. Má to význam?
« Odpověď #5 kdy: 07-12-2017, 21:33:16 »
Citace
sa dá napísať aj takto a "trochu" zrozumiteľnejšie
To bol príklad. Tých polí je tam viac aj s agregačnými funkciami. A tiež zvyknem mať aj viac úrovní subselectov.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.