﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-林临的地盘-随笔分类-database</title><link>http://www.blogjava.net/linlin2005/category/21557.html</link><description>java学习博客</description><language>zh-cn</language><lastBuildDate>Fri, 25 Sep 2009 06:54:30 GMT</lastBuildDate><pubDate>Fri, 25 Sep 2009 06:54:30 GMT</pubDate><ttl>60</ttl><item><title>ORA-28547:连接服务器失败，可能是Oracle Net管理错误</title><link>http://www.blogjava.net/linlin2005/archive/2009/09/21/295886.html</link><dc:creator>lubaolin</dc:creator><author>lubaolin</author><pubDate>Mon, 21 Sep 2009 09:19:00 GMT</pubDate><guid>http://www.blogjava.net/linlin2005/archive/2009/09/21/295886.html</guid><wfw:comment>http://www.blogjava.net/linlin2005/comments/295886.html</wfw:comment><comments>http://www.blogjava.net/linlin2005/archive/2009/09/21/295886.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/linlin2005/comments/commentRss/295886.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linlin2005/services/trackbacks/295886.html</trackback:ping><description><![CDATA[将listener.ora中的(PROGRAM = extproc)这句注释掉就可以了。去网上找过，extproc是一个扩展的程序调用接口协议，&nbsp; 连接和调用外部的操作系统程序或进程用时会用到。<br />
<br />
转自：http://blog.csdn.net/chenjuntj2007/archive/2009/07/04/4321640.aspx
<img src ="http://www.blogjava.net/linlin2005/aggbug/295886.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linlin2005/" target="_blank">lubaolin</a> 2009-09-21 17:19 <a href="http://www.blogjava.net/linlin2005/archive/2009/09/21/295886.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle创建表空间</title><link>http://www.blogjava.net/linlin2005/archive/2009/07/23/287980.html</link><dc:creator>lubaolin</dc:creator><author>lubaolin</author><pubDate>Thu, 23 Jul 2009 02:35:00 GMT</pubDate><guid>http://www.blogjava.net/linlin2005/archive/2009/07/23/287980.html</guid><wfw:comment>http://www.blogjava.net/linlin2005/comments/287980.html</wfw:comment><comments>http://www.blogjava.net/linlin2005/archive/2009/07/23/287980.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/linlin2005/comments/commentRss/287980.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linlin2005/services/trackbacks/287980.html</trackback:ping><description><![CDATA[//创建临时表空间 <br />
<br />
create temporary tablespace test_temp <br />
tempfile 'E:\oracle\product\10.2.0\oradata\testserver\test_temp01.dbf' <br />
size 32m <br />
autoextend on <br />
next 32m maxsize 2048m <br />
extent management local; <br />
<br />
//创建数据表空间 <br />
create tablespace test_data <br />
logging <br />
datafile 'E:\oracle\product\10.2.0\oradata\testserver\test_data01.dbf' <br />
size 32m <br />
autoextend on <br />
next 32m maxsize 2048m <br />
extent management local; <br />
<br />
//创建用户并指定表空间 <br />
create user username identified by password <br />
default tablespace test_data <br />
temporary tablespace test_temp; <br />
<br />
//给用户授予权限 <br />
<br />
grant connect,resource to username; <br />
<br />
//以后以该用户登录，创建的任何数据库对象都属于test_temp 和test_data表空间，这就不用在每创建一个对象给其指定表空间了。<br />
<br />
转载：http://virgos.javaeye.com/blog/337976
<img src ="http://www.blogjava.net/linlin2005/aggbug/287980.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linlin2005/" target="_blank">lubaolin</a> 2009-07-23 10:35 <a href="http://www.blogjava.net/linlin2005/archive/2009/07/23/287980.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle 对列求积 </title><link>http://www.blogjava.net/linlin2005/archive/2008/07/21/216347.html</link><dc:creator>lubaolin</dc:creator><author>lubaolin</author><pubDate>Mon, 21 Jul 2008 06:26:00 GMT</pubDate><guid>http://www.blogjava.net/linlin2005/archive/2008/07/21/216347.html</guid><wfw:comment>http://www.blogjava.net/linlin2005/comments/216347.html</wfw:comment><comments>http://www.blogjava.net/linlin2005/archive/2008/07/21/216347.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/linlin2005/comments/commentRss/216347.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linlin2005/services/trackbacks/216347.html</trackback:ping><description><![CDATA[<p><font face="宋体">SQL&gt; select * from t1;</font></p>
<p><font face="宋体">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> N1 V1&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> NID<br />
---------- ---------- ----------<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 1 aa&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 61<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 2 aa&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 62<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 3 bb&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 83<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 4 aa&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 64<br />
</font></p>
<p><font face="宋体">SQL&gt; select <strong>exp(sum(ln(nid)))</strong> from t1 where v1='aa';</font></p>
<p><font face="宋体">EXP(SUM(LN(NID)))<br />
-----------------<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 242048</font></p>
<p><font face="宋体">已用时间:&nbsp;<wbr> 00: 00: 00.02</font></p>
<p><font face="宋体">验证一下:)<br />
SQL&gt; select 61*62*64 from dual;</font></p>
<p><font face="宋体">&nbsp;<wbr> 61*62*64<br />
----------<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 242048</font></p>
<p><font face="宋体">已用时间:&nbsp;<wbr> 00: 00: 00.00</font></p>
<p>先分组然后求积<font face="宋体"><br />
SQL&gt; select exp(sum(ln(nid))) from t1 group by v1;</font></p>
<p><font face="宋体">EXP(SUM(LN(NID)))<br />
-----------------<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 242048<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 83<br />
<br />
<br />
oracle 这东东挺有意思.<br />
转自:http://blog.sina.com.cn/s/blog_54eeb5d901000ae5.html</font></p>
<img src ="http://www.blogjava.net/linlin2005/aggbug/216347.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linlin2005/" target="_blank">lubaolin</a> 2008-07-21 14:26 <a href="http://www.blogjava.net/linlin2005/archive/2008/07/21/216347.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate配置连接池</title><link>http://www.blogjava.net/linlin2005/archive/2007/05/11/116783.html</link><dc:creator>lubaolin</dc:creator><author>lubaolin</author><pubDate>Fri, 11 May 2007 08:33:00 GMT</pubDate><guid>http://www.blogjava.net/linlin2005/archive/2007/05/11/116783.html</guid><wfw:comment>http://www.blogjava.net/linlin2005/comments/116783.html</wfw:comment><comments>http://www.blogjava.net/linlin2005/archive/2007/05/11/116783.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/linlin2005/comments/commentRss/116783.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linlin2005/services/trackbacks/116783.html</trackback:ping><description><![CDATA[1<span>：连接池的必知概念</span><span><br><font face="Times New Roman" size=3>&nbsp;&nbsp;&nbsp; </font></span><span><font size=3>首先，我们还是老套的讲讲连接池的基本概念，概念理解清楚了，我们也知道后面是怎么回事了。</font></span><font size=3><span><font face="Times New Roman"> <br></font></span><span>以前我们程序连接数据库的时候，每一次连接数据库都要一个连接，用完后再释放。如果频繁的数据库操作，就会导致性能很低。连接池的出现，为开发过程提供了一个很好的管理平台。当程序中需要建立数据库连接时，只须从内存中取一个来用而不用新建。同样，使用完毕后，只需放回内存即可。而连接的建立、断开都有连接池自身来管理。同时，我们还可以通过设置连接池的参数来控制连接池中的连接数、每个连接的最大使用次数等等。通过使用连接池，将大大提高程序效率，同时，我们可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。</span></font><font size=3><span><font face="Times New Roman"> <br></font></span><span>而</span><span><font face="Times New Roman">Hibernate</font></span><span>的出现把连接池的使用引入了一个新的利用方式，让你充分享受配置化给开发带来的便利。</span></font><font size=3><span><font face="Times New Roman"> <br><br>&nbsp;&nbsp;&nbsp; 2</font></span><span>：</span><span><font face="Times New Roman">Hibernate</font></span><span>连接池的配置</span></font><font size=3><span><font face="Times New Roman">&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span>在这里笔者简单介绍一下</span><span><font face="Times New Roman">Hibernate</font></span><span>配置连接池的方式：</span></font><font size=3><span><font face="Times New Roman"> <br>&nbsp;&nbsp;&nbsp; </font></span><span>方式</span><span><font face="Times New Roman">1</font></span><span>：使用</span><span><font face="Times New Roman">Hibernate</font></span><span>自带的连接池。</span></font><font size=3><span><font face="Times New Roman"> <br>&nbsp;&nbsp;&nbsp; </font></span><span>方式</span><span><font face="Times New Roman">2</font></span><span>：使用配置文件指定的数据库连接池。</span></font><font size=3><span><font face="Times New Roman"> <br>&nbsp;&nbsp;&nbsp; </font></span><span>方式</span><span><font face="Times New Roman">3</font></span><span>：从容器中获取得到连接池（如：</span><span><font face="Times New Roman">Tomcat</font></span><span>）</span></font><font size=3><span><font face="Times New Roman"> <br><br>&nbsp;&nbsp;&nbsp; Hibernate</font></span><span>无论采用哪种方式获取连接池的连接，它对</span><span><font face="Times New Roman">Java</font></span><span>程序来说是独立的。</span><span><font face="Times New Roman">Hibernate</font></span><span>对其采用了配置化处理，也就是当想改变获取数据库连接的方式时，只要修改</span><span><font face="Times New Roman">Hibernate</font></span><span>的配置文件就可以了，看看多方便，就是这么简单，这足以让你爱死</span><span><font face="Times New Roman">Hibernate</font></span><span>了。哈哈，让我们正式来看看，</span><span><font face="Times New Roman">Hibernate</font></span><span>究竟是怎么做的！</span></font><font size=3><span><font face="Times New Roman"> <br>&nbsp;&nbsp;&nbsp; </font></span><span>注意：</span><span><font face="Times New Roman">Hibernate</font></span><span>配置文件有两钟格式一个是</span><span><font face="Times New Roman">XML</font></span><span>格式，一种是</span><span><font face="Times New Roman">properties</font></span><span>格式。本文采用的是主流的</span><span><font face="Times New Roman">XML</font></span><span>格式来分析！</span></font><font size=3><span><font face="Times New Roman">&nbsp;<br><br>&nbsp;&nbsp;&nbsp; </font></span><span>（</span><span><font face="Times New Roman">1</font></span><span>）使用</span><span><font face="Times New Roman">Hibernate</font></span><span>自带的连接池</span></font><font size=3><span><font face="Times New Roman"> <br>&nbsp;&nbsp;&nbsp; Hibernate</font></span><span>自带的连接池性能不高，缺乏响应大批量请求以及容错能力，甚至还有</span><span><font face="Times New Roman">BUG</font></span><span>，在项目运用中不值得推荐。虽然缺点一罗筐，可也是</span><span><font face="Times New Roman">Hibernate</font></span><span>获取连接池的一种方式，在这里笔者仅给出配置方法，以供参考，如下代码所示：</span><span><font face="Times New Roman"> </font></span></font>
<p><span><font face="Times New Roman" size=3>&#8230;&#8230;&#8230;..</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;hibernate-configuration&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;session-factory &gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;!--JDBC</font></span><font size=3><span>驱动程序</span><span><font face="Times New Roman">--&gt;</font></span></font></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;property name="connection.driver_class"&gt;com.mysql.jdbc.Driver&lt;/property&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;!-- </font></span><font size=3><span>连接数据库的</span><span><font face="Times New Roman">URL--&gt;</font></span></font></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;property name="connection.url"&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>jdbc:mysql://localhost:3306/feifei </font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;/property&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;!--</font></span><font size=3><span>连接的登录名</span><span><font face="Times New Roman">--&gt;</font></span></font></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;property name="connection.username"&gt;root&lt;/property&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;!--</font></span><font size=3><span>登录密码</span><span><font face="Times New Roman">--&gt;</font></span></font></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;property name="connection.password"&gt;&lt;/property&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;!--</font></span><font size=3><span>是否将运行期生成的</span><span><font face="Times New Roman">SQL</font></span><span>输出到日志以供调试</span><span><font face="Times New Roman">--&gt;</font></span></font></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;property name="show_sql"&gt;true&lt;/property&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;!--</font></span><font size=3><span>指定连接的语言</span><span><font face="Times New Roman">--&gt;</font></span></font></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;property name="dialect"&gt;org.hibernate.dialect.MySQLDialect&lt;/property&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;!--</font></span><font size=3><span>映射资源</span><span><font face="Times New Roman">--&gt;</font></span></font></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;mapping resource="/xx/xx.hbm.xml" /&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;/session-factory&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;/hibernate-configuration&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font></span></p>
<p><font size=3><span><font face="Times New Roman">(2)</font></span><span>使用配置文件指定的连接池</span></font><font size=3><span><font face="Times New Roman"> <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; </font></span><span>笔者在这里推荐当今稳定而且主流的数据源，就是</span><span><font face="Times New Roman">Hibernate</font></span><span>支持的第三方连接池产品：</span><span><font face="Times New Roman">C3P0</font></span><span>，</span><span><font face="Times New Roman">Proxool</font></span><span>。随着文章的深入，你会发现他们配置方法也有很大的不同。</span></font><font size=3><span><font face="Times New Roman"> <br>&nbsp;&nbsp;&nbsp; </font></span><span>先来介绍连接池</span><span><font face="Times New Roman">C3P0</font></span><span>配置，在写入配置文件之前，用户必须将</span><span><font face="Times New Roman">c3p0-<st1:chsdate Year="1899" Month="12" Day="30" IsLunarDate="False" IsROCDate="False" w:st="on">0.8.4</st1:chsdate>.5.jar</font></span><span>这个包放入</span><span><font face="Times New Roman">classpath</font></span><span>当中，下面给出其核心配置项其他的配置项可参见上面的方式</span><span><font face="Times New Roman">1</font></span><span>。</span></font></p>
<p><span><font face="Times New Roman" size=3>&#8230;&#8230;&#8230;&#8230;&#8230;.</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;property name="c3p0.min_size"&gt;5&lt;/property&gt; &lt;!—</font></span><font size=3><span>在连接池中可用数据库连接的最小数目</span><span><font face="Times New Roman">--&gt;</font></span></font></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;property name="c3p0.max_size"&gt;30&lt;/property&gt; &lt;!--</font></span><font size=3><span>在连接池中所有数据库连接的最大数目</span><span><font face="Times New Roman">--&gt;</font></span></font></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;property name="c3p0.time_out"&gt;1800&lt;/property&gt; &lt;!—</font></span><font size=3><span>设定数据库连接的超时时间</span><span><font face="Times New Roman">--&gt;</font></span></font></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;property name="c3p0.max_statement"&gt;50&lt;/property&gt; &lt;!—</font></span><font size=3><span>可以被缓存的</span><span><font face="Times New Roman">PreparedStatement</font></span><span>的最大数目</span><span><font face="Times New Roman">--&gt;</font></span></font></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&#8230;&#8230;&#8230;&#8230;&#8230;.</font></span></p>
<p><font size=3><span>把上面的配置项添加到</span><span><font face="Times New Roman">hibernate.cfg.xml</font></span><span>中就可以了，看看是不是很简单？</span></font><font size=3><span><font face="Times New Roman"> <br>&nbsp;&nbsp;&nbsp; </font></span><span>配置</span><span><font face="Times New Roman">Proxool</font></span><span>连接池，就没有那么简单了，稍有不同！笔者原先，也按照配置</span><span><font face="Times New Roman">C3P0</font></span><span>连接池的方法去配置</span><span><font face="Times New Roman">Proxool</font></span><span>，然后一个大大的错误向我</span><span><font face="Times New Roman">&#8220;</font></span><span>招手</span><span><font face="Times New Roman">&#8221;</font></span><span>了。无助之下，上网看看有没有解决方法，就找到了一个笔者认为不错的方法，推荐给大家。</span></font><font size=3><span><font face="Times New Roman"> <br></font></span><span>由于</span><span><font face="Times New Roman">Proxool</font></span><span>连接池只管理自己产生的连接，</span><span><font face="Times New Roman">Hibernate</font></span><span>又需要管理它，怎么办呢？所以我的做法是单独的建立一个</span><span><font face="Times New Roman">XML</font></span><span>文件来管理连接池，又在</span><span><font face="Times New Roman">Hibernate</font></span><span>里面设置相关的项，让</span><span><font face="Times New Roman">Hibernate</font></span><span>与</span><span><font face="Times New Roman">Proxool</font></span><span>关联起来。</span></font><font size=3><span><font face="Times New Roman">&nbsp;<br>&nbsp;&nbsp;&nbsp; </font></span><span>当然首先你要把</span><span><font face="Times New Roman">proxool-<st1:chsdate Year="1899" Month="12" Day="30" IsLunarDate="False" IsROCDate="False" w:st="on">0.8.3</st1:chsdate>.jar</font></span><span>这个包放入</span><span><font face="Times New Roman">classpath</font></span><span>，再建立一个</span><span><font face="Times New Roman">ProxoolConf.xml</font></span><span>文件，这个文件便于管理建议和</span><span><font face="Times New Roman">&nbsp;hibernate.cfg.xml</font></span><span>文件放在一起。内容如下：</span></font></p>
<p><span><font face="Times New Roman" size=3>&lt;?xml version="1.0" encoding="utf-8"?&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;!-- the proxool configuration can be embedded within your own application's. </font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>Anything outside the "proxool" tag is ignored. --&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;something-else-entirely&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;proxool&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;alias&gt;feifeiPool&lt;/alias&gt; &lt;!—</font></span><font size=3><span>连接池的别名可以随便写，但注意的是后面在</span><span><font face="Times New Roman">hibernate</font></span><span>部分要对应</span><span><font face="Times New Roman">--&gt;</font></span></font></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;!--proxool</font></span><font size=3><span>只能管理由自己产生的连接</span><span><font face="Times New Roman">--&gt;</font></span></font></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;driver-url&gt;jdbc:mysql://localhost:3306/feifei?useUnicode=true&amp;characterEncoding=GBK&lt;/driver-url&gt; </font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;driver-class&gt; com.mysql.jdbc.Driver &lt;/driver-class&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;driver-properties&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;property name="user" value="root"/&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;property name="password" value=""/&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;/driver-properties&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;!-- proxool</font></span><font size=3><span>自动侦察各个连接状态的时间间隔</span><span><font face="Times New Roman">(</font></span><span>毫秒</span><span><font face="Times New Roman">),</font></span><span>侦察到空闲的连接就马上回收</span><span><font face="Times New Roman">,</font></span><span>超时的销毁</span><span><font face="Times New Roman">--&gt;</font></span></font></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;house-keeping-sleep-time&gt;90000&lt;/house-keeping-sleep-time&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;!--</font></span><font size=3><span>指因未有空闲连接可以分配而在队列中等候的最大请求数</span><span><font face="Times New Roman">,</font></span><span>超过这个请求数的用户连接就不会被接受</span><span><font face="Times New Roman">--&gt;</font></span></font></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;maximum-new-connections&gt;20&lt;/maximum-new-connections&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;!-- </font></span><font size=3><span>最少保持的空闲连接数</span><span><font face="Times New Roman">--&gt;</font></span></font></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;prototype-count&gt;5&lt;/prototype-count&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;!-- </font></span><font size=3><span>允许最大连接数</span><span><font face="Times New Roman">,</font></span><span>超过了这个连接，再有请求时，就排在队列中等候，最大的等待请求数由</span><span><font face="Times New Roman">maximum-new-connections</font></span><span>决定</span><span><font face="Times New Roman">--&gt;</font></span></font></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;maximum-connection-count&gt;100&lt;/maximum-connection-count&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;!-- </font></span><font size=3><span>最小连接数</span><span><font face="Times New Roman">--&gt;</font></span></font></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;minimum-connection-count&gt;10&lt;/minimum-connection-count&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;/proxool&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;/something-else-entirely&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3>&nbsp;</font></span></p>
<p><font size=3><span>然后需要在</span><span><font face="Times New Roman">hibernate.cfg.xml</font></span><span>中作配置，参考如下：</span></font></p>
<p><span><font face="Times New Roman" size=3>&#8230;&#8230;&#8230;&#8230;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;property name="proxool.pool_alias"&gt;feifeiPool&lt;/property&gt; &lt;!—</font></span><font size=3><span>这个名字要和上面</span><span><font face="Times New Roman">XML</font></span><span>文件中的别名要对应啊</span><span><font face="Times New Roman">--&gt;</font></span></font></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;property name="proxool.xml"&gt;ProxoolConf.xml&lt;/property&gt; &lt;!—</font></span><font size=3><span>这个你刚才上面建立的</span><span><font face="Times New Roman">XML</font></span><span>文件的名字</span><span><font face="Times New Roman">--&gt;</font></span></font></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;property name="connection.provider_class"&gt;org.hibernate.connection.ProxoolConnectionProvider&lt;/property&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&lt;!—</font></span><font size=3><span>定义</span><span><font face="Times New Roman">Hibernate</font></span><span>的</span><span><font face="Times New Roman">--&gt;</font></span></font></p>
<p><span><font face="Times New Roman" size=3></font><font face="Times New Roman" size=3>&#8230;&#8230;&#8230;&#8230;</font></span></p>
<p><font size=3><span>和</span><span><font face="Times New Roman">C3P0</font></span><span>连接池不同，</span><span><font face="Times New Roman">Proxool</font></span><span>连接池配置有两个步骤，请大家注意！至于</span><span><font face="Times New Roman">c3p0</font></span><span>，有评论说它的算法不是最优的，</span><span><font face="Times New Roman">proxool</font></span><span>不少行家推荐使用，而且暂时来说，是负面评价是最少的一个。性能是上，笔者也推荐使用这个。</span></font><font size=3><span><font face="Times New Roman"> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (3) </font></span><span>从容器中获取得到连接池（如：</span><span><font face="Times New Roman">Tomcat</font></span><span>）</span></font><font size=3><span><font face="Times New Roman"> <br>&nbsp;&nbsp;&nbsp; </font></span><span>笔者以我们大家常用的</span><span><font face="Times New Roman">Tomcat</font></span><span>为例子来描述，</span><span><font face="Times New Roman">Hibernate</font></span><span>想要从</span><span><font face="Times New Roman">Tomcat</font></span><span>中获取数据源，需要对</span><span><font face="Times New Roman">Tomcat</font></span><span>容器与</span><span><font face="Times New Roman">Hibernate</font></span><span>分别进行配置。</span></font><font size=3><span><font face="Times New Roman"> <br>&nbsp;&nbsp;&nbsp; &lt;1&gt;</font></span><span>在容器中配置数据源</span></font><font size=3><span><font face="Times New Roman"> <br>&nbsp;&nbsp;&nbsp; </font></span><span>配置容器的数据源，这里不多讲，属于服务器的配置范畴。假定已经配好了一个</span><span><font face="Times New Roman">JNDI</font></span><span>名为</span><span><font face="Times New Roman">&#8220;jdbc/feifei&#8221;</font></span><span>的数据源。</span></font><font size=3><span><font face="Times New Roman"> <br>&nbsp;&nbsp;&nbsp; &lt;2&gt;</font></span><span>在</span><span><font face="Times New Roman">hibernate.cfg.xml</font></span><span>中指定使用这个名为</span><span><font face="Times New Roman">&#8220;jdbc/feifei&#8221;</font></span><span>的</span></font><font size=3><span><font face="Times New Roman">JNDI <br>&nbsp;&nbsp;&nbsp; &lt;property name=&#8221;hibernate.connection.datasource&#8221;&gt;java:/comp/env/jdbc/feifei &lt;/property&gt; <br>&nbsp;&nbsp;&nbsp; &lt;!—</font></span><span>指定这个</span><span><font face="Times New Roman">JNDI</font></span><span>名字就可以了，而且必须是完整的，一定要注意哦！</span></font><font size=3><span><font face="Times New Roman">--&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span>本文的连接池方案分析就到此为止了。看完了，是不是很有想法？</span><span><font face="Times New Roman">Hibernate</font></span><span>配置连接池方面有这么多的方法提供给我们来选，选择的余地多了，发挥的空间也大了。</span></font><font size=3><span><font face="Times New Roman"> <br>&nbsp;&nbsp;&nbsp; 3</font></span><span>：编后语</span></font><font size=3><span><font face="Times New Roman"> <br>&nbsp;&nbsp;&nbsp; </font></span><span>连接池为我们开发带来了极大的便利，它为我们开发者承担了数据库连接管理的压力，让我们从烦琐的数据库事务中解脱出来，专心研究业务逻辑实现业务，是我们的一大福音。</span></font><font size=3><span><font face="Times New Roman"> <br></font></span><span>本文分析的</span><span><font face="Times New Roman">Hibernate</font></span><span>连接池配置方案，为读者提供了多种选择。建议读者也根据自己的实际情况来选取方案。文中肯定还有很多纰漏之处，还望大家斧正。讲的不足的地方，以后有机会定当补全！</span><font face="Times New Roman"> </font></font></p>
<p><span><font face="Times New Roman" size=3>&nbsp;</font></span></p>
<p><span><font face="Times New Roman" size=3>&nbsp;</font></span></p>
<p><font size=3><span><font face="Times New Roman">1</font></span><span>．</span><span><font face="Times New Roman">Hibernate</font></span><span>默认连接池</span></font><span><br><font face="Times New Roman" size=3>&lt;?xml&nbsp;version='1.0'&nbsp;encoding='UTF-8'?&gt;<br>&lt;!DOCTYPE&nbsp;hibernate-configuration<br>PUBLIC&nbsp;"-//Hibernate/Hibernate&nbsp;Configuration&nbsp;DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"&gt;<br>&lt;hibernate-configuration&gt;<br>&lt;session-factory&nbsp;&gt;<br>&lt;!?JDBC</font></span><span><font size=3>驱动程序</font></span><span><font face="Times New Roman" size=3>--&gt;<br>&lt;property&nbsp;name="connection.driver_class"&gt;com.mysql.jdbc.Driver&lt;/property&gt;</font></span></p>
<p><span><font face="Times New Roman" size=3>&nbsp;</font></span></p>
<p><font size=3><span><font face="Times New Roman">&lt;!--&nbsp;</font></span><span>连接数据库的</span></font><font size=3><span><font face="Times New Roman">URL--&gt;<br>&lt;property&nbsp;name="connection.url"&gt;&nbsp;<br>jdbc:mysql://localhost:3306/schoolproject<br>&lt;/property&gt;<br>&lt;property&nbsp;name="connection.useUnicode"&gt;true&lt;/property&gt;<br>&lt;property&nbsp;name="connection.characterEncoding"&gt;UTF-8&lt;/property&gt;<br><br>&lt;!--</font></span><span>连接的登录名</span></font><font size=3><span><font face="Times New Roman">--&gt;<br>&lt;property&nbsp;name="connection.username"&gt;root&lt;/property&gt;<br><br>&lt;!?</font></span><span>登录密码</span></font><font size=3><span><font face="Times New Roman">--&gt;<br>&lt;property&nbsp;name="connection.password"&gt;&lt;/property&gt;<br><br>&lt;!--</font></span><span>是否将运行期生成的</span><span><font face="Times New Roman">SQL</font></span><span>输出到日志以供调试</span></font><font size=3><span><font face="Times New Roman">--&gt;<br>&lt;property&nbsp;name="show_sql"&gt;true&lt;/property&gt;<br><br>&lt;!--</font></span><span>指定连接的语言</span></font><font size=3><span><font face="Times New Roman">--&gt;<br>&lt;property&nbsp;name="dialect"&gt;org.hibernate.dialect.MySQLDialect&lt;/property&gt;<br><br>&lt;!--</font></span><span>映射</span><span><font face="Times New Roman">Student</font></span><span>这个资源</span></font><span><font face="Times New Roman" size=3>--&gt;<br>&lt;mapping&nbsp;resource="com/wqbi/model/pojo/student.hbm.xml"&nbsp;/&gt;<br><br></font></span></p>
<p><span><font face="Times New Roman" size=3>&lt;/session-factory&gt;&nbsp;<br>&lt;/hibernate-configuration&gt;</font></span></p>
<p><span><br><font face="Times New Roman" size=3>2</font></span><font size=3><span>．</span><span><font face="Times New Roman">C3P0</font></span><span>连接配置</span></font><span><br><font face="Times New Roman" size=3>&lt;?xml&nbsp;version='1.0'&nbsp;encoding='UTF-8'?&gt;<br>&lt;!DOCTYPE&nbsp;hibernate-configuration<br>PUBLIC&nbsp;"-//Hibernate/Hibernate&nbsp;Configuration&nbsp;DTD//EN"<br>"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"&gt;<br><br>&lt;hibernate-configuration&gt;<br>&lt;session-factory&nbsp;&gt;<br>&lt;!?JDBC</font></span><span><font size=3>驱动程序</font></span><font size=3><span><font face="Times New Roman">--&gt;<br>&lt;property&nbsp;name="connection.driver_class"&gt;com.mysql.jdbc.Driver&lt;/property&gt;<br><br>&lt;!--&nbsp;</font></span><span>连接数据库的</span></font><font size=3><span><font face="Times New Roman">URL--&gt;<br>&lt;property&nbsp;name="connection.url"&gt;&nbsp;<br>jdbc:mysql://localhost:3306/schoolproject<br>&lt;/property&gt;<br><br>&lt;property&nbsp;name="connection.useUnicode"&gt;true&lt;/property&gt;<br>&lt;property&nbsp;name="connection.characterEncoding"&gt;UTF-8&lt;/property&gt;<br><br>&lt;!--</font></span><span>连接的登录名</span></font><font size=3><span><font face="Times New Roman">--&gt;<br>&lt;property&nbsp;name="connection.username"&gt;root&lt;/property&gt;<br><br>&lt;!--</font></span><span>登录密码</span></font><font size=3><span><font face="Times New Roman">--&gt;<br>&lt;property&nbsp;name="connection.password"&gt;&lt;/property&gt;<br><br>&lt;!--&nbsp;C3P0</font></span><span>连接池设定</span></font><span><font face="Times New Roman" size=3>--&gt;<br><br>&lt;property&nbsp;name="hibernate.connection.provider_class"&gt;org.hibernate.connection.C3P0ConnectionProvider<br>&lt;/property&gt;<br>&lt;property&nbsp;name="hibernate.c3p0.max_size"&gt;20&lt;/property&gt;<br>&lt;property&nbsp;name="hibernate.c3p0.min_size"&gt;5&lt;/property&gt;<br>&lt;property&nbsp;name="hibernate.c3p0.timeout"&gt;120&lt;/property&gt;<br>&lt;property&nbsp;name="hibernate.c3p0.max_statements"&gt;100&lt;/property&gt;<br>&lt;property&nbsp;name="hibernate.c3p0.idle_test_period"&gt;120&lt;/property&gt;<br>&lt;property&nbsp;name="hibernate.c3p0.acquire_increment"&gt;2&lt;/property&gt;</font></span></p>
<p><span><br><font face="Times New Roman" size=3>&lt;!--</font></span><font size=3><span>是否将运行期生成的</span><span><font face="Times New Roman">SQL</font></span><span>输出到日志以供调试</span></font><font size=3><span><font face="Times New Roman">--&gt;<br>&lt;property&nbsp;name="show_sql"&gt;true&lt;/property&gt;<br>&lt;!--</font></span><span>指定连接的语言</span></font><font size=3><span><font face="Times New Roman">--&gt;<br>&lt;property&nbsp;name="dialect"&gt;org.hibernate.dialect.MySQLDialect&lt;/property&gt;<br><br>&lt;!--</font></span><span>映射</span><span><font face="Times New Roman">Student</font></span><span>这个资源</span></font><font size=3><span><font face="Times New Roman">--&gt;<br>&lt;mapping&nbsp;resource="com/wqbi/model/pojo/student.hbm.xml"&nbsp;/&gt;<br><br>&lt;/session-factory&gt;&nbsp;<br>&lt;/hibernate-configuration&gt;<br><br>3</font></span><span>．</span><span><font face="Times New Roman">proxool</font></span><span>连接池</span></font><span><br><br><font face="Times New Roman" size=3>(1)&nbsp;</font></span><font size=3><span>先写</span><span><font face="Times New Roman">proxool</font></span><span>的配置文件，文件名：</span><span><font face="Times New Roman">proxool.xml</font></span><span>（一般放在与</span><span><font face="Times New Roman">hibernate.cfg.xml</font></span><span>文件在同一个目录中）本例配置的是</span><span><font face="Times New Roman">MYSQL</font></span><span>数据库，数据库的名字为</span></font><font size=3><span><font face="Times New Roman">schoolproject<br>&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;&nbsp;<br>&lt;!--&nbsp;the&nbsp;proxool&nbsp;configuration&nbsp;can&nbsp;be&nbsp;embedded&nbsp;within&nbsp;your&nbsp;own&nbsp;application's.&nbsp;<br>Anything&nbsp;outside&nbsp;the&nbsp;"proxool"&nbsp;tag&nbsp;is&nbsp;ignored.&nbsp;--&gt;&nbsp;<br>&lt;something-else-entirely&gt;<br>&lt;proxool&gt;<br>&lt;!--</font></span><span>连接池的别名</span></font><font size=3><span><font face="Times New Roman">--&gt;<br>&lt;alias&gt;DBPool&lt;/alias&gt;<br>&lt;!--proxool</font></span><span>只能管理由自己产生的连接</span></font><span><font face="Times New Roman" size=3>--&gt;<br><br>&lt;driver-url&gt;<br>jdbc:mysql://localhost:3306/schoolproject?useUnicode=true&amp;characterEncoding=UTF8<br>&lt;/driver-url&gt;<br><br></font></span></p>
<p><font size=3><span><font face="Times New Roman">&lt;!?JDBC</font></span><span>驱动程序</span></font><font size=3><span><font face="Times New Roman">--&gt;<br>&lt;driver-class&gt;com.mysql.jdbc.Driver&lt;/driver-class&gt;<br>&lt;driver-properties&gt;<br>&lt;property&nbsp;name="user"&nbsp;value="root"/&gt;<br>&lt;property&nbsp;name="password"&nbsp;value=""/&gt;<br>&lt;/driver-properties&gt;&nbsp;<br><br>&lt;!--&nbsp;proxool</font></span><span>自动侦察各个连接状态的时间间隔</span><span><font face="Times New Roman">(</font></span><span>毫秒</span><span><font face="Times New Roman">),</font></span><span>侦察到空闲的连接就马上回</span></font><span><br></span><font size=3><span>收</span><span><font face="Times New Roman">,</font></span><span>超时的销毁</span></font><font size=3><span><font face="Times New Roman">--&gt;&nbsp;<br>&lt;house-keeping-sleep-time&gt;90000&lt;/house-keeping-sleep-time&gt;<br><br>&lt;!--&nbsp;</font></span><span>指因未有空闲连接可以分配而在队列中等候的最大请求数</span><span><font face="Times New Roman">,</font></span><span>超过这个请求数的</span></font><span><br></span><span><font size=3>用户连接就不会被接受</font></span><font size=3><span><font face="Times New Roman">--&gt;&nbsp;<br>&lt;maximum-new-connections&gt;20&lt;/maximum-new-connections&gt;<br>&lt;!--&nbsp;</font></span><span>最少保持的空闲连接数</span></font><font size=3><span><font face="Times New Roman">--&gt;&nbsp;<br>&lt;prototype-count&gt;5&lt;/prototype-count&gt;<br><br>&lt;!--&nbsp;</font></span><span>允许最大连接数</span><span><font face="Times New Roman">,</font></span><span>超过了这个连接，再有请求时，就排在队列中等候，最大的</span></font><span><br></span><font size=3><span>等待请求数由</span><span><font face="Times New Roman">maximum-new-connections</font></span><span>决定</span></font><font size=3><span><font face="Times New Roman">--&gt;&nbsp;<br>&lt;maximum-connection-count&gt;100&lt;/maximum-connection-count&gt;<br><br>&lt;!--&nbsp;</font></span><span>最小连接数</span></font><font size=3><span><font face="Times New Roman">--&gt;<br>&lt;minimum-connection-count&gt;10&lt;/minimum-connection-count&gt;<br><br>&lt;/proxool&gt;&nbsp;<br>&lt;/something-else-entirely&gt;<br><br>(2)</font></span><span>配置</span><span><font face="Times New Roman">hibernate.cfg.xml</font></span><span>文件</span></font><span><br><font face="Times New Roman" size=3>&lt;?xml&nbsp;version='1.0'&nbsp;encoding='UTF-8'?&gt;<br>&lt;!DOCTYPE&nbsp;hibernate-configuration<br>PUBLIC&nbsp;"-//Hibernate/Hibernate&nbsp;Configuration&nbsp;DTD//EN"<br>"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"&gt;<br>&lt;hibernate-configuration&gt;<br>&lt;session-factory&nbsp;&gt;<br>&lt;property&nbsp;name="hibernate.connection.provider_class"&gt;<br>org.hibernate.connection.ProxoolConnectionProvider<br>&lt;/property&gt;<br>&lt;property&nbsp;name="hibernate.proxool.pool_alias"&gt;DBPool&lt;/property&gt;<br>&lt;property&nbsp;name="hibernate.proxool.xml"&gt;proxoolconf.xml&lt;/property&gt;<br><br>&lt;!--</font></span><font size=3><span>是否将运行期生成的</span><span><font face="Times New Roman">SQL</font></span><span>输出到日志以供调试</span></font><font size=3><span><font face="Times New Roman">--&gt;<br>&lt;property&nbsp;name="show_sql"&gt;true&lt;/property&gt;<br>&lt;!--</font></span><span>指定连接的语言</span></font><font size=3><span><font face="Times New Roman">--&gt;<br>&lt;property&nbsp;name="dialect"&gt;org.hibernate.dialect.MySQLDialect&lt;/property&gt;<br><br>&lt;!--</font></span><span>映射</span><span><font face="Times New Roman">Student</font></span><span>这个资源</span></font><font size=3><span><font face="Times New Roman">--&gt;<br>&lt;mapping&nbsp;resource="com/wqbi/model/pojo/student.hbm.xml"&nbsp;/&gt;<br><br>&lt;/session-factory&gt;&nbsp;<br>&lt;/hibernate-configuration&gt;<br>(1)&nbsp;hibernate.connection.provider_class</font></span><span>定义</span><span><font face="Times New Roman">Hibernate</font></span><span>的连接加载类，这里</span><span><font face="Times New Roman">Proxool</font></span><span>连接池是用这个，不同的连接池有不同的加载类，可以查阅</span><span><font face="Times New Roman">Hibernate</font></span><span>文档获取相关信息</span></font><span><br><br><font face="Times New Roman" size=3>(2)&nbsp;hibernate.proxool.pool_alias</font></span><span><font size=3>这里就是用我们上面提到的连接池的别名</font></span><span><br><br><font face="Times New Roman" size=3>(3)&nbsp;hibernate.proxool.xml</font></span><font size=3><span>是向</span><span><font face="Times New Roman">Hibernate</font></span><span>声明连接池的配置文件位置，可以用相对或绝对路径，用相对路径时要注意一定在要</span><span><font face="Times New Roman">Path</font></span><span>范围内！不然会抛出异常。</span></font><span><br><br><font face="Times New Roman" size=3>(4)&nbsp;dialect</font></span><span><font size=3>是声明ＳＱＬ语句的方言</font></span><span><br><br><font face="Times New Roman" size=3>(5)&nbsp;show_sql</font></span><font size=3><span>定义是否显示</span><span><font face="Times New Roman">Hibernate</font></span><span>生成的ＳＱＬ语言，一般在调试阶段设为</span><span><font face="Times New Roman">true,</font></span><span>完成后再改成</span><span><font face="Times New Roman">false</font></span><span>，这样有利于调试。</span></font><span><br><br><font face="Times New Roman" size=3>(6)&nbsp;&lt;mapping&nbsp;&gt;</font></span><span><font size=3>资源文件映射</font></span><span><br><br><font face="Times New Roman" size=3>4</font></span><font size=3><span>．</span><span><font face="Times New Roman">JNDI</font></span><span>连接池，数据源已经由应用服务配置好</span><span><font face="Times New Roman">(</font></span><span>如</span><span><font face="Times New Roman">Web</font></span><span>服务器</span><span><font face="Times New Roman">)</font></span><span>，</span><span><font face="Times New Roman">Hibernate</font></span><span>需要做的只是通过</span><span><font face="Times New Roman">JNDI</font></span><span>名查找到此数据源。应用服务器将连接池对外显示为</span><span><font face="Times New Roman">JNDI</font></span><span>绑定数据源，它是</span><span><font face="Times New Roman">javax.jdbc.Datasource</font></span><span>类的一个实例。只要配置一个</span><span><font face="Times New Roman">Hibernate</font></span><span>文件，如：</span></font><span><br><font face="Times New Roman" size=3>hibernate.connection.datasource=java:/comp/env/jdbc/schoolproject&nbsp;//JNDI</font></span><span><font size=3>名</font></span><span><br><font face="Times New Roman" size=3>hibernate.transaction.factory_class&nbsp;=&nbsp;org.hibernate.transaction.JTATransactionFactory<br>hibernate.transaction.manager_loopup_class&nbsp;=<br>org.hibernate.transaction.JBossTransactionManagerLookup<br>hibernate.dialect=org.hibernate.dialect.MySQLDialect</font></span></p>
转自：<a href="http://www.cublog.cn/u/27479/showart_218912.html">http://www.cublog.cn/u/27479/showart_218912.html</a> 
<img src ="http://www.blogjava.net/linlin2005/aggbug/116783.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linlin2005/" target="_blank">lubaolin</a> 2007-05-11 16:33 <a href="http://www.blogjava.net/linlin2005/archive/2007/05/11/116783.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>向mysql添加新用户并分配权限</title><link>http://www.blogjava.net/linlin2005/archive/2007/04/15/110828.html</link><dc:creator>lubaolin</dc:creator><author>lubaolin</author><pubDate>Sun, 15 Apr 2007 14:29:00 GMT</pubDate><guid>http://www.blogjava.net/linlin2005/archive/2007/04/15/110828.html</guid><wfw:comment>http://www.blogjava.net/linlin2005/comments/110828.html</wfw:comment><comments>http://www.blogjava.net/linlin2005/archive/2007/04/15/110828.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/linlin2005/comments/commentRss/110828.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linlin2005/services/trackbacks/110828.html</trackback:ping><description><![CDATA[bin&gt;mysql -u root<br>mysql&gt; grant 权限1,权限2,&#8230;权限n on 数据库名称.表名称 to 用户名@用户地址 identified by &#8216;连接口令&#8217;;<br><br>权限1,权限2,&#8230;权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。<br>当权限1,权限2,&#8230;权限n被all privileges或者all代替，表示赋予用户全部权限。<br>当数据库名称.表名称被*.*代替，表示赋予用户操作服务器上所有数据库所有表的权限。<br>用户地址可以是localhost，也可以是ip地址、机器名字、域名。也可以用&#8217;%'表示从任何地址连接。<br>&#8216;连接口令&#8217;不能为空，否则创建失败。<br><br><br><br>例如：<br>mysql&gt;grant select,insert,update,delete,create,drop on vtdc.employee to joe@10.163.225.87 identified by &#8216;123&#8242;;<br>给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限，并设定口令为123。<br><br>mysql&gt;grant all privileges on vtdc.* to joe@10.163.225.87 identified by &#8216;123&#8242;;<br>给来自10.163.225.87的用户joe分配可对数据库vtdc所有表进行所有操作的权限，并设定口令为123。<br><br>mysql&gt;grant all privileges on *.* to joe@10.163.225.87 identified by &#8216;123&#8242;;<br>给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限，并设定口令为123。<br><br>mysql&gt;grant all privileges on *.* to joe@localhost identified by &#8216;123&#8242;;<br>给本机用户joe分配可对所有数据库的所有表进行所有操作的权限，并设定口令为123。
<img src ="http://www.blogjava.net/linlin2005/aggbug/110828.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linlin2005/" target="_blank">lubaolin</a> 2007-04-15 22:29 <a href="http://www.blogjava.net/linlin2005/archive/2007/04/15/110828.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DB2 命令行处理器（CLP）中的常用命令</title><link>http://www.blogjava.net/linlin2005/archive/2007/03/16/104211.html</link><dc:creator>lubaolin</dc:creator><author>lubaolin</author><pubDate>Fri, 16 Mar 2007 04:58:00 GMT</pubDate><guid>http://www.blogjava.net/linlin2005/archive/2007/03/16/104211.html</guid><wfw:comment>http://www.blogjava.net/linlin2005/comments/104211.html</wfw:comment><comments>http://www.blogjava.net/linlin2005/archive/2007/03/16/104211.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/linlin2005/comments/commentRss/104211.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linlin2005/services/trackbacks/104211.html</trackback:ping><description><![CDATA[<p>我们经常会用到db2 -tvf test.sql 来批量执行test.sql文件中的所有语句，而tvf的具体含义是什么，请看一下介绍 <br>db2命令行参数：以下列出当前的db2命令行参数 </p>
<p>db2 =&gt; list command options </p>
<p>命令行处理器选项设置 </p>
<p>后端进程等待时间（秒） (DB2BQTIME) = 1<br>连接至后端的重试次数 (DB2BQTRY) = 60<br>请求队列等待时间（秒） (DB2RQTIME) = 5<br>输入队列等待时间（秒） (DB2IQTIME) = 5<br>命令选项 (DB2OPTIONS) = </p>
<p>选项 描述 当前设置<br>------ ---------------------------------------- ---------------<br>-a 显示 SQLCA OFF<br>-c 自动落实 OFF<br>-e 显示 SQLCODE/SQLSTATE OFF<br>-f 读取输入文件 OFF<br>-l 将命令记录到历史文件中 OFF<br>-n 除去换行字符 OFF<br>-o 显示输出 ON<br>-p 显示交互式输入提示 ON<br>-r 将输出保存到报告文件 OFF<br>-s 在命令出错时停止执行 OFF<br>-t 设置语句终止符 OFF<br>-v 回送当前命令 OFF<br>-w 显示 FETCH/SELECT 警告消息 ON<br>-x 不打印列标题 OFF<br>-z 将所有输出保存到输出文件 OFF </p>
<p>以下用来查看如何修改参数： </p>
<p>db2 =&gt; ? options<br>db2 [option ...] [db2-command | sql-statement |<br>[? [phrase | message | sqlstate | class-code]]]<br>选项：-a, -c, -e{c|s}, -finfile, -lhistfile, -n, -o, -p, -rreport, -s, -t,<br>-td;, -v, -w, -x, -zoutputfile。 </p>
<p>选项 描述 缺省设置<br>------ ---------------------------------------- ---------------<br>-a 显示 SQLCA OFF<br>-c 自动落实 ON<br>-e 显示 SQLCODE/SQLSTATE OFF<br>-f 读取输入文件 OFF<br>-l 将命令记录到历史文件中 OFF<br>-n 除去换行字符 OFF<br>-o 显示输出 ON<br>-p 显示 db2 交互式提示 ON<br>-r 将输出报告保存到文件 OFF<br>-s 在命令出错时停止执行 OFF<br>-t 设置语句终止符 OFF<br>-v 回送当前命令 OFF<br>-w 显示 FETCH/SELECT 警告消息 ON<br>-x 不打印列标题 OFF<br>-z 将所有输出保存到输出文件 OFF </p>
<p>注意：<br>使用 DB2OPTIONS 环境变量定制选项缺省值。<br>紧跟选项字母后的减号（-）使该选项关闭。<br>使用 UPDATE COMMAND OPTIONS 更改选项设置（以交互式或<br>文件输入方式）。 </p>
<p>如何修改，请输入： </p>
<p>db2 =&gt; ? update command options </p>
<p>比如修改为不自动提交： </p>
<p>update command options using c off </p>
<p><br>在db2命令行提示符下，输入?，就可以查看所有的CLP命令 </p>
<p>输入: ? command （clp命令名） 比如: ? connect </p>
<p>db2 =&gt; ? connect<br>CONNECT [USER username [{USING password<br>[NEW new-password CONFIRM confirm-password] |<br>CHANGE PASSWORD}]] </p>
<p>CONNECT RESET </p>
<p>CONNECT TO database-alias<br>[IN {SHARE MODE | EXCLUSIVE MODE [ON SINGLE DBPARTITIONNUM]}]<br>[USER username [{USING password<br>[NEW new-password CONFIRM confirm-password] |<br>CHANGE PASSWORD}]] </p>
<p>方括号中的参数是可选参数，尖括号中的内容表示变量。 </p>
<p>以下是常用的： </p>
<p>实例 </p>
<p>db2start 启动数据库管理器实例。 <br>db2stop 停止数据库管理器实例。 <br>get dbm cfg 返回数据库管理器配置设置。 <br>get dbm cfg show detail 显示数据库管理器参数的当前值和延迟值（从 V8 起）。 <br>1update dbm cfg using&nbsp; 将数据库管理器配置参数 更新为值 。&nbsp; <br>get instance 返回 DB2INSTANCE 环境变量的值。 <br>list active databases 列出活动的数据库和连接数。 <br>list application [show detail] 返回关于当前连接的应用程序的信息。 <br>force application (h1 [,h2,..,hn]) 根据句柄号与特定应用程序断开连接。 <br>force application all 断开所有应用程序与数据库的连接。 <br>attach to user using&nbsp; 以用户 通过使用密码 与标识为 的远程实例连接。 </p>
<p>&#160;</p>
<p>数据库 </p>
<p>create database&nbsp; 创建名为 的数据库。 <br>activate database&nbsp; 显式地激活数据库。 <br>deactivate database&nbsp; 显式地使数据库失效。 <br>connect to [ [user ] using ]&nbsp; 根据需要，显式地以用户 和密码 与数据库 连接。 <br>1update dbm cfg using&nbsp; 将数据库管理器配置参数 更新为值 。&nbsp; <br>connect reset 断开与当前数据库的连接。 <br>get db cfg show detail 显示数据库配置参数的当前值和延迟值（仅适用于 V8）。 <br>get db cfg for&nbsp; 返回数据库 的数据库配置设置。 <br>update db cfg for using&nbsp; 将数据库 的数据库配置参数 更新为值 。&nbsp; <br>list tables[for {user | all | system | schema }][show detail] 列出数据库中的表。如果没有指定任何参数，则缺省情况是列出当前用户的表。 <br>describe table&nbsp; 显示一个表或视图的列信息。 <br>list tablespaces [show detail] 显示表空间的标识、名称、类型、内容和状态。 <br>list tablespace containers for [show detail] 显示用 指定的表空间的容器信息。 <br>quiesce tablespaces for table reset 将表空间的状态复位成正常（normal）。 </p>
<p>&#160;</p>
<p>连接性 </p>
<p>catalog [admin] node &#8230; 为协议 在节点目录中创建一项。 <br>list [admin] node directory 返回节点目录的内容。 <br>catalog database &#8230; 为数据库 在数据库目录中创建一项。 <br>list database directory [on ] 返回数据库目录的内容。 </p>
<p>&#160;</p>
<p>性能 </p>
<p>get monitor switches 返回会话监控开关的状态。 <br>update monitor switches using&nbsp; 为 设置会话监控开关的状态。 <br>reset monitor all 复位性能监控程序值。 <br>get snapshot for dbm 返回实例级别的性能信息。 <br>get snapshot for all on&nbsp; 为数据库 在数据库级别返回所有性能信息。 <br>get snapshot for dynamic sql on&nbsp; 返回动态 SQL 高速缓存的内容。 <br>runstats on table . 收集表 的统计信息。表名必须是用 全限定的。 <br>reorgchk on table all 确定是否需要对表进行重组。这对于对所有表自动执行 runstats 很有用。 <br>reorg table&nbsp; 通过重构行来消除&#8220;碎片&#8221;数据并压缩信息，对表进行重组。 </p>
<p>&#160;</p>
<p>管理 </p>
<p>export 将数据库数据抽取到一个平面文件中。 <br>import 通过使用 IMPORT 实用程序，将数据导入到数据库。 <br>load query table [to local-message-file][nosummary | summaryonly] [showdelta]&nbsp; 返回 LOAD 实用程序的进度。 <br>backup database [to ] 执行数据库备份。 <br>restore database [from ] 执行数据库恢复。 <br>get health snapshot for dbm 返回实例的正常快照信息（仅适用于 V8）。 <br>get health snapshot for all on&nbsp; 返回数据库 的所有正常快照（仅适用于 V8）。 </p>
<p>&#160;</p>
<p>管理服务器 </p>
<p>get admin cfg 返回管理服务器的配置设置。 <br>update admin cfg using&nbsp; 将管理服务器配置参数 更新为值 。</p>
<img src ="http://www.blogjava.net/linlin2005/aggbug/104211.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linlin2005/" target="_blank">lubaolin</a> 2007-03-16 12:58 <a href="http://www.blogjava.net/linlin2005/archive/2007/03/16/104211.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle维护常用SQL语句</title><link>http://www.blogjava.net/linlin2005/archive/2007/03/09/102819.html</link><dc:creator>lubaolin</dc:creator><author>lubaolin</author><pubDate>Fri, 09 Mar 2007 06:53:00 GMT</pubDate><guid>http://www.blogjava.net/linlin2005/archive/2007/03/09/102819.html</guid><wfw:comment>http://www.blogjava.net/linlin2005/comments/102819.html</wfw:comment><comments>http://www.blogjava.net/linlin2005/archive/2007/03/09/102819.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/linlin2005/comments/commentRss/102819.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linlin2005/services/trackbacks/102819.html</trackback:ping><description><![CDATA[1、查看表空间的名称及大小 <br>select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size <br>from dba_tablespaces t, dba_data_files d <br>where t.tablespace_name = d.tablespace_name <br>group by t.tablespace_name;
<p>2、查看表空间物理文件的名称及大小 <br>select tablespace_name, file_id, file_name, <br>round(bytes/(1024*1024),0) total_space <br>from dba_data_files <br>order by tablespace_name; </p>
<p>3、查看回滚段名称及大小 <br>select segment_name, tablespace_name, r.status, <br>(initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent, <br>max_extents, v.curext CurExtent <br>From dba_rollback_segs r, v$rollstat v <br>Where r.segment_id = v.usn(+) <br>order by segment_name ; </p>
<p>4、查看控制文件 <br>select name from v$controlfile; </p>
<p>5、查看日志文件 <br>select member from v$logfile; </p>
<p>6、查看表空间的使用情况 <br>select sum(bytes)/(1024*1024) as free_space,tablespace_name <br>from dba_free_space <br>group by tablespace_name; </p>
<p>SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE, <br>(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE" <br>FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C <br>WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME; </p>
<p>7、查看数据库库对象 <br>select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status; </p>
<p>8、查看数据库的版本　 <br>Select version FROM Product_component_version <br>Where SUBSTR(PRODUCT,1,6)='Oracle'; </p>
<p>9、查看数据库的创建日期和归档方式 <br>Select Created, Log_Mode, Log_Mode From V$Database; </p>
<p>10、捕捉运行很久的SQL <br>column username format a12 <br>column opname format a16 <br>column progress format a8 </p>
<p>select username,sid,opname, <br>round(sofar*100 / totalwork,0) || '%' as progress, <br>time_remaining,sql_text <br>from v$session_longops , v$sql <br>where time_remaining &lt;&gt; 0 <br>and sql_address = address <br>and sql_hash_value = hash_value <br>/ </p>
<p>11、查看数据表的参数信息 <br>SELECT partition_name, high_value, high_value_length, tablespace_name, <br>pct_free, pct_used, ini_trans, max_trans, initial_extent, <br>next_extent, min_extent, max_extent, pct_increase, FREELISTS, <br>freelist_groups, LOGGING, BUFFER_POOL, num_rows, blocks, <br>empty_blocks, avg_space, chain_cnt, avg_row_len, sample_size, <br>last_analyzed <br>FROM dba_tab_partitions <br>--WHERE table_name = :tname AND table_owner = :towner <br>ORDER BY partition_position </p>
<p>12、查看还没提交的事务 <br>select * from v$locked_object; <br>select * from v$transaction; </p>
<p>13、查找object为哪些进程所用 <br>select <br>p.spid, <br>s.sid, <br>s.serial# serial_num, <br>s.username user_name, <br>a.type object_type, <br>s.osuser os_user_name, <br>a.owner, <br>a.object object_name, <br>decode(sign(48 - command), <br>1, <br>to_char(command), 'Action Code #' || to_char(command) ) action, <br>p.program oracle_process, <br>s.terminal terminal, <br>s.program program, <br>s.status session_status <br>from v$session s, v$access a, v$process p <br>where s.paddr = p.addr and <br>s.type = 'USER' and <br>a.sid = s.sid and <br>a.object='SUBSCRIBER_ATTR' <br>order by s.username, s.osuser </p>
<p>14、回滚段查看 <br>select rownum, sys.dba_rollback_segs.segment_name Name, v$rollstat.extents <br>Extents, v$rollstat.rssize Size_in_Bytes, v$rollstat.xacts XActs, <br>v$rollstat.gets Gets, v$rollstat.waits Waits, v$rollstat.writes Writes, <br>sys.dba_rollback_segs.status status from v$rollstat, sys.dba_rollback_segs, <br>v$rollname where v$rollname.name(+) = sys.dba_rollback_segs.segment_name and <br>v$rollstat.usn (+) = v$rollname.usn order by rownum </p>
<p>15、耗资源的进程（top session） <br>select s.schemaname schema_name, decode(sign(48 - command), 1, <br>to_char(command), 'Action Code #' || to_char(command) ) action, status <br>session_status, s.osuser os_user_name, s.sid, p.spid , s.serial# serial_num, <br>nvl(s.username, '[Oracle process]') user_name, s.terminal terminal, <br>s.program program, st.value criteria_value from v$sesstat st, v$session s , v$process p <br>where st.sid = s.sid and st.statistic# = to_number('38') and ('ALL' = 'ALL' <br>or s.status = 'ALL') and p.addr = s.paddr order by st.value desc, p.spid asc, s.username asc, s.osuser asc </p>
<p>16、查看锁（lock）情况 <br>select /*+ RULE */ ls.osuser os_user_name, ls.username user_name, <br>decode(ls.type, 'RW', 'Row wait enqueue lock', 'TM', 'DML enqueue lock', 'TX', <br>'Transaction enqueue lock', 'UL', 'User supplied lock') lock_type, <br>o.object_name object, decode(ls.lmode, 1, null, 2, 'Row Share', 3, <br>'Row Exclusive', 4, 'Share', 5, 'Share Row Exclusive', 6, 'Exclusive', null) <br>lock_mode, o.owner, ls.sid, ls.serial# serial_num, ls.id1, ls.id2 <br>from sys.dba_objects o, ( select s.osuser, s.username, l.type, <br>l.lmode, s.sid, s.serial#, l.id1, l.id2 from v$session s, <br>v$lock l where s.sid = l.sid ) ls where o.object_id = ls.id1 and o.owner <br>&lt;&gt; 'SYS' order by o.owner, o.object_name </p>
<p>17、查看等待（wait）情况 <br>SELECT v$waitstat.class, v$waitstat.count count, SUM(v$sysstat.value) sum_value <br>FROM v$waitstat, v$sysstat WHERE v$sysstat.name IN ('db block gets', <br>'consistent gets') group by v$waitstat.class, v$waitstat.count </p>
<p>18、查看sga情况 <br>SELECT NAME, BYTES FROM SYS.V_$SGASTAT ORDER BY NAME ASC </p>
<p>19、查看catched object <br>SELECT owner, name, db_link, namespace, <br>type, sharable_mem, loads, executions, <br>locks, pins, kept FROM v$db_object_cache </p>
<p>20、查看V$SQLAREA <br>SELECT SQL_TEXT, SHARABLE_MEM, PERSISTENT_MEM, RUNTIME_MEM, SORTS, <br>VERSION_COUNT, LOADED_VERSIONS, OPEN_VERSIONS, USERS_OPENING, EXECUTIONS, <br>USERS_EXECUTING, LOADS, FIRST_LOAD_TIME, INVALIDATIONS, PARSE_CALLS, DISK_READS, <br>BUFFER_GETS, ROWS_PROCESSED FROM V$SQLAREA </p>
<p>21、查看object分类数量 <br>select decode (o.type#,1,'INDEX' , 2,'TABLE' , 3 , 'CLUSTER' , 4, 'VIEW' , 5 , <br>'SYNONYM' , 6 , 'SEQUENCE' , 'OTHER' ) object_type , count(*) quantity from <br>sys.obj$ o where o.type# &gt; 1 group by decode (o.type#,1,'INDEX' , 2,'TABLE' , 3 <br>, 'CLUSTER' , 4, 'VIEW' , 5 , 'SYNONYM' , 6 , 'SEQUENCE' , 'OTHER' ) union select <br>'COLUMN' , count(*) from sys.col$ union select 'DB LINK' , count(*) from </p>
<p>22、按用户查看object种类 <br>select u.name schema, sum(decode(o.type#, 1, 1, NULL)) indexes, <br>sum(decode(o.type#, 2, 1, NULL)) tables, sum(decode(o.type#, 3, 1, NULL)) <br>clusters, sum(decode(o.type#, 4, 1, NULL)) views, sum(decode(o.type#, 5, 1, <br>NULL)) synonyms, sum(decode(o.type#, 6, 1, NULL)) sequences, <br>sum(decode(o.type#, 1, NULL, 2, NULL, 3, NULL, 4, NULL, 5, NULL, 6, NULL, 1)) <br>others from sys.obj$ o, sys.user$ u where o.type# &gt;= 1 and u.user# = <br>o.owner# and u.name &lt;&gt; 'PUBLIC' group by u.name order by <br>sys.link$ union select 'CONSTRAINT' , count(*) from sys.con$ </p>
<p>23、有关connection的相关信息 <br>1）查看有哪些用户连接 <br>select s.osuser os_user_name, decode(sign(48 - command), 1, to_char(command), <br>'Action Code #' || to_char(command) ) action, p.program oracle_process, <br>status session_status, s.terminal terminal, s.program program, <br>s.username user_name, s.fixed_table_sequence activity_meter, '' query, <br>0 memory, 0 max_memory, 0 cpu_usage, s.sid, s.serial# serial_num <br>from v$session s, v$process p where s.paddr=p.addr and s.type = 'USER' <br>order by s.username, s.osuser <br>2）根据v.sid查看对应连接的资源占用等情况 <br>select n.name, <br>v.value, <br>n.class, <br>n.statistic# <br>from v$statname n, <br>v$sesstat v <br>where v.sid = 71 and <br>v.statistic# = n.statistic# <br>order by n.class, n.statistic# <br>3）根据sid查看对应连接正在运行的sql <br>select /*+ PUSH_SUBQ */ <br>command_type, <br>sql_text, <br>sharable_mem, <br>persistent_mem, <br>runtime_mem, <br>sorts, <br>version_count, <br>loaded_versions, <br>open_versions, <br>users_opening, <br>executions, <br>users_executing, <br>loads, <br>first_load_time, <br>invalidations, <br>parse_calls, <br>disk_reads, <br>buffer_gets, <br>rows_processed, <br>sysdate start_time, <br>sysdate finish_time, <br>'&gt;' || address sql_address, <br>'N' status <br>from v$sqlarea <br>where address = (select sql_address from v$session where sid = 71) </p>
<p>24、查询表空间使用情况select a.tablespace_name "表空间名称", <br>100-round((nvl(b.bytes_free,0)/a.bytes_alloc)*100,2) "占用率(%)", <br>round(a.bytes_alloc/1024/1024,2) "容量(M)", <br>round(nvl(b.bytes_free,0)/1024/1024,2) "空闲(M)", <br>round((a.bytes_alloc-nvl(b.bytes_free,0))/1024/1024,2) "使用(M)", <br>Largest "最大扩展段(M)", <br>to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') "采样时间" <br>from (select f.tablespace_name, <br>sum(f.bytes) bytes_alloc, <br>sum(decode(f.autoextensible,'YES',f.maxbytes,'NO',f.bytes)) maxbytes <br>from dba_data_files f <br>group by tablespace_name) a, <br>(select f.tablespace_name, <br>sum(f.bytes) bytes_free <br>from dba_free_space f <br>group by tablespace_name) b, <br>(select round(max(ff.length)*16/1024,2) Largest, <br>ts.name tablespace_name <br>from sys.fet$ ff, sys.file$ tf,sys.ts$ ts <br>where ts.ts#=ff.ts# and ff.file#=tf.relfile# and ts.ts#=tf.ts# <br>group by ts.name, tf.blocks) c <br>where a.tablespace_name = b.tablespace_name and a.tablespace_name = c.tablespace_name </p>
<p>25、 查询表空间的碎片程度 <br>select tablespace_name,count(tablespace_name) from dba_free_space group by tablespace_name <br>having count(tablespace_name)&gt;10; </p>
<p>alter tablespace name coalesce; <br>alter table name deallocate unused; </p>
<p>create or replace view ts_blocks_v as <br>select tablespace_name,block_id,bytes,blocks,'free space' segment_name from dba_free_space <br>union all <br>select tablespace_name,block_id,bytes,blocks,segment_name from dba_extents; </p>
<p>select * from ts_blocks_v; </p>
<p>select tablespace_name,sum(bytes),max(bytes),count(block_id) from dba_free_space <br>group by tablespace_name; </p>
<img src ="http://www.blogjava.net/linlin2005/aggbug/102819.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linlin2005/" target="_blank">lubaolin</a> 2007-03-09 14:53 <a href="http://www.blogjava.net/linlin2005/archive/2007/03/09/102819.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一些SQLSERVER函数</title><link>http://www.blogjava.net/linlin2005/archive/2007/03/09/102737.html</link><dc:creator>lubaolin</dc:creator><author>lubaolin</author><pubDate>Fri, 09 Mar 2007 01:23:00 GMT</pubDate><guid>http://www.blogjava.net/linlin2005/archive/2007/03/09/102737.html</guid><wfw:comment>http://www.blogjava.net/linlin2005/comments/102737.html</wfw:comment><comments>http://www.blogjava.net/linlin2005/archive/2007/03/09/102737.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/linlin2005/comments/commentRss/102737.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linlin2005/services/trackbacks/102737.html</trackback:ping><description><![CDATA[<p>1.字符串函数<br>长度与分析用<br>datalength(Char_expr)返回字符串包含字符数,但不包含后面的空格<br>substring(expression,start,length)不多说了,取子串<br>right(char_expr,int_expr)返回字符串右边int_expr个字符</p>
<p>字符操作类<br>upper(char_expr)转为大写<br>lower(char_expr)转为小写<br>space(int_expr)生成int_expr个空格<br>replicate(char_expr,int_expr)复制字符串int_expr次<br>reverse(char_expr)反转字符串<br>stuff(char_expr1,start,length,char_expr2)将字符串char_expr1中的从start开始的length个字符用char_expr2代替<br>ltrim(char_expr)rtrim(char_expr)取掉空格<br>ascii(char)char(ascii)两函数对应,取ascii码,根据ascii吗取字符</p>
<p>字符串查找<br>charindex(char_expr,expression)返回char_expr的起始位置<br>patindex("pattern",expression)返回指定模式的起始位置,否则为0</p>
<p>2.数学函数<br>abs(numeric_expr)求绝对值<br>ceiling(numeric_expr)取大于等于指定值的最小整数<br>exp(float_expr)取指数<br>floor(numeric_expr)小于等于指定值得最大整数<br>pi()3.1415926.........<br>power(numeric_expr,power)返回power次方<br>rand([int_expr])随机数产生器<br>round(numeric_expr,int_expr)安int_expr规定的精度四舍五入<br>sign(int_expr)根据正数,0,负数,,返回 1,0,-1<br>sqrt(float_expr)平方根</p>
<p>3.日期函数<br>getdate()返回日期<br>datename(datepart,date_expr)返回名称如June<br>datepart(datepart,date_expr)取日期一部份<br>datediff(datepart,date_expr1.dateexpr2)日期差<br>dateadd(datepart,number,date_expr)返回日期加上number</p>
<p>上述函数中datepart的<br>写法取值和意义<br>yy1753-9999年份<br>qq1-4刻<br>mm1-12月<br>dy1-366日<br>dd1-31日<br>wk1-54周<br>dw1-7周几<br>hh0-23小时<br>mi0-59分钟<br>ss0-59秒<br>ms0-999毫秒</p>
<p>日期转换<br>convert()</p>
<p>4.系统函数<br>suser_name()用户登录名<br>user_name()用户在数据库中的名字<br>user用户在数据库中的名字<br>show_role()对当前用户起作用的规则<br>db_name()数据库名<br>object_name(obj_id)数据库对象名<br>col_name(obj_id,col_id)列名<br>col_length(objname,colname)列长度<br>valid_name(char_expr)是否是有效标识符</p>
<img src ="http://www.blogjava.net/linlin2005/aggbug/102737.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linlin2005/" target="_blank">lubaolin</a> 2007-03-09 09:23 <a href="http://www.blogjava.net/linlin2005/archive/2007/03/09/102737.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>