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

📄 performance.html

📁 图象处理
💻 HTML
📖 第 1 页 / 共 3 页
字号:
                            <tt class="literal">read-write</tt>,                            <tt class="literal">nonstrict-read-write</tt> &#25110;&#32773;                            <tt class="literal">read-only</tt>                        </p></td></tr></table></div></div><p>                &#21478;&#22806; (&#25512;&#33616;&#39318;&#36873;?), &#20320;&#21487;&#20197;&#22312;<tt class="literal">hibernate.cfg.xml</tt>&#20013;&#25351;&#23450;<tt class="literal">&lt;class-cache&gt;</tt> &#21644; <tt class="literal">&lt;collection-cache&gt;</tt> &#20803;&#32032;&#12290;            </p><p>                <tt class="literal">usage</tt>&#23646;&#24615;&#25351;&#26126;&#20102;<span class="emphasis"><em>&#32531;&#23384;&#24182;&#21457;&#31574;&#30053;&#65288;cache concurrency strategy&#65289;</em></span>&#12290;            </p></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="performance-cache-readonly"></a>14.3.2.&nbsp;&#31574;&#30053;&#65306;&#21482;&#35835;&#32531;&#23384;</h3></div></div><div></div></div><p>                &#22914;&#26524;&#20320;&#30340;&#24212;&#29992;&#31243;&#24207;&#38656;&#35201;&#35835;&#21462;&#19968;&#20010;&#25345;&#20037;&#21270;&#31867;&#30340;&#23454;&#20363;&#65292;&#20294;&#26159;&#24182;&#19981;&#25171;&#31639;&#20462;&#25913;&#23427;&#20204;&#65292;&#21487;&#20197;&#20351;&#29992;<tt class="literal">read-only</tt> &#32531;&#23384;&#12290;&#36825;&#26159;&#26368;&#31616;&#21333;&#65292;&#20063;&#26159;&#23454;&#29992;&#24615;&#26368;&#22909;&#30340;&#31574;&#30053;&#12290;&#29978;&#33267;&#22312;&#38598;&#32676;&#20013;&#65292;&#23427;&#20063;&#33021;&#23436;&#32654;&#22320;&#36816;&#20316;&#12290;            </p><pre class="programlisting">&lt;class name="eg.Immutable" mutable="false"&gt;    &lt;cache usage="read-only"/&gt;    ....&lt;/class&gt;</pre></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="performance-cache-readwrite"></a>14.3.3.&nbsp;&#31574;&#30053;:&#35835;/&#20889;&#32531;&#23384;</h3></div></div><div></div></div><p>                &#22914;&#26524;&#24212;&#29992;&#31243;&#24207;&#38656;&#35201;&#26356;&#26032;&#25968;&#25454;&#65292;&#21487;&#33021;<tt class="literal">read-write</tt>&#32531;&#23384;&#27604;&#36739;&#21512;&#36866;&#12290;&#22914;&#26524;&#38656;&#35201;&#21487;&#24207;&#21015;&#21270;&#20107;&#21153;&#38548;&#31163;&#32423;&#21035;&#65288;serializable transaction isolation level&#65289;&#65292;&#36825;&#31181;&#32531;&#23384;&#20915;&#19981;&#33021;&#20351;&#29992;&#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;                &#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;cache usage="read-write"/&gt;    ....    &lt;set name="kittens" ... &gt;        &lt;cache usage="read-write"/&gt;        ....    &lt;/set&gt;&lt;/class&gt;</pre></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="performance-cache-nonstrict"></a>14.3.4.&nbsp;&#31574;&#30053;:&#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="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="performance-cache-transactional"></a>14.3.5.&nbsp;&#31574;&#30053;:&#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="d0e8845"></a><p class="title"><b>&#34920;&nbsp;14.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="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="performance-sessioncache"></a>14.4.&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>			Hibernate will evict associated entities automatically if the association is mapped			with <tt class="literal">cascade="all"</tt> or <tt class="literal">cascade="all-delete-orphan"</tt>.			&#22914;&#26524;&#20851;&#32852;&#36890;&#36807;<tt class="literal">cascade="all"</tt> &#25110;&#32773; <tt class="literal">cascade="all-delete-orphan"</tt>&#23454;&#29616;&#65292;Hibernate&#20250;&#33258;&#21160;&#21024;&#38500;&#20851;&#32852;&#30340;&#23454;&#20307;&#12290;		</p><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>            &#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="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="performance-querycache"></a>14.5.&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")    .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="querysql.html">&#19978;&#19968;&#39029;</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="index.html">&#19978;&#19968;&#32423;</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="toolsetguide.html">&#19979;&#19968;&#39029;</a></td></tr><tr><td width="40%" align="left" valign="top">&#31532;&nbsp;13&nbsp;&#31456;&nbsp;&#21407;&#29983;SQL&#26597;&#35810;&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">&#36215;&#22987;&#39029;</a></td><td width="40%" align="right" valign="top">&nbsp;&#31532;&nbsp;15&nbsp;&#31456;&nbsp;&#24037;&#20855;&#31665;&#25351;&#21335;</td></tr></table></div></body></html>

⌨️ 快捷键说明

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