Ajánlások a teljesítmény javítása java kitartás - blog Anatolij Korszakov

Nagy teljesítményű adatelérési réteget igényel sok tudást az adatbázis eszköz, JDBC, JPA, Hibernate, és a poszt a legfontosabb technikákat, amelyek segítségével optimalizálni a vállalati alkalmazások.

1. naplózás SQL

Ha egy keretet, amely létrehozza a arckifejezésedet, akkor mindig érvényesíteni minden olyan kifejezést a hatékonyság és a termelékenység.

2. Kapcsolat Management

Az adatbázis-kapcsolatok költségesek, ezért mindig a kapcsolatkészletezés mechanizmus.

Tekintettel arra, hogy a vegyületek számát, melyek egy adatbázis cluster, meg kell, hogy kiadja kapcsolat források a lehető leggyorsabban.

Amikor tuning teljesítménye mindig meg kell mérni, és állítsa be a megfelelő méretet a medence. Olyan eszközök, mint FlexyPool segít megtalálni a megfelelő méretet akkor is, ha az alkalmazás zadeploili a termelési kiszolgálóval.

3. adagoló JDBC

JDBC adagoló lehetővé teszi számunkra, hogy küldjön több SQL egy session kapcsolatot az adatbázissal. Gain termelékenység elengedhetetlen a részét a vezető, és az adatbázisból. PreparedStatements igen alkalmasak jelöltek batchinga és még néhány RDBMS (például Oracle) tartják fenn kizárólag az adagoló PreparedStatements.

Mivel be a JDBC API batchinga (pl PreparedStataement.addBatch és PreparedStatement.executeBatch), ha létrehoz a kifejezést kézzel, meg kell tudni, hogy a kezdetektől, ha tudja használni a szakaszos eljárás, vagy sem. A Hibernate, akkor kapcsoljuk be a kiszerelés egyszerűen egy beállítást a konfigurációt.

Hibernate 5.2 kínál Munkamenetszintű adagoló. hogy még ennél is rugalmasabb megoldás ebben a tekintetben.

4. gyorsítótár kifejezések

Cache-kifejezés az egyik legkevésbé ismert teljesítmény optimalizálást, amelynek segítségével. Attól függően, hogy az alapul szolgáló JDBC driver, akkor cache-PreparedStatements a kliensoldali (driver), és az adatbázisból (szintaxisfa vagy akár kiviteli terv).

5. azonosítók Hibernate

Egy generátor nem a Hibernate IDENTITY jó választás, mert lehetetlenné teszi a JDBC adagoló.

TABLE generátor még rosszabb, mert használ egy külön ügylet letöltheti az új azonosítót, amely képes betölteni a tranzakciós napló és a medence kapcsolat abból a tényből, hogy minden alkalommal, amikor szükségünk van egy új azonosítót kell egy külön kapcsolatot.

6. Válassza ki a megfelelő adattípusok oszlopok

7. A relációs viszony

Hibernate számos típusú leképezés relációs kapcsolatok, de mindegyik megegyezik a hatékonyság szempontjából.

Ajánlások a teljesítmény javítása java kitartás - blog Anatolij Korszakov

Mindig kerülje egyirányú társulás és @ManyToMany. Gyűjteményes előnyös olyan kétirányú egyesület @OneToMany.

Azonban, ellentétben kéri, a gyűjtemény kevésbé rugalmas annak a ténynek köszönhető, hogy nem lehet könnyen alá lapszámozásról. Emiatt, akkor mindig meg kell kérdeznie, hogy a gyűjtemény olyan fontosak. Térképezni, hogy a lényeg a kérés lehet a jobb alternatíva sok esetben.

8. öröklődés

Mikor jön az öröklés, a különbségek objektum-orientált nyelvek és a relációs adatbázisok még nyilvánvalóbb. JPA biztosít SINGLE_TABLE. REGISZTRÁCIÓ. és TABLE_PER_CLASS örökségül, ha a leképezések és ezen stratégiák vannak előnyei és hátrányai.

SINGLE_TABLE teljesít a legjobban szempontjából SQL, de elveszítjük az adatok integritását, mert az nem tudja használni a NOT NULL korlátozást.

REGISZTRÁCIÓ megoldja az adatok integritását a problémákat azáltal, több komplex kifejezések. Mindaddig, amíg nem használja polimorf lekérdezések vagy @OneToMany egyesület fő típusa van, ez a stratégia jól működik. A valós teljesítmény alapja polimorf @ManyToOne egyesületek mintáját stratégia oldalán az adatelérési réteget.

TABLE_PER_CLASS kerülni kell, mivel ez a stratégia generál hatékony SQL utasítások.

9. Méret Perzisztencia háttere

Ha JPA és a Hibernate kell mindig szem előtt tartani a méret keretében kitartás. Emiatt ne fújja száz kezelt szervezetek. Számának csökkentése irányított szervezetek, érjük el jelentős javulást a memóriában, és az alapértelmezett irányítási mechanizmus piszkos ellenőrzés miatt hatékonyabban dolgozni!

10. Feltöltés az egyetlen dolog, hogy valóban szükségünk van

Kirakása nagy mennyiségű adat valószínűleg az első számú oka a teljesítmény problémák adatelérési réteget. A probléma az, hogy a kért szervezetek kizárólag akár olvasási műveletek.

DTO előrejelzések alkalmasabbak feltöltésével egyéni nézetek, míg az egység kell zárni, ha a flow intézkedések az üzleti logika szükséges megváltoztatni őket.

EAGER kirakodás a legrosszabb, és el kell kerülnie az anti-minták, mint az Open-Session View.

11.Keshirovanie

Ajánlások a teljesítmény javítása java kitartás - blog Anatolij Korszakov

Relációs adatbázis-kezelő rendszerek használata a különböző in-memóriapufferek megőrzésére disk források. Cache adatbázist nagyon gyakran figyelmen kívül hagyják. Mi lehet jelentősen csökkenti a válaszidőt az adatbázis motor tuning, hogy a munkások a adathalmazok a memóriában, és nem raktak a lemezről véglegesen.

Gyorsítás alkalmazás szintjén nincs szükség sok vállalati alkalmazásokhoz. Gyorsítótárral alkalmazás szinten csökkenti a válaszidőt, miközben a másodlagos tárolási adatok olvasására, amikor az adatbázis karbantartás miatt, vagy ha a rendszer súlyos hiba történt.

A második szintű cache nagyon hasznos, hogy csökkentsék a válaszidő a tranzakció írható-olvasható, különösen a master-slave architektúra ismétlésben. Attól függően, hogy a követelményeknek, Hibernate kínálja az alábbi stratégiákat: READ_ONLY. NONSTRICT_READ_WRITE. READ_WRITE. és tranzakciós.

12. Ellenőrző konkurencia

A választott elkülönítési szintje tranzakció a legnagyobb prioritást, amikor a teljesítmény és az adatok integritását. Folyamok esetében számos kihívással, hogy az adatvesztés elkerülése frissítés, akkor használja optimista zár vagy hosszabb ideig jelen kontextusban.

13. A vertikális és horizontális skálázás

A relációs adatbázisok skála jól exponált. Ha a Facebook. Twitter. Pinterest vagy StackOverflow bővíthetők az adatbázisban, akkor van egy jó esély, hogy képes legyen nagyszabású vállalkozás megfelelő alkalmazás az üzleti követelményeknek.

Ajánlások a teljesítmény javítása java kitartás - blog Anatolij Korszakov

Replikáció és szegmentáció az adatbázis - ez egy nagyon jó lehetőség, hogy a kapacitás növelése és akkor teljes mértékben kihasználják ezeket az építészeti minták méretarányosan az alkalmazás.

(Nézett 358-szor, 1 látogatók ma)

Ossza meg ezt a linket: