Autor Téma: Debbug - GTT voči RunTime persistent table  (Přečteno 1547 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3460
  • Karma: 35
    • Verze Delphi: XE7 professional
Debbug - GTT voči RunTime persistent table
« kdy: 16-06-2018, 10:16:27 »
Mám v DB 31 tabuliek, ktoré chcem previesť na GTT.
Počas ladenia je dobré aby som ich mal k dispozícii ako persistent. Aby som videl ich obsah. A v Runtime ako GTT. Nebudú zbytočne nafukovať DB.
Ako sa to rieši? Dvoma samostatnými DB?
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Delfin

  • Guru
  • *****
  • Příspěvků: 1123
  • Karma: 52
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #1 kdy: 16-06-2018, 14:56:03 »
Ako sa to rieši? Dvoma samostatnými DB?

Vydal bych se cestou tech dvou databazi.
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3460
  • Karma: 35
    • Verze Delphi: XE7 professional
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #2 kdy: 16-06-2018, 15:06:40 »
Ďakujem, len si musím teraz vymyslieť spôsob povedať programu, s ktorými tabuľkami má pracovať.
Prvotný nástrel je, že pre GTT použijem rovnaké názvy ako pri persistent. Akurát s tým rozdielom, že vynechám v názve koncové "S". Alebo niečo podobné. Tak si tie názvy budem môcť získať priamo v kóde.
Alebo si jednoducho vytvorím ich zoznamy = dva zoznamy.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Delfin

  • Guru
  • *****
  • Příspěvků: 1123
  • Karma: 52
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #3 kdy: 16-06-2018, 15:17:47 »
Ja s temi dvemi databazemi myslel spis na moznost nechat nazvy tech tabulek stejne. Jen v jedne by byly perzistentni a v druhe GTT. Tim bys vubec nemusel zasahovat do kodu.
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3460
  • Karma: 35
    • Verze Delphi: XE7 professional
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #4 kdy: 16-06-2018, 15:20:46 »
Neviem či by mi toto prišlo na um ;D . Pribudne mi síce práca s udržovaním dvoch totožných DB, ale stojí to zato. Lebo ak sa bude v budúcnosti čosi meniť, tak nebudem mať problém.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Delfin

  • Guru
  • *****
  • Příspěvků: 1123
  • Karma: 52
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #5 kdy: 16-06-2018, 15:42:20 »
Pribudne mi síce práca s udržovaním dvoch totožných DB, ale stojí to zato.

To ano, ale mozna vic prace by dalo udrzet DDL a SQL skripty ve stavu aby by se nemichaly 2 ruzne nazvy pro jednu tabulku se stejnym ucelem.

Prislo by mi jednodussi vyrobit napr. skript, ktery po restore databaze (pro synchronizaci) vytvori funkci ktera s jednim parametrem nazvu tabulky sahne po jeji definici, posklada DDL skript pro vytvoreni stejne definovane (tentokrat vsak GTT), tu perzistentni dropne a vytvori GTT z toho skriptu. Pak bys uz jen volal tuto funkci pro vsechny tabulky ktere potrebujes pretransformovat na GTT. Kdybys mel zajem, muzu ji zkusit dat dohromady (avsak ja a Firebird nejsme kamaradi) ;)
« Poslední změna: 16-06-2018, 15:44:58 od Delfin »
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3460
  • Karma: 35
    • Verze Delphi: XE7 professional
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #6 kdy: 16-06-2018, 16:31:15 »
Vďaka za ponuku, ale ja si to urobím ručne. Nie je to zas tak strašné. Dosť často použijem vytvoriť kópiu tabuľky a len z nej vyhodím nejaké pole. Čas ma netlačí.
Citace
Tim bys vubec nemusel zasahovat do kodu.
Malý zásah tam musím urobiť. Tie trvalé tabuľky sa samé nevyprázdnia. Je to podmienka pre správny priebeh výpočtov.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3460
  • Karma: 35
    • Verze Delphi: XE7 professional
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #7 kdy: 16-06-2018, 16:57:35 »
Až teraz som všimol, že mám ten nadpis zle. Má byť:
Debbug - persistent table voči RunTime GTT
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2231
  • Karma: 117
    • Verze Delphi: D2007, XE3, DX10
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #8 kdy: 16-06-2018, 17:36:44 »
Mám v DB 31 tabuliek, ktoré chcem previesť na GTT.
Počas ladenia je dobré aby som ich mal k dispozícii ako persistent. Aby som videl ich obsah. A v Runtime ako GTT. Nebudú zbytočne nafukovať DB.
Ako sa to rieši? Dvoma samostatnými DB?
Ja bych to vubec neresil.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3460
  • Karma: 35
    • Verze Delphi: XE7 professional
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #9 kdy: 16-06-2018, 18:13:47 »
Pri momentálnom stave predpokladám nárast DB na dvojnásobok. Plus indexy a ich réžia. Mne to stojí zato. Je pravda, že môžem použiť persistent tabuľky a na začiatku/konci (podľa potreby) výpočtu ich vyprázdniť.
Väzby v nich môžem zrušiť a tým sa zbaviť indexov.
« Poslední změna: 16-06-2018, 18:17:33 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Delfin

  • Guru
  • *****
  • Příspěvků: 1123
  • Karma: 52
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #10 kdy: 16-06-2018, 19:04:52 »
Malý zásah tam musím urobiť. Tie trvalé tabuľky sa samé nevyprázdnia. Je to podmienka pre správny priebeh výpočtov.

Pravda. To je podstatna vlastnost GTT na kterou jsem zapomnel ::)

Je pravda, že môžem použiť persistent tabuľky a na začiatku/konci (podľa potreby) výpočtu ich vyprázdniť.

Ony ty GTT maji v nekterych pripadech vyznam a tim je izolace dat na urovni pripojeni nebo transakce. Pro perzistentni tabulku s konkurencnim pristupem by bylo treba jeste pridat sloupec ktery by zaznamy pro pristupujici rozlisil.
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2231
  • Karma: 117
    • Verze Delphi: D2007, XE3, DX10
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #11 kdy: 16-06-2018, 20:02:28 »
Pri momentálnom stave predpokladám nárast DB na dvojnásobok. Plus indexy a ich réžia. Mne to stojí zato. Je pravda, že môžem použiť persistent tabuľky a na začiatku/konci (podľa potreby) výpočtu ich vyprázdniť.
Väzby v nich môžem zrušiť a tým sa zbaviť indexov.
Ne ze bych GTT nepouzival, ale jenom tam, kde si potrebuju neco vytahat/predpocitat ze slozitych dat, tedy
a) nejde to udelat SQL dotazem, musi  se to udelat proceduralne v SP
b) potrebuju to udelat na serveru a data netahat na klienta.

Ale prednost bych dal temer cemukoli pred udrzbou 2 ruznych DB: kdysi jsem byl donucen udelat nad FB replikaci lokalnich a centralni DB a schema pro centralni jsem vyrabel scriptem, ktery ho vyrobil z lokalni DB. Ale co to bylo za onanii, kdyz pri kazde zmene schematu lokalni DB se muselo jeste sahnout do scriptu :-( Uz nikdy vice. 

Mezitim se nastesti vlastnosti infrastruktury zlepsily natolik, ze soucasna verze ten cirkus s replikaci DB nepouziva a vsechno jede proti jedine centralni DB.

Offline Delfin

  • Guru
  • *****
  • Příspěvků: 1123
  • Karma: 52
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #12 kdy: 16-06-2018, 20:18:59 »
Ale prednost bych dal temer cemukoli pred udrzbou 2 ruznych DB

S jednodatabazovym resenim by tady bylo treba vytvorit 31 tabulek navic a k tomu jeste upravit vsechny skripty. Zalezi co da v tomto pripade vic prace. Jinak, kdyby slo o zivou databazi, cestou 2 databazi bych se nevydal. Kdybych mel fixni s testovacimi daty, udelal bych si klon s nahrazenim tabulek za perzistentni.

Z dotazu jsem odhadoval fixni s testovacimi daty.
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3460
  • Karma: 35
    • Verze Delphi: XE7 professional
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #13 kdy: 16-06-2018, 20:26:27 »
Citace
Ale prednost bych dal temer cemukoli pred udrzbou 2 ruznych DB
To už ste dvaja. Dám si povedať.
Citace
Pro perzistentni tabulku s konkurencnim pristupem by bylo treba jeste pridat sloupec ktery by zaznamy pro pristupujici rozlisil.
To nie je problém. Stačí sa vrátiť k stavu z dnešného rána ;D ;D ;D  A to som celkom tvrdo makal :o  Aj takým spôsobom sa človek učí.
Akurát sa zbavím indexov, prepojení tabuliek pomocou foreign key. Bude tam málo záznamov. Rádovo stovky, takže aj tak by sa neuplatnili.
« Poslední změna: 16-06-2018, 20:28:40 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Delfin

  • Guru
  • *****
  • Příspěvků: 1123
  • Karma: 52
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #14 kdy: 16-06-2018, 20:35:37 »
Jsem za 2 databaze. Ale s fixnimi sadami testovacich dat (jen pro vyvoj a testovani). Urcite bych se nesnazil delat klon produkcni jen proto abych mohl videt mezivysledky vypoctu.

Cile by se dalo s uvedenym objemem dat dosahnout nejspis i jinak. Nemam ted moc predstavu zda se tu bavime o DBMS procedurach nebo zda je kod v Delphi aplikaci, nicmene v obou pripadech by se dalo jit primo cestou GTT; jen si pred vyprazdnenim te GTT tabulky volitelne vratit data jako (sadu) resultset(u) nebo naplnit perzistentni tabulku(y).
« Poslední změna: 16-06-2018, 20:50:31 od Delfin »
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

 

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í:
Kolik je šest plus čtyři (slovem):