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

📄 performance.html

📁 是一个中文的Hibernate库文档
💻 HTML
📖 第 1 页 / 共 5 页
字号:
        ...    &lt;/set&gt;&lt;/class&gt;</pre><p>				&#22914;&#26524;&#25972;&#20010;&#30340;<tt class="literal">batch-size</tt>&#26159;3&#65288;&#31508;&#35823;&#65311;&#65289;&#65292;&#37027;&#20040;Hibernate&#23558;&#20250;&#20998;&#22235;&#27425;&#25191;&#34892;<tt class="literal">SELECT</tt>&#26597;&#35810;&#65292;				&#25353;&#29031;3&#12289;3&#12289;3&#12289;1&#30340;&#22823;&#23567;&#20998;&#21035;&#36733;&#20837;&#25968;&#25454;&#12290;&#36825;&#37324;&#30340;&#27599;&#27425;&#36733;&#20837;&#30340;&#25968;&#25454;&#37327;&#36824;&#20855;&#20307;&#20381;&#36182;&#20110;&#24403;&#21069;<tt class="literal">Session</tt>&#20013;&#26410;&#23454;&#20363;&#21270;&#38598;&#21512;&#30340;&#20010;&#25968;&#12290;            </p><p>				&#22914;&#26524;&#20320;&#30340;&#27169;&#22411;&#20013;&#26377;&#23884;&#22871;&#30340;&#26641;&#29366;&#32467;&#26500;&#65292;&#20363;&#22914;&#20856;&#22411;&#30340;&#24080;&#21333;&#65293;&#21407;&#26009;&#32467;&#26500;&#65288;bill-of-materials pattern&#65289;&#65292;&#38598;&#21512;&#30340;&#25209;&#37327;&#25235;&#21462;&#26159;&#38750;&#24120;&#26377;&#29992;&#30340;&#12290;				&#65288;&#23613;&#31649;&#22312;&#26356;&#22810;&#24773;&#20917;&#19979;&#23545;&#26641;&#36827;&#34892;&#35835;&#21462;&#26102;&#65292;<span class="emphasis"><em>&#23884;&#22871;&#38598;&#21512;&#65288;nested set&#65289;</em></span>&#25110;<span class="emphasis"><em>&#21407;&#26009;&#36335;&#24452;(materialized path)</em></span>&#65288;&times;&times;&#65289;				 &#26159;&#26356;&#22909;&#30340;&#35299;&#20915;&#26041;&#27861;&#12290;&#65289;            </p></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="performance-fetching-subselect"></a>20.1.6.&nbsp;&#20351;&#29992;&#23376;&#26597;&#35810;&#25235;&#21462;&#65288;Using subselect fetching&#65289;			</h3></div></div><div></div></div><p>                &#20551;&#33509;&#19968;&#20010;&#24310;&#36831;&#38598;&#21512;&#25110;&#21333;&#20540;&#20195;&#29702;&#38656;&#35201;&#25235;&#21462;&#65292;Hibernate&#20250;&#20351;&#29992;&#19968;&#20010;subselect&#37325;&#26032;&#36816;&#34892;&#21407;&#26469;&#30340;&#26597;&#35810;&#65292;&#19968;&#27425;&#24615;&#35835;&#20837;&#25152;&#26377;&#30340;&#23454;&#20363;&#12290;&#36825;&#21644;&#25209;&#37327;&#25235;&#21462;&#30340;&#23454;&#29616;&#26041;&#27861;&#26159;&#19968;&#26679;&#30340;&#65292;&#19981;&#20250;&#26377;&#30772;&#30862;&#30340;&#21152;&#36733;&#12290;            </p></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="performance-fetching-lazyproperties"></a>20.1.7.&nbsp;&#20351;&#29992;&#24310;&#36831;&#23646;&#24615;&#25235;&#21462;&#65288;Using lazy property fetching&#65289;				</h3></div></div><div></div></div><p>				Hibernate3&#23545;&#21333;&#29420;&#30340;&#23646;&#24615;&#25903;&#25345;&#24310;&#36831;&#25235;&#21462;&#65292;&#36825;&#39033;&#20248;&#21270;&#25216;&#26415;&#20063;&#34987;&#31216;&#20026;<span class="emphasis"><em>&#32452;&#25235;&#21462;&#65288;fetch groups&#65289;</em></span>&#12290;				&#35831;&#27880;&#24847;&#65292;&#35813;&#25216;&#26415;&#26356;&#22810;&#30340;&#23646;&#20110;&#24066;&#22330;&#29305;&#24615;&#12290;&#22312;&#23454;&#38469;&#24212;&#29992;&#20013;&#65292;&#20248;&#21270;&#34892;&#35835;&#21462;&#27604;&#20248;&#21270;&#21015;&#35835;&#21462;&#26356;&#37325;&#35201;&#12290;&#20294;&#26159;&#65292;&#20165;&#36733;&#20837;&#31867;&#30340;&#37096;&#20998;&#23646;&#24615;&#22312;&#26576;&#20123;&#29305;&#23450;&#24773;&#20917;&#19979;&#20250;&#26377;&#29992;&#65292;&#20363;&#22914;&#22312;&#21407;&#26377;&#34920;&#20013;&#25317;&#26377;&#20960;&#30334;&#21015;&#25968;&#25454;&#12289;&#25968;&#25454;&#27169;&#22411;&#26080;&#27861;&#25913;&#21160;&#30340;&#24773;&#20917;&#19979;&#12290;            </p><p>								&#21487;&#20197;&#22312;&#26144;&#23556;&#25991;&#20214;&#20013;&#23545;&#29305;&#23450;&#30340;&#23646;&#24615;&#35774;&#32622;<tt class="literal">lazy</tt>&#65292;&#23450;&#20041;&#35813;&#23646;&#24615;&#20026;&#24310;&#36831;&#36733;&#20837;&#12290;            </p><pre class="programlisting">&lt;class name="Document"&gt;       &lt;id name="id"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;    &lt;property name="name" not-null="true" length="50"/&gt;    &lt;property name="summary" not-null="true" length="200" lazy="true"/&gt;    &lt;property name="text" not-null="true" length="2000" lazy="true"/&gt;&lt;/class&gt;</pre><p>								&#23646;&#24615;&#30340;&#24310;&#36831;&#36733;&#20837;&#35201;&#27714;&#22312;&#20854;&#20195;&#30721;&#26500;&#24314;&#26102;&#21152;&#20837;&#20108;&#36827;&#21046;&#25351;&#31034;&#25351;&#20196;&#65288;bytecode instrumentation&#65289;&#65292;&#22914;&#26524;&#20320;&#30340;&#25345;&#20037;&#31867;&#20195;&#30721;&#20013;&#26410;&#21547;&#26377;&#36825;&#20123;&#25351;&#20196;&#65292;				Hibernate&#23558;&#20250;&#24573;&#30053;&#36825;&#20123;&#23646;&#24615;&#30340;&#24310;&#36831;&#35774;&#32622;&#65292;&#20173;&#28982;&#23558;&#20854;&#30452;&#25509;&#36733;&#20837;&#12290;            </p><p>				&#20320;&#21487;&#20197;&#22312;Ant&#30340;Task&#20013;&#65292;&#36827;&#34892;&#22914;&#19979;&#23450;&#20041;&#65292;&#23545;&#25345;&#20037;&#31867;&#20195;&#30721;&#21152;&#20837;&#8220;&#20108;&#36827;&#21046;&#25351;&#20196;&#12290;&#8221;            </p><pre class="programlisting">&lt;target name="instrument" depends="compile"&gt;    &lt;taskdef name="instrument" classname="org.hibernate.tool.instrument.InstrumentTask"&gt;        &lt;classpath path="${jar.path}"/&gt;        &lt;classpath path="${classes.dir}"/&gt;        &lt;classpath refid="lib.class.path"/&gt;    &lt;/taskdef&gt;    &lt;instrument verbose="true"&gt;        &lt;fileset dir="${testclasses.dir}/org/hibernate/auction/model"&gt;            &lt;include name="*.class"/&gt;        &lt;/fileset&gt;    &lt;/instrument&gt;&lt;/target&gt;</pre><p>								&#36824;&#26377;&#19968;&#31181;&#21487;&#20197;&#20248;&#21270;&#30340;&#26041;&#27861;&#65292;&#23427;&#20351;&#29992;HQL&#25110;&#26465;&#20214;&#26597;&#35810;&#30340;&#25237;&#24433;&#65288;projection&#65289;&#29305;&#24615;&#65292;&#21487;&#20197;&#36991;&#20813;&#35835;&#21462;&#38750;&#24517;&#35201;&#30340;&#21015;&#65292;				&#36825;&#19968;&#28857;&#33267;&#23569;&#23545;&#21482;&#35835;&#20107;&#21153;&#26159;&#38750;&#24120;&#26377;&#29992;&#30340;&#12290;&#23427;&#26080;&#38656;&#22312;&#20195;&#30721;&#26500;&#24314;&#26102;&#8220;&#20108;&#36827;&#21046;&#25351;&#20196;&#8221;&#22788;&#29702;&#65292;&#22240;&#27492;&#26159;&#19968;&#20010;&#26356;&#21152;&#20540;&#24471;&#36873;&#25321;&#30340;&#35299;&#20915;&#26041;&#27861;&#12290;				            </p><p>				&#26377;&#26102;&#20320;&#38656;&#35201;&#22312;HQL&#20013;&#36890;&#36807;<tt class="literal">&#25235;&#21462;&#25152;&#26377;&#23646;&#24615;</tt>&#65292;&#24378;&#34892;&#25235;&#21462;&#25152;&#26377;&#20869;&#23481;&#12290;            </p></div></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="performance-cache"></a>20.2.&nbsp;&#20108;&#32423;&#32531;&#23384;&#65288;The Second Level Cache&#65289;		</h2></div></div><div></div></div><p>			Hibernate&#30340;<tt class="literal">Session</tt>&#22312;&#20107;&#21153;&#32423;&#21035;&#36827;&#34892;&#25345;&#20037;&#21270;&#25968;&#25454;&#30340;&#32531;&#23384;&#25805;&#20316;&#12290;   		    &#24403;&#28982;&#65292;&#20063;&#26377;&#21487;&#33021;&#20998;&#21035;&#20026;&#27599;&#20010;&#31867;&#65288;&#25110;&#38598;&#21512;)&#65292;&#37197;&#32622;&#38598;&#32676;&#12289;&#25110;JVM&#32423;&#21035;(<tt class="literal">SessionFactory&#32423;&#21035;</tt>)&#30340;&#32531;&#23384;&#12290;			&#20320;&#29978;&#33267;&#21487;&#20197;&#20026;&#20043;&#25554;&#20837;&#19968;&#20010;&#38598;&#32676;&#30340;&#32531;&#23384;&#12290;&#27880;&#24847;&#65292;&#32531;&#23384;&#27704;&#36828;&#19981;&#30693;&#36947;&#20854;&#20182;&#24212;&#29992;&#31243;&#24207;&#23545;&#25345;&#20037;&#21270;&#20179;&#24211;&#65288;&#25968;&#25454;&#24211;&#65289;&#21487;&#33021;&#36827;&#34892;&#30340;&#20462;&#25913;			&#65288;&#21363;&#20351;&#21487;&#20197;&#23558;&#32531;&#23384;&#25968;&#25454;&#35774;&#23450;&#20026;&#23450;&#26399;&#22833;&#25928;&#65289;&#12290;         </p><p>			&#40664;&#35748;&#24773;&#20917;&#19979;&#65292;Hibernate&#20351;&#29992;EHCache&#36827;&#34892;JVM&#32423;&#21035;&#30340;&#32531;&#23384;&#65288;&#30446;&#21069;&#65292;Hibernate&#24050;&#32463;&#24223;&#24323;&#20102;&#23545;JCS&#30340;&#25903;&#25345;&#65292;&#26410;&#26469;&#29256;&#26412;&#20013;&#23558;&#20250;&#21435;&#25481;&#23427;&#65289;&#12290;			&#20320;&#21487;&#20197;&#36890;&#36807;&#35774;&#32622;<tt class="literal">hibernate.cache.provider_class</tt>&#23646;&#24615;&#65292;&#25351;&#23450;&#20854;&#20182;&#30340;&#32531;&#23384;&#31574;&#30053;&#65292;			&#35813;&#32531;&#23384;&#31574;&#30053;&#24517;&#39035;&#23454;&#29616;<tt class="literal">org.hibernate.cache.CacheProvider</tt>&#25509;&#21475;&#12290;		</p><div class="table"><a name="cacheproviders"></a><p class="title"><b>&#34920;&nbsp;20.1.&nbsp;				&#32531;&#23384;&#31574;&#30053;&#25552;&#20379;&#21830;&#65288;Cache Providers&#65289;			</b></p><table summary="&#xA;				&#32531;&#23384;&#31574;&#30053;&#25552;&#20379;&#21830;&#65288;Cache Providers&#65289;&#xA;			" 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">Provider class</th><th align="left">Type</th><th align="left">Cluster Safe</th><th align="left">Query Cache Supported</th></tr></thead><tbody><tr><td align="left">Hashtable (not intended for production use)</td><td align="left"><tt class="literal">org.hibernate.cache.HashtableCacheProvider</tt></td><td align="left">memory</td><td align="left">&nbsp;</td><td align="left">yes</td></tr><tr><td align="left">EHCache</td><td align="left"><tt class="literal">org.hibernate.cache.EhCacheProvider</tt></td><td align="left">memory, disk</td><td align="left">&nbsp;</td><td align="left">yes</td></tr><tr><td align="left">OSCache</td><td align="left"><tt class="literal">org.hibernate.cache.OSCacheProvider</tt></td><td align="left">memory, disk</td><td align="left">&nbsp;</td><td align="left">yes</td></tr><tr><td align="left">SwarmCache</td><td align="left"><tt class="literal">org.hibernate.cache.SwarmCacheProvider</tt></td><td align="left">clustered (ip multicast)</td><td align="left">yes (clustered invalidation)</td><td align="left">&nbsp;</td></tr><tr><td align="left">JBoss TreeCache</td><td align="left"><tt class="literal">org.hibernate.cache.TreeCacheProvider</tt></td><td align="left">clustered (ip multicast), transactional</td><td align="left">yes (replication)</td><td align="left">yes (clock sync req.)</td></tr></tbody></table></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="performance-cache-mapping"></a>20.2.1.&nbsp;&#32531;&#23384;&#26144;&#23556;&#65288;Cache mappings&#65289;			</h3></div></div><div></div></div><p>				&#31867;&#25110;&#32773;&#38598;&#21512;&#26144;&#23556;&#30340;&#8220;<tt class="literal">&lt;cache&gt;</tt>&#20803;&#32032;&#8221;&#21487;&#20197;&#26377;&#19979;&#21015;&#24418;&#24335;&#65306;             </p><div class="programlistingco"><pre class="programlisting">&lt;cache     usage="transactional|read-write|nonstrict-read-write|read-only"  <span class="co">(1)</span>/&gt;</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left">(1)</td><td valign="top" align="left"><p>						   						    <tt class="literal">usage</tt>&#35828;&#26126;&#20102;&#32531;&#23384;&#30340;&#31574;&#30053;:                            <tt class="literal">transactional</tt>&#12289;                            <tt class="literal">read-write</tt>&#12289;                            <tt class="literal">nonstrict-read-write</tt>&#25110;                             <tt class="literal">read-only</tt>&#12290;                        </p></td></tr></table></div></div><p>				&#21478;&#22806;(&#39318;&#36873;?), &#20320;&#21487;&#20197;&#22312;hibernate.cfg.xml&#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>                				&#36825;&#37324;&#30340;<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>20.2.2.&nbsp;&#31574;&#30053;&#65306;&#21482;&#35835;&#32531;&#23384;&#65288;Strategy: read only&#65289;			</h3></div></div><div></div></div><p>				&#22914;&#26524;&#20320;&#30340;&#24212;&#29992;&#31243;&#24207;&#21482;&#38656;&#35835;&#21462;&#19968;&#20010;&#25345;&#20037;&#21270;&#31867;&#30340;&#23454;&#20363;&#65292;&#32780;&#26080;&#38656;&#23545;&#20854;&#20462;&#25913;&#65292;

⌨️ 快捷键说明

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