﻿<?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-野草-随笔分类-oracle</title><link>http://www.blogjava.net/patterns/category/8269.html</link><description>离离原上草，一岁一枯荣。野火烧不尽，春风吹又生。
</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 10:21:43 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 10:21:43 GMT</pubDate><ttl>60</ttl><item><title>数据库查询的优化</title><link>http://www.blogjava.net/patterns/archive/2006/05/09/index_sql_optimize.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Tue, 09 May 2006 09:38:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/05/09/index_sql_optimize.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/45250.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/05/09/index_sql_optimize.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/45250.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/45250.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 索引使用的注意点																																																														1)      												合理使用索引																																														索引是数据库中重要的数据结构...&nbsp;&nbsp;<a href='http://www.blogjava.net/patterns/archive/2006/05/09/index_sql_optimize.html'>阅读全文</a><img src ="http://www.blogjava.net/patterns/aggbug/45250.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-05-09 17:38 <a href="http://www.blogjava.net/patterns/archive/2006/05/09/index_sql_optimize.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>（转）oracle系统表查询</title><link>http://www.blogjava.net/patterns/archive/2006/04/11/oracle_systable_query.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Tue, 11 Apr 2006 03:04:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/04/11/oracle_systable_query.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/40402.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/04/11/oracle_systable_query.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/40402.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/40402.html</trackback:ping><description><![CDATA[
		<p>
				<font size="2">摘自：</font>
				<a href="http://www.gbunix.com/htmldata/2004_06/2/5/article_53_1.html">
						<font size="2">http://www.gbunix.com/htmldata/2004_06/2/5/article_53_1.html</font>
				</a>
				<br />
				<br />
				<font size="2">数据字典dict总是属于Oracle用户sys的。 <br />　　1、用户： <br />　　　select username from dba_users; <br />　　改口令 <br />　　　alter user spgroup identified by spgtest; <br />　　2、表空间： <br />　　　select * from dba_data_files; <br />　　　select * from dba_tablespaces;//表空间 </font>
		</p>
		<p>
				<font size="2">　　　select tablespace_name,sum(bytes), sum(blocks) <br />　　　　from dba_free_space group by tablespace_name;//空闲表空间 </font>
		</p>
		<p>
				<font size="2">　　　select * from dba_data_files <br />　　　　where tablespace_name='RBS';//表空间对应的数据文件 </font>
		</p>
		<p>
				<font size="2">　　　select * from dba_segments <br />　　　　where tablespace_name='INDEXS'; <br />　　3、数据库对象： <br />　　　select * from dba_objects; <br />　　　CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、 <br />　　　PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。 <br />　　4、表： <br />　　　select * from dba_tables; <br />　　　analyze my_table compute statistics;-&gt;dba_tables后6列 <br />　　　select extent_id,bytes from dba_extents <br />　　　where segment_name='CUSTOMERS' and segment_type='TABLE' <br />　　　order by extent_id;//表使用的extent的信息。segment_type='ROLLBACK'查看回滚段的空间分配信息 <br />　　　列信息：<br />             &lt;1&gt;.<br />　　　　select distinct table_name <br />　　　　from user_tab_columns <br />　　　　where column_name='SO_TYPE_ID'; <br />            &lt;2&gt;.<br />                 <font style="BACKGROUND-COLOR: #ffffff">查询表的列名、注释、类型、长度<br />                  select a.table_name,a.COLUMN_NAME,b.COMMENTS,a.DATA_TYPE,a.DATA_LENGTH<br />                  from user_tab_columns a,user_col_comments b<br />                  where a.table_NAME = b.table_NAME<br />                        and a.COLUMN_NAME = b.COLUMN_NAME<br />                        and a.TABLE_NAME = 'table_name';<br /></font>            <br />　　5、索引：　 <br />　　　select * from dba_indexes;//索引，包括主键索引 <br />　　　select * from dba_ind_columns;//索引列 <br />　　　select i.index_name,i.uniqueness,c.column_name <br />　　　　from user_indexes i,user_ind_columns c <br />　　　　　where i.index_name=c.index_name <br />　　　　　and i.table_name ='ACC_NBR';//联接使用 <br />　　6、序列： <br />　　　select * from dba_sequences; <br />　　7、视图： <br />　　　select * from dba_views; <br />　　　select * from all_views; <br />　　text 可用于查询视图生成的脚本 <br />　　8、聚簇： <br />　　　select * from dba_clusters; <br />　　9、快照： <br />　　　select * from dba_snapshots; <br />　　快照、分区应存在相应的表空间。 <br />　　10、同义词： <br />　　　select * from dba_synonyms <br />　　　　where table_owner='SPGROUP'; <br />　　　　//if owner is PUBLIC,then the synonyms is a public synonym. <br />　　　　　if owner is one of users,then the synonyms is a private synonym. <br />　　11、数据库链： <br />　　　select * from dba_db_links; <br />　　在spbase下建数据库链 <br />　　　create database link dbl_spnew <br />　　　connect to spnew identified by spnew using 'jhhx'; <br />　　　insert into </font>
				<a href="mailto:acc_nbr@dbl_spnew">
						<font size="2">acc_nbr@dbl_spnew</font>
				</a>
				<font size="2">
						<br />　　　select * from acc_nbr where nxx_nbr='237' and line_nbr='8888'; <br />　　12、触发器： <br />　　　select * from dba_trigers; <br />　　存储过程，函数从dba_objects查找。 <br />　　其文本：select text from user_source where name='BOOK_SP_EXAMPLE'; <br />　　建立出错：select * from user_errors; <br />　　oracle总是将存储过程，函数等软件放在SYSTEM表空间。 <br />　　13、约束： <br />　　（1）约束是和表关联的，可在create table或alter table table_name add/drop/modify来建立、修改、删除约束。 <br />　　可以临时禁止约束，如： <br />　　　alter table book_example <br />　　　disable constraint book_example_1; <br />　　　alter table book_example <br />　　　enable constraint book_example_1; <br />　　（2）主键和外键被称为表约束，而not null和unique之类的约束被称为列约束。通常将主键和外键作为单独的命名约束放在字段列表下面，而列约束可放在列定义的同一行，这样更具有可读性。 <br />　　（3）列约束可从表定义看出，即describe;表约束即主键和外键，可从dba_constraints和dba_cons_columns 查。 <br />　　　select * from user_constraints <br />　　　where table_name='BOOK_EXAMPLE'; <br />　　　select owner,CONSTRAINT_NAME,TABLE_NAME <br />　　　　from user_constraints <br />　　　　where constraint_type='R' <br />　　　　order by table_name; <br />　　（4）定义约束可以无名（系统自动生成约束名）和自己定义约束名（特别是主键、外键） <br />　　如：create table book_example <br />　　　　(identifier number not null); <br />　　　　create table book_example <br />　　　　(identifier number constranit book_example_1 not null); <br />　　14、回滚段： <br />　　在所有的修改结果存入磁盘前，回滚段中保持恢复该事务所需的全部信息，必须以数据库发生的事务来相应确定其大小（DML语句才可回滚，create,drop,truncate等DDL不能回滚）。 <br />　　回滚段数量=并发事务/4，但不能超过50；使每个回滚段大小足够处理一个完整的事务； <br />　　　create rollback segment r05 <br />　　　tablespace rbs; <br />　　　create rollback segment rbs_cvt <br />　　　tablespace rbs <br />　　　storage(initial 1M next 500k); <br />　　使回滚段在线 <br />　　　alter rollback segment r04 online; <br />　　用dba_extents,v$rollback_segs监测回滚段的大小和动态增长。 <br />　　回滚段的区间信息 <br />　　　select * from dba_extents <br />　　　where segment_type='ROLLBACK' and segment_name='RB1'; <br />　　回滚段的段信息,其中bytes显示目前回滚段的字节数 <br />　　　select * from dba_segments <br />　　　　where segment_type='ROLLBACK' and segment_name='RB1'; <br />　　为事物指定回归段 <br />　　　set transaction use rollback segment rbs_cvt <br />　　针对bytes可以使用回滚段回缩。 <br />　　　alter rollback segment rbs_cvt shrink; <br />　　　select bytes,extents,max_extents from dba_segments <br />　　　　where segment_type='ROLLBACK' and segment_name='RBS_CVT'; <br />　　回滚段的当前状态信息： <br />　　　select * from dba_rollback_segs <br />　　　　where segment_name='RB1'; <br />　　比多回滚段状态status，回滚段所属实例instance_num <br />　　查优化值optimal <br />　　　select n.name,s.optsize <br />　　　　from v$rollname n,v$rollstat s <br />　　　　　where n.usn=s.usn; <br />　　回滚段中的数据 <br />　　　set transaction use rollback segment rb1;/*回滚段名*/ <br />　　　select n.name,s.writes <br />　　　　from v$rollname n,v$rollstat s <br />　　　　　where n.usn=s.usn; <br />　　当事务处理完毕，再次查询$rollstat，比较writes(回滚段条目字节数)差值，可确定事务的大小。 <br />　　查询回滚段中的事务 <br />　　　column rr heading 'RB Segment' format a18 <br />　　　column us heading 'Username' format a15 <br />　　　column os heading 'Os User' format a10 <br />　　　column te heading 'Terminal' format a10 <br />　　　select r.name rr,nvl(s.username,'no transaction') us,s.osuser os,s.terminal te <br />　　　　from v$lock l,v$session s,v$rollname r <br />　　　　　where l.sid=s.sid(+) <br />　　　　　and trunc(l.id1/65536)=R.USN <br />　　　　　and l.type='TX' <br />　　　　　and l.lmode=6 <br />　　　order by r.name; <br />　　15、作业 <br />　　查询作业信息 <br />　　　select job,broken,next_date,interval,what from user_jobs; <br />　　　select job,broken,next_date,interval,what from dba_jobs; <br />　　查询正在运行的作业 <br />　　　select * from dba_jobs_running; <br />　　使用包exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (10/(24*60*60))')加入作业。间隔10秒钟 <br />    exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (11/(24*60))')加入作业。间隔11分钟使用包exec dbms_job.remove(21)删除21号作业。<br /></font>
		</p>
<img src ="http://www.blogjava.net/patterns/aggbug/40402.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-04-11 11:04 <a href="http://www.blogjava.net/patterns/archive/2006/04/11/oracle_systable_query.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个数据库软编码的问题</title><link>http://www.blogjava.net/patterns/archive/2006/03/08/orcleCoding.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Wed, 08 Mar 2006 13:28:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/03/08/orcleCoding.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/34364.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/03/08/orcleCoding.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/34364.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/34364.html</trackback:ping><description><![CDATA[<P><FONT size=2>在java中我们经常使用一下语法</FONT></P>
<P><FONT size=2>......<BR>String exSQL = " SELECT * FROM PK_TEST WHERE ID = ?";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>pstmt = conn.prepareStatement(exSQL);<BR>pstmt.setString(1,idValue);<BR>ResultSet rs = pstmt.executeQuery();<BR>......</FONT></P>
<P><FONT size=2>其中PK_TEST结构如下：</FONT></P>
<P><FONT size=2>CREATE TABLE PK_TEST ( <BR>&nbsp; <STRONG>ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CHAR (9)</STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOT NULL, <BR>&nbsp; NAME&nbsp;&nbsp;&nbsp; VARCHAR2 (40), <BR>&nbsp; GENDER&nbsp; CHAR (1), <BR>&nbsp; CONSTRAINT PK_PK_TEST<BR>&nbsp; PRIMARY KEY ( ID ) ) ; <BR>注意：ID是CHAR (9)</FONT></P>
<P><FONT size=2>在表中插入测试数据：<BR>INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ', 'test1', '1'); <BR>INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ', 'test2', '0'); <BR>INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ', 'test3', '1'); <BR>INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('123456789', 'test4', '0'); <BR>INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('987654321', 'test5', '1'); </FONT></P>
<P><FONT size=2>使用Toad执行:<BR>SELECT * FROM PK_TEST WHERE ID ='1';<BR>SELECT * FROM PK_TEST WHERE ID ='1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ';</FONT></P>
<P><FONT size=2>都没有问题，但如果我将前面java语法pstmt.setString(1,idValue);中的idValue赋值为'1'，程序就是取不到值；<BR>继续测试：<BR>SELECT * FROM PK_TEST WHERE ID = :ID;<BR>赋值为'1'，没有结果；<BR>赋值为'1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '，结果出来了；</FONT></P>
<P><FONT size=2>可见无论在jdbc还是在数据库中软编码和硬编码有一定的区别。</FONT></P>
<P><FONT size=2>唉！整理数据库中的主键吧：ID = SUBSTR(TRIM(ID)||'000000000',0,9);<BR></FONT></P><img src ="http://www.blogjava.net/patterns/aggbug/34364.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-03-08 21:28 <a href="http://www.blogjava.net/patterns/archive/2006/03/08/orcleCoding.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE 9i 数据库实例的启动</title><link>http://www.blogjava.net/patterns/archive/2006/03/08/ORACLE9i_startup_shutdown.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Wed, 08 Mar 2006 13:26:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/03/08/ORACLE9i_startup_shutdown.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/34363.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/03/08/ORACLE9i_startup_shutdown.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/34363.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/34363.html</trackback:ping><description><![CDATA[<P><FONT size=2>在windows2000平台上，安装完ORACLE 9i，系统服务中有ORACLE 9i的服务，可以对其进行：启动、停止和重启的操作，但实际上ORACLE 9i 数据库实例是不听其控制的，必须通过以下的语法才能控制ORACLE 9i 数据库实例的启动和停止：</FONT></P>
<P><FONT size=2>sqlplus /nolog<BR>connect </FONT><A href="mailto:system/manager@SID"><FONT size=2>system/manager@SID</FONT></A><FONT size=2> as sysdba<BR>startup<BR>shutdown</FONT></P><img src ="http://www.blogjava.net/patterns/aggbug/34363.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-03-08 21:26 <a href="http://www.blogjava.net/patterns/archive/2006/03/08/ORACLE9i_startup_shutdown.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>