Autor Téma: Pomôže rozšírenie WHERE  (Přečteno 198 krát)

Online Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4826
  • Karma: 41
    • Verze Delphi: XE7 professional
Pomôže rozšírenie WHERE
« kdy: 01-04-2020, 12:47:32 »
Mám FKFOCS, FKSERPAR - cudzie kľúče a YEARS
FKSERPAR je unikátne pre každú dvojicu FKFOCS a YEARS
Prvý prípad. Tak to mám teraz
Kód: [Vybrat]
WHERE FKSERPAR = :FKSERPAR Ak podmienku rozšírim, bude vykonanie dopytu rýchlejšie?
Kód: [Vybrat]
WHERE FKFOCS = :FKFOCS AND YEARS = :YEARS AND FKSERPAR = :FKSERPAR
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 976
  • Karma: 46
    • Verze Delphi: 10.3
Re:Pomôže rozšírenie WHERE
« Odpověď #1 kdy: 01-04-2020, 14:04:28 »
Nebude nejjednodušší to prostě vyzkoušet?

Online Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4826
  • Karma: 41
    • Verze Delphi: XE7 professional
Re:Pomôže rozšírenie WHERE
« Odpověď #2 kdy: 01-04-2020, 14:26:39 »
Teraz mám veľmi malý počet v záznamov. Takže žiaden rozdiel nezistím.
Dúfal som, že niekto s tým má všeobecnú skúsenosť.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Online pf1957

  • Padawan
  • ******
  • Příspěvků: 2726
  • Karma: 133
    • Verze Delphi: D2007, XE3, DX10
Re:Pomôže rozšírenie WHERE
« Odpověď #3 kdy: 01-04-2020, 16:12:10 »
Teraz mám veľmi malý počet v záznamov. Takže žiaden rozdiel nezistím.
Dúfal som, že niekto s tým má všeobecnú skúsenosť.
Uz jsem ti na tohle tema psal, ze nema smysl vest nejake intelektualni seance a je treba se obratit na plan analyzer -> ten ti rozlozi dotaz bez ohledu na mnozstvi dat a ukaze, jestli tam nemas nejakou botu a neleze ti z toho napr. full scan kvuli absenci indexu.

A o tom, jake indexy a jak optimizer pouzije uz je otazka optimalizace na konkretnim RDBMS a pokud nemas data, jedna se o premature optimalizaci.
V danem pripade, pokud je FK unikatni, tak ma nejnizsi selektivitu a tudiz nema smysl mu pridavat dalsi podminky.

Online Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4826
  • Karma: 41
    • Verze Delphi: XE7 professional
Re:Pomôže rozšírenie WHERE
« Odpověď #4 kdy: 01-04-2020, 19:11:00 »
Citace
Uz jsem ti na tohle tema psal, ze...
Áno, len nedávno. Myslím na to. Posledná veta je to čo, som chcel vedieť.
Ďakujem.
Žiaľ, v niektorých prípadoch mám Natural a neviem sa ho zbaviť. Utešujem sa skutočnosťou, že tam bude maximálne pár tisíc záznamov.
Napríklad:
Kód: [Vybrat]
Plan:
PLAN JOIN (SORT (JOIN (SR N NATURAL, SR I_S INDEX (FK_INVOICE_SAC_SERPAR))), JOIN (SP INDEX (PK_SERVICEPARAMETERS), N INDEX (FK_Z_CONS_NUMBER_SEPA, FK_Z_CONS_NUMBER_ANOP,
 FK_Z_CONS_NUMBER_SAC)))
Adapted plan:
PLAN JOIN (SORT (JOIN (SR N NATURAL, SR I_S INDEX (FK_INVOICE_SAC_SERPAR))), JOIN (SP INDEX (PK_SERVICEPARAMETERS), N INDEX (FK_Z_CONS_NUMBER_SEPA, FK_Z_CONS_NUMBER_ANOP,
 FK_Z_CONS_NUMBER_SAC)))
Predpokladám, že sa týka indexu SR I_S INDEX (FK_INVOICE_SAC_SERPAR))). Viď grafickú podobu dopytu.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Online Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4826
  • Karma: 41
    • Verze Delphi: XE7 professional
Re:Pomôže rozšírenie WHERE
« Odpověď #5 kdy: 01-04-2020, 19:13:27 »
Ešte dodatok, že optimalizáciu ešte len budem robiť nad vygenerovanými testovacími údajmi. Žiaľ, pri zostavovaní dopytov som nepoužíval kontrolu analyzátorom - plánom. To som ho ešte nemal, ani som o niečom takom netušil.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.