Tábla szinkronizálása firebird adatbázisból, mssql-be

Tábla szinkronizálása firebird adatbázisból, mssql-be
2014-06-16T10:13:47+02:00
2014-06-20T12:06:36+02:00
2022-10-15T22:46:00+02:00
North505
Sziasztok!

Olyan problémám van, hogy van egy Firebird adatbázisban egy tábla amelyet triggerekkel mindig aktualizálok, frissítek. Ez az adatbázis (linked server) be van linkelve egy MSSQL adatbáisba, ahol szintén megtalálható egy ugyanilyen struktúrájú adattábla.

A kérdésem az lenne, hogy hogyan lehetne megoldani azt, hogy a Firebird adattábla változása esetén szinkronizálom az MSSQL adatbázisban lévő ugyanilyen struktúrájú táblát?

Erre azért van szükség mert a linkelt firebird adatbázisból való lekérdezés (ODBC-n keresztül) nagyon lassúnak bizonyult.
Próbálkoztam adatbázis szinkronizálókkal is, de nem jutottam előbbre.

Várom segítségeteket.

Köszönöm
Mutasd a teljes hozzászólást!
Szia!

Ha csak azért használsz MsSql-t, mert a Firebird ODBC-n keresztül bizonyos lekérdezés lassú, én első körben a firebird adatbázisban néznék körül, hogy a lekérdezésszűrésének megfelelően van-e olyan index, amely megkönnyíti a db motor munkáját. (szerintem ez az elsődleges probléma)

Ha ez sem hoz kellő sebesség növekedést, akkor teszt környezetben natív csatlakozás esetén is csinálnék egy lekérdezés idő tesztet.

Ha ezek sem adják meg a kellő eredményt, akkor különféle megoldások lehetségesek. 

- Írni egy szolgáltatást, ami állandóan figyeli (pl.: percenként) és szinkronizál, bár ez igaz minimális, de állandó terhelés jelent.
- Lehet írni firebird alá user definialt function-t (UDF) delphiben. Ezáltal tudsz olyan függvényt, amit trigerekben meghívva szinkronizál.

BySzi
Mutasd a teljes hozzászólást!

  • Ahogy BySzi is írta, csak ezért ne csinálj szinkront.
    Sokkal nagyobb munka a szinkront megcsinálni és fenntartani a jó működést, mint megkeresni, hogy mitől lassú az ODBC.
    Mutasd a teljes hozzászólást!
  • Az ODBC lassáságát nem tudom befolyásolni mert azt egy külső program használja.
    Úgy gondolom sokszor kérdez le nagy adatmennyiséget ODBC-n keresztül.

    Akkor tök gyors a dolog amikor a két mssql ab kommunikál, de ha ODBC firebird és mssql akkor lassú.
    Annyit tudom gyorsítani a dolgon, hogy én szinkronizálom az adatokat az MSSQL ab-be és a másik MSSQL ab már gyorsan eléri.

    Az UDF jó ötlet, már elkezdtem kidolgozni a dll-t. Ott száll el acces violationnal a dll, amikor egy adoconnenction komponensre hivatkozom (amivel el akarom érni az MSSQL-t) ami egy datamodulon van. Mi lehet a baj ezzel?

    Lehet így egyáltalán?

    Köszi.
    Mutasd a teljes hozzászólást!
  • Szia!

    Úgy néz ki hogy az UDF jó megoldásnak bizonyul.
    Annyi gondom van:

    1. 64 bit-es firebird alatt nem megy az ami 32 bit-es alatt igen.
    2. A futásidőben létrehozott IBQuery-nek nem tudok paramétert adni. valamiért nem látja azokat a paramétereket amit adok futásidőben.

    Tudnál ebben segíteni?

    Köszönöm.
    Mutasd a teljes hozzászólást!
  • Szia!

    1.) Szerintem, 64 bites alá 64 bites fordítás kell, de nézz utána ennek a google által.
    2.) Hümm... nem tudom, szerintem valamit nem jól csinálsz, de kikerülő megoldás, ha mindig újrafogalmazod az SQL szöveget.

    BySzi
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd