⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 performance.html

📁 hibernate的一点学习资料!
💻 HTML
📖 第 1 页 / 共 3 页
字号:
                &#22914;&#26524;&#20320;&#35201;&#22312;&#38598;&#32676;&#29615;&#22659;&#19979;&#20351;&#29992;&#36825;&#19968;&#31574;&#30053;&#65292;&#20320;&#24517;&#39035;&#30830;&#20445;&#24213;&#23618;&#30340;&#32531;&#23384;&#23454;&#29616;&#25903;&#25345;&#38145;&#23450;(locking)&#12290;&#20869;&#32622;&#30340;&#32531;&#23384;&#25552;&#20379;&#22120;<span class="emphasis"><em>&#24182;&#19981;</em></span>&#25903;&#25345;&#12290;            </p><pre class="programlisting">&lt;class name="eg.Cat" .... &gt;    &lt;jcs-cache usage="read-write"/&gt;    ....    &lt;set name="kittens" ... &gt;        &lt;jcs-cache usage="read-write"/&gt;        ....    &lt;/set&gt;&lt;/class&gt;</pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="performance-s3-4"></a>12.2.4.&nbsp;&#19981;&#20005;&#26684;&#30340;&#35835;/&#20889;&#32531;&#23384;</h3></div></div><div></div></div><p>                &#22914;&#26524;&#31243;&#24207;&#20598;&#23572;&#38656;&#35201;&#26356;&#26032;&#25968;&#25454;&#65288;&#20063;&#23601;&#26159;&#35828;&#65292;&#20986;&#29616;&#20004;&#20010;&#20107;&#21153;&#21516;&#26102;&#26356;&#26032;&#21516;&#19968;&#20010;&#26465;&#30446;&#30340;&#29616;&#35937;&#24456;&#19981;&#24120;&#35265;&#65289;&#65292;&#20063;&#19981;&#38656;&#35201;&#21313;&#20998;&#20005;&#26684;&#30340;&#20107;&#21153;&#38548;&#31163;&#65292;&#21487;&#33021;&#36866;&#29992;<tt class="literal">nonstrict-read-write</tt>&#32531;&#23384;&#12290;&#22914;&#26524;&#22312;JTA&#29615;&#22659;&#20013;&#20351;&#29992;&#36825;&#31181;&#32531;&#23384;&#65292;&#20320;&#24517;&#39035;&#25351;&#23450;<tt class="literal">hibernate.transaction.manager_lookup_class</tt>&#23646;&#24615;&#30340;&#20540;&#65292;&#32473;&#20986;&#24471;&#21040;JTA <tt class="literal">TransactionManager</tt>&#30340;&#31574;&#30053;&#12290;&#22312;&#20854;&#23427;&#29615;&#22659;&#20013;&#65292;&#20320;&#24517;&#39035;&#30830;&#20445;&#22312;<tt class="literal">Session.close()</tt>&#25110;&#32773;<tt class="literal">Session.disconnect()</tt>&#35843;&#29992;&#21069;&#65292;&#20107;&#21153;&#24050;&#32463;&#32467;&#26463;&#20102;&#12290;            </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="performance-s3-5"></a>12.2.5.&nbsp;&#20107;&#21153;&#32531;&#23384;&#65288;transactional&#65289;</h3></div></div><div></div></div><p>                <tt class="literal">transactional</tt>&#32531;&#23384;&#31574;&#30053;&#25552;&#20379;&#20102;&#23545;&#20840;&#20107;&#21153;&#32531;&#23384;&#25552;&#20379;,&#27604;&#22914;JBoss TreeCache&#30340;&#25903;&#25345;&#12290;&#36825;&#26679;&#30340;&#32531;&#23384;&#21482;&#33021;&#29992;&#20110;JTA&#29615;&#22659;&#65292;&#20320;&#24517;&#39035;&#25351;&#23450;<tt class="literal">hibernate.transaction.manager_lookup_class</tt>&#12290;            </p></div><p>            &#27809;&#26377;&#19968;&#31181;&#32531;&#23384;&#25552;&#20379;&#22120;&#33021;&#22815;&#25903;&#25345;&#25152;&#26377;&#30340;&#32531;&#23384;&#24182;&#21457;&#31574;&#30053;&#12290;&#19979;&#38754;&#30340;&#34920;&#21015;&#20986;&#27599;&#31181;&#25552;&#20379;&#22120;&#19982;&#21508;&#31181;&#24182;&#21457;&#31574;&#30053;&#30340;&#20860;&#23481;&#24615;&#12290;        </p><div class="table"><a name="d0e7983"></a><p class="title"><b>Table&nbsp;12.2.&nbsp;&#32531;&#23384;&#24182;&#21457;&#31574;&#30053;&#25903;&#25345;(Cache Concurrency Strategy Support)</b></p><table summary="&#32531;&#23384;&#24182;&#21457;&#31574;&#30053;&#25903;&#25345;(Cache Concurrency Strategy Support)" border="1"><colgroup><col align="left"><col align="left"><col align="left"><col align="left"><col align="left"></colgroup><thead><tr><th align="left">Cache</th><th align="left">read-only</th><th align="left">nonstrict-read-write</th><th align="left">read-write</th><th align="left">transactional</th></tr></thead><tbody><tr><td align="left">Hashtable (not intended for production use)</td><td align="left">yes</td><td align="left">yes</td><td align="left">yes</td><td align="left">&nbsp;</td></tr><tr><td align="left">EHCache</td><td align="left">yes</td><td align="left">yes</td><td align="left">yes</td><td align="left">&nbsp;</td></tr><tr><td align="left">OSCache</td><td align="left">yes</td><td align="left">yes</td><td align="left">yes</td><td align="left">&nbsp;</td></tr><tr><td align="left">SwarmCache</td><td align="left">yes</td><td align="left">yes</td><td align="left">&nbsp;</td><td align="left">&nbsp;</td></tr><tr><td align="left">JBoss TreeCache</td><td align="left">yes</td><td align="left">&nbsp;</td><td align="left">&nbsp;</td><td align="left">yes</td></tr></tbody></table></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="performance-s5"></a>12.3.&nbsp;&#31649;&#29702;Session&#32531;&#23384;</h2></div></div><div></div></div><p>            &#19981;&#31649;&#20309;&#26102;&#20320;&#20256;&#36882;&#19968;&#20010;&#23545;&#35937;&#32473;<tt class="literal">save()</tt>, <tt class="literal">update()</tt>&#25110;&#32773; <tt class="literal">saveOrUpdate()</tt> ,&#25110;&#32773;&#19981;&#31649;&#20309;&#26102;&#20320;&#20351;&#29992;<tt class="literal">load()</tt>, <tt class="literal">find()</tt>, <tt class="literal">iterate()</tt>&#25110;&#32773;<tt class="literal">filter()</tt>&#21462;&#24471;&#19968;&#20010;&#23545;&#35937;&#30340;&#26102;&#20505;,&#35813;&#23545;&#35937;&#34987;&#21152;&#20837;&#21040;<tt class="literal">Session</tt>&#30340;&#20869;&#37096;&#32531;&#23384;&#20013;&#12290;&#24403;&#21518;&#32487;&#30340;<tt class="literal">flush()</tt>&#34987;&#35843;&#29992;&#26102;&#65292;&#23545;&#35937;&#30340;&#29366;&#24577;&#20250;&#21644;&#25968;&#25454;&#24211;&#36827;&#34892;&#21516;&#27493;&#12290;&#22914;&#26524;&#20320;&#22312;&#22788;&#29702;&#22823;&#37327;&#23545;&#35937;&#24182;&#19988;&#38656;&#35201;&#26377;&#25928;&#30340;&#31649;&#29702;&#20869;&#23384;&#30340;&#26102;&#20505;&#65292;&#20320;&#21487;&#33021;&#19981;&#24076;&#26395;&#21457;&#29983;&#36825;&#31181;&#21516;&#27493;&#65292;<tt class="literal">evict()</tt>&#26041;&#27861;&#21487;&#20197;&#20174;&#32531;&#23384;&#20013;&#21435;&#25481;&#23545;&#35937;&#21644;&#23427;&#30340;&#38598;&#21512;&#12290;        </p><pre class="programlisting">Iterator cats = sess.iterate("from eg.Cat as cat"); //a huge result setwhile ( cats.hasNext() ) {    Cat cat = (Cat) iter.next();    doSomethingWithACat(cat);    sess.evict(cat);}</pre><p>            <tt class="literal">Session</tt>&#20063;&#25552;&#20379;&#20102;&#19968;&#20010;<tt class="literal">contains()</tt>&#26041;&#27861;&#26469;&#21028;&#26029;&#26159;&#21542;&#19968;&#20010;&#23454;&#20363;&#22788;&#20110;&#36825;&#20010;session&#30340;&#32531;&#23384;&#20013;&#12290;        </p><p>            &#35201;&#25226;&#25152;&#26377;&#30340;&#23545;&#35937;&#20174;session&#32531;&#23384;&#20013;&#23436;&#20840;&#28165;&#38500;&#65292;&#35831;&#35843;&#29992;<tt class="literal">Session.clear()</tt>&#12290;        </p><p>            For the <tt class="literal">JVM-level</tt> JCS cache, there are methods defined on             <tt class="literal">SessionFactory</tt> for evicting the cached state of an instance,            entire class, collection instance or entire collection role.        </p><p>            &#23545;&#20110;&#31532;&#20108;&#23618;&#32531;&#23384;&#26469;&#35828;&#65292;&#22312;<tt class="literal">SessionFactory</tt>&#20013;&#23450;&#20041;&#20102;&#19968;&#20123;&#26041;&#27861;&#26469;&#20174;&#32531;&#23384;&#20013;&#28165;&#38500;&#19968;&#20010;&#23454;&#20363;&#12289;&#25972;&#20010;&#31867;&#12289;&#38598;&#21512;&#23454;&#20363;&#25110;&#32773;&#25972;&#20010;&#38598;&#21512;&#12290;        </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="performance-s6"></a>12.4.&nbsp;&#26597;&#35810;&#32531;&#23384;(Query Cache)</h2></div></div><div></div></div><p>            &#26597;&#35810;&#32467;&#26524;&#38598;&#20063;&#21487;&#20197;&#34987;&#32531;&#23384;&#12290;&#21482;&#26377;&#24403;&#32463;&#24120;&#20351;&#29992;&#21516;&#26679;&#30340;&#21442;&#25968;&#36827;&#34892;&#26597;&#35810;&#26102;&#65292;&#36825;&#25165;&#20250;&#26377;&#20123;&#29992;&#22788;&#12290;&#35201;&#20351;&#29992;&#26597;&#35810;&#32531;&#23384;&#65292;&#39318;&#20808;&#20320;&#35201;&#25171;&#24320;&#23427;&#65292;&#35774;&#32622;<tt class="literal">hibernate.cache.use_query_cache=true</tt>&#36825;&#20010;&#23646;&#24615;&#12290;&#36825;&#26679;&#20250;&#21019;&#24314;&#20004;&#20010;&#32531;&#23384;&#21306;&#22495;&#8212;&#8212;&#19968;&#20010;&#20445;&#23384;&#26597;&#35810;&#32467;&#26524;&#38598;(<tt class="literal">net.sf.hibernate.cache.QueryCache</tt>),&#21478;&#19968;&#20010;&#20445;&#23384;&#26368;&#36817;&#26597;&#35810;&#30340;&#34920;&#30340;&#26102;&#38388;&#25139;(<tt class="literal">net.sf.hibernate.cache.UpdateTimestampsCache</tt>)&#12290;&#35831;&#27880;&#24847;&#26597;&#35810;&#32531;&#23384;&#24182;&#19981;&#32531;&#23384;&#32467;&#26524;&#38598;&#20013;&#21253;&#21547;&#23454;&#20307;&#30340;&#29366;&#24577;&#65307;&#23427;&#21482;&#32531;&#23384;&#26631;&#35782;&#31526;&#23646;&#24615;&#30340;&#20540;&#21644;&#20540;&#31867;&#22411;&#30340;&#32467;&#26524;&#12290;&#25152;&#20197;&#26597;&#35810;&#32531;&#23384;&#36890;&#24120;&#20250;&#21644;&#31532;&#20108;&#23618;&#32531;&#23384;&#19968;&#36215;&#20351;&#29992;&#12290;        </p><p>            &#22823;&#22810;&#25968;&#26597;&#35810;&#24182;&#19981;&#20250;&#20174;&#32531;&#23384;&#20013;&#33719;&#24471;&#20160;&#20040;&#22909;&#22788;&#65292;&#25152;&#20197;&#40664;&#35748;&#26597;&#35810;&#26159;&#19981;&#36827;&#34892;&#32531;&#23384;&#30340;&#12290;&#35201;&#36827;&#34892;&#32531;&#23384;&#65292;&#35843;&#29992; <tt class="literal">Query.setCacheable(true)</tt>&#12290;&#36825;&#20010;&#35843;&#29992;&#20250;&#35753;&#26597;&#35810;&#22312;&#25191;&#34892;&#26102;&#21435;&#20174;&#32531;&#23384;&#20013;&#26597;&#25214;&#32467;&#26524;&#65292;&#25110;&#32773;&#25226;&#32467;&#26524;&#38598;&#25918;&#21040;&#32531;&#23384;&#21435;&#12290;        </p><p>            &#22914;&#26524;&#20320;&#35201;&#23545;&#26597;&#35810;&#32531;&#23384;&#30340;&#22833;&#25928;&#25919;&#31574;&#36827;&#34892;&#31934;&#30830;&#30340;&#25511;&#21046;&#65292;&#20320;&#24517;&#39035;&#35843;&#29992;<tt class="literal">Query.setCacheRegion()</tt>&#26469;&#20026;&#27599;&#20010;&#26597;&#35810;&#25351;&#23450;&#19968;&#20010;&#21629;&#21517;&#30340;&#32531;&#23384;&#21306;&#22495;&#12290;        </p><pre class="programlisting">List blogs = sess.createQuery("from Blog blog where blog.blogger = :blogger order by blog.datetime desc")    .setEntity("blogger", blogger)    .setMaxResults(15)    .setCacheable(true)    .setCacheRegion("frontpages")    .list();</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="worked-example.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="collection-performance.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;11.&nbsp;&#23454;&#20363;(A Worked Example)&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;13.&nbsp;&#29702;&#35299;&#38598;&#21512;&#31867;&#30340;&#24615;&#33021;&#65288;Understanding Collection Performance&#65289;</td></tr></table></div></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -