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.
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
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.
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)