當(dāng)前位置:首頁(yè)>>開(kāi)發(fā)編程>>數(shù)據(jù)庫(kù)>>新聞內(nèi)容
ORACLE常用傻瓜問(wèn)題1000問(wèn)(之四)
作者:CCBZZP 發(fā)布時(shí)間:2003-10-16 22:33:04 文章來(lái)源:CSDN
       大家在應(yīng)用ORACLE的時(shí)候可能會(huì)遇到很多看起來(lái)不難的問(wèn)題, 特別對(duì)新手來(lái)說(shuō), 今天我簡(jiǎn)單把它總結(jié)一下, 發(fā)布給大家, 希望對(duì)大家有幫助! 和大家一起探討, 共同進(jìn)步!

 

        對(duì)ORACLE高手來(lái)說(shuō)是不用看的.

 

   虛擬字段
133. CURRVAL 和 nextval
   為表創(chuàng)建序列
   CREATE SEQUENCE EMPSEQ ... ;
   SELECT empseq.currval FROM DUAL ;
   自動(dòng)插入序列的數(shù)值
   INSERT INTO emp
        VALUES (empseq.nextval, 'LEWIS', 'CLERK',
                7902, SYSDATE, 1200, NULL, 20) ;

134. ROWNUM
   按設(shè)定排序的行的序號(hào)
   SELECT * FROM emp WHERE ROWNUM < 10 ;

135. ROWID
   返回行的物理地址
   SELECT ROWID, ename FROM emp  WHERE deptno = 20 ;

136. 將N秒轉(zhuǎn)換為時(shí)分秒格式?
   set serverout on
   declare
   N number := 1000000;
   ret varchar2(100);
   begin
   ret := trunc(n/3600) || '小時(shí)' || to_char(to_date(mod(n,3600),'sssss'),'fmmi"分   "ss"秒"') ;
   dbms_output.put_line(ret);
   end;

137. 如何查詢做比較大的排序的進(jìn)程?
   SELECT b.tablespace, b.segfile#, b.segblk#, b.blocks, a.sid, a.serial#,
   a.username, a.osuser, a.status
   FROM v$session a,v$sort_usage b
   WHERE a.saddr = b.session_addr
   ORDER BY b.tablespace, b.segfile#, b.segblk#, b.blocks ;

138. 如何查詢做比較大的排序的進(jìn)程的SQL語(yǔ)句?
   select /*+ ORDERED */ sql_text from v$sqltext a
   where a.hash_value = (
   select sql_hash_value from v$session b
   where b.sid = &sid and b.serial# = &serial)
   order by piece asc ;

139. 如何查找重復(fù)記錄?
   SELECT * FROM TABLE_NAME
   WHERE ROWID!=(SELECT MAX(ROWID) FROM TABLE_NAME D
   WHERE TABLE_NAME.COL1=D.COL1 AND TABLE_NAME.COL2=D.COL2);

140. 如何刪除重復(fù)記錄?
   DELETE FROM TABLE_NAME
   WHERE ROWID!=(SELECT MAX(ROWID) FROM TABLE_NAME D
   WHERE TABLE_NAME.COL1=D.COL1 AND TABLE_NAME.COL2=D.COL2);

141. 如何快速編譯所有視圖?
   SQL >SPOOL VIEW1.SQL
   SQL >SELECT ‘ALTER VIEW ‘||TNAME||’
   COMPILE;’ FROM TAB;
   SQL >SPOOL OFF
   然后執(zhí)行VIEW1.SQL即可。
   SQL >@VIEW1.SQL;

142. ORA-01555 SNAPSHOT TOO OLD的解決辦法
   增加MINEXTENTS的值,增加區(qū)的大小,設(shè)置一個(gè)高的OPTIMAL值。

143. 事務(wù)要求的回滾段空間不夠,表現(xiàn)為表空間用滿(ORA-01560錯(cuò)誤),回滾段擴(kuò)展到達(dá)參數(shù)      MAXEXTENTS的值(ORA-01628)的解決辦法.
   向回滾段表空間添加文件或使已有的文件變大;增加MAXEXTENTS的值。

144. 如何加密ORACLE的存儲(chǔ)過(guò)程?
    下列存儲(chǔ)過(guò)程內(nèi)容放在AA.SQL文件中
    create or replace procedure testCCB(i in number) as
    begin
    dbms_output.put_line('輸入?yún)?shù)是'||to_char(i));
    end;

    SQL>wrap iname=a.sql;
    PL/SQL Wrapper: Release 8.1.7.0.0 - Production on Tue Nov 27 22:26:48 2001
    Copyright (c) Oracle Corporation 1993, 2000.  All Rights Reserved.
    Processing AA.sql to AA.plb
    運(yùn)行AA.plb
    SQL> @AA.plb ;

145. 如何監(jiān)控事例的等待?
   select event,sum(decode(wait_Time,0,0,1)) "Prev",
   sum(decode(wait_Time,0,1,0)) "Curr",count(*) "Tot"
   from v$session_Wait
   group by event order by 4;

146. 如何回滾段的爭(zhēng)用情況?
   select name, waits, gets, waits/gets "Ratio"
   from v$rollstat C, v$rollname D
   where C.usn = D.usn;

147. 如何監(jiān)控表空間的 I/O 比例?
   select B.tablespace_name name,B.file_name "file",A.phyrds pyr,
   A.phyblkrd pbr,A.phywrts pyw, A.phyblkwrt pbw
   from v$filestat A, dba_data_files B
   where A.file# = B.file_id
   order by B.tablespace_name;

148. 如何監(jiān)控文件系統(tǒng)的 I/O 比例?
   select substr(C.file#,1,2) "#", substr(C.name,1,30) "Name",
   C.status, C.bytes, D.phyrds, D.phywrts
   from v$datafile C, v$filestat D
   where C.file# = D.file#;

149. 如何在某個(gè)用戶下找所有的索引?
   select user_indexes.table_name, user_indexes.index_name,uniqueness, column_name
   from user_ind_columns, user_indexes
   where user_ind_columns.index_name = user_indexes.index_name
   and user_ind_columns.table_name = user_indexes.table_name
   order by user_indexes.table_type, user_indexes.table_name,
   user_indexes.index_name, column_position;

150. 如何監(jiān)控 SGA 的命中率?
   select a.value + b.value "logical_reads", c.value "phys_reads",
   round(100 * ((a.value+b.value)-c.value) / (a.value+b.value)) "BUFFER HIT RATIO"
   from v$sysstat a, v$sysstat b, v$sysstat c
   where a.statistic# = 38 and b.statistic# = 39
   and c.statistic# = 40;

151. 如何監(jiān)控 SGA 中字典緩沖區(qū)的命中率?
   select parameter, gets,Getmisses , getmisses/(gets+getmisses)*100 "miss ratio",
   (1-(sum(getmisses)/ (sum(gets)+sum(getmisses))))*100 "Hit ratio"
   from v$rowcache
   where gets+getmisses <>0
   group by parameter, gets, getmisses;

152. 如何監(jiān)控 SGA 中共享緩存區(qū)的命中率,應(yīng)該小于1% ?
   select sum(pins) "Total Pins", sum(reloads) "Total Reloads",
   sum(reloads)/sum(pins) *100 libcache
   from v$librarycache;

   select sum(pinhits-reloads)/sum(pins) "hit radio",sum(reloads)/sum(pins)    "reload percent"
   from v$librarycache;

153. 如何顯示所有數(shù)據(jù)庫(kù)對(duì)象的類別和大小?
   select count(name) num_instances ,type ,sum(source_size) source_size ,
   sum(parsed_size) parsed_size ,sum(code_size) code_size ,sum(error_size)    error_size,
   sum(source_size) +sum(parsed_size) +sum(code_size) +sum(error_size)    size_required
   from dba_object_size
   group by type order by 2;

154. 監(jiān)控 SGA 中重做日志緩存區(qū)的命中率,應(yīng)該小于1%
   SELECT name, gets, misses, immediate_gets, immediate_misses,
   Decode(gets,0,0,misses/gets*100) ratio1,
   Decode(immediate_gets+immediate_misses,0,0,
   immediate_misses/(immediate_gets+immediate_misses)*100) ratio2
   FROM v$latch WHERE name IN ('redo allocation', 'redo copy');

155. 監(jiān)控內(nèi)存和硬盤的排序比率,最好使它小于 .10,增加 sort_area_size
   SELECT name, value FROM v$sysstat WHERE name IN ('sorts (memory)', 'sorts      (disk)');


156. 如何監(jiān)控當(dāng)前數(shù)據(jù)庫(kù)誰(shuí)在運(yùn)行什么SQL語(yǔ)句?
   SELECT osuser, username, sql_text from v$session a, v$sqltext b
   where a.sql_address =b.address order by address, piece;

157. 如何監(jiān)控字典緩沖區(qū)?
   SELECT (SUM(PINS - RELOADS)) / SUM(PINS) "LIB CACHE" FROM V$LIBRARYCACHE;
   SELECT (SUM(GETS - GETMISSES - USAGE - FIXED)) / SUM(GETS) "ROW CACHE" FROM    V$ROWCACHE;
   SELECT SUM(PINS) "EXECUTIONS", SUM(RELOADS) "CACHE MISSES WHILE EXECUTING" FROM    V$LIBRARYCACHE;
   后者除以前者,此比率小于1%,接近0%為好。

   SELECT SUM(GETS) "DICTIONARY GETS",SUM(GETMISSES) "DICTIONARY CACHE GET MISSES"
   FROM V$ROWCACHE


158. 監(jiān)控 MTS
   select busy/(busy+idle) "shared servers busy" from v$dispatcher;
   此值大于0.5時(shí),參數(shù)需加大
   select sum(wait)/sum(totalq) "dispatcher waits" from v$queue where    type='dispatcher';
   select count(*) from v$dispatcher;
   select servers_highwater from v$mts;
   servers_highwater接近mts_max_servers時(shí),參數(shù)需加大

159. 如何知道當(dāng)前用戶的ID號(hào)?
    SQL>SHOW USER;
    OR
    SQL>select user from dual;

160. 如何查看碎片程度高的表?
   SELECT segment_name table_name , COUNT(*) extents
   FROM dba_segments WHERE owner NOT IN ('SYS', 'SYSTEM') GROUP BY segment_name
   HAVING COUNT(*) = (SELECT MAX( COUNT(*) ) FROM dba_segments GROUP BY       segment_name);

162. 如何知道表在表空間中的存儲(chǔ)情況?
   select segment_name,sum(bytes),count(*) ext_quan from dba_extents where
   tablespace_name='&tablespace_name' and segment_type='TABLE' group by       tablespace_name,segment_name;

163. 如何知道索引在表空間中的存儲(chǔ)情況?
   select segment_name,count(*) from dba_extents where segment_type='INDEX' and       owner='&owner'
   group by segment_name;

164、如何知道使用CPU多的用戶session?
   11是cpu used by this session

   select a.sid,spid,status,substr(a.program,1,40)       prog,a.terminal,osuser,value/60/100 value
   from v$session a,v$process b,v$sesstat c
   where c.statistic#=11 and c.sid=a.sid and a.paddr=b.addr order by value desc;

165. 如何知道監(jiān)聽(tīng)器日志文件?
   以8I為例
   $ORACLE_HOME/NETWORK/LOG/LISTENER.LOG

166. 如何知道監(jiān)聽(tīng)器參數(shù)文件?
   以8I為例
   $ORACLE_HOME/NETWORK/ADMIN/LISTENER.ORA

167. 如何知道TNS 連接文件?
   以8I為例
   $ORACLE_HOME/NETWORK/ADMIN/TNSNAMES.ORA

168. 如何知道Sql*Net 環(huán)境文件?
   以8I為例
   $ORACLE_HOME/NETWORK/ADMIN/SQLNET.ORA

169. 如何知道警告日志文件?
   以8I為例
   $ORACLE_HOME/ADMIN/SID/BDUMP/SIDALRT.LOG

170. 如何知道基本結(jié)構(gòu)?
   以8I為例
   $ORACLE_HOME/RDBMS/ADMIN/STANDARD.SQL

171. 如何知道建立數(shù)據(jù)字典視圖?
   以8I為例
   $ORACLE_HOME/RDBMS/ADMIN/CATALOG.SQL

172. 如何知道建立審計(jì)用數(shù)據(jù)字典視圖?
   以8I為例
   $ORACLE_HOME/RDBMS/ADMIN/CATAUDIT.SQL

173. 如何知道建立快照用數(shù)據(jù)字典視圖?
   以8I為例
   $ORACLE_HOME/RDBMS/ADMIN/CATSNAP.SQL


   待續(xù)...


最新更新
·SQL Server 2005刪除用戶失敗
·SQL Server中刪除重復(fù)數(shù)據(jù)的
·經(jīng)典SQL語(yǔ)句大全
·SQL Server 2005與ASP.NET/A
·三種查看MySQL數(shù)據(jù)庫(kù)版本的方
·SQL Server 2005 Express 遠(yuǎn)
·啟用SQL Server 2005 Expres
·Windows下如何安裝或卸載MyS
·解決MySQL5數(shù)據(jù)庫(kù)連接超時(shí)問(wèn)
·清除SQL Server日志的兩種方
相關(guān)信息
·2008主流數(shù)據(jù)庫(kù)產(chǎn)品回顧與展望
·安裝Oracle后配置和啟動(dòng)企業(yè)管理器的方法
·簡(jiǎn)單介紹Oracle 9i的16種數(shù)據(jù)類型
·如何在Oracle中導(dǎo)入dmp數(shù)據(jù)庫(kù)文件
·把Oracle查詢轉(zhuǎn)換為SQL Server
·輕松修改Oracle數(shù)據(jù)庫(kù)表的大小
·實(shí)例講解Oracle里抽取隨機(jī)數(shù)的多種方法
·Oracle在Linux操作系統(tǒng)下的安裝小結(jié)
·用Oracle8i修復(fù)數(shù)據(jù)庫(kù)壞塊的三種方法
·在Oracle中導(dǎo)出、導(dǎo)入dmp數(shù)據(jù)庫(kù)文件
畫心
愚愛(ài)
偏愛(ài)
火苗
白狐
畫沙
犯錯(cuò)
歌曲
傳奇
稻香
小酒窩
獅子座
小情歌
全是愛(ài)
棉花糖
海豚音
我相信
甩蔥歌
這叫愛(ài)
shero
走天涯
琉璃月
Nobody
我愛(ài)他
套馬桿
愛(ài)是你我
最后一次
少女時(shí)代
灰色頭像
斷橋殘雪
美了美了
狼的誘惑
我很快樂(lè)
星月神話
心痛2009
愛(ài)丫愛(ài)丫
半城煙沙
旗開(kāi)得勝
郎的誘惑
愛(ài)情買賣
2010等你來(lái)
我叫小沈陽(yáng)
i miss you
姑娘我愛(ài)你
我們都一樣
其實(shí)很寂寞
我愛(ài)雨夜花
變心的玫瑰
犀利哥之歌
你是我的眼
你是我的OK繃
貝多芬的悲傷
哥只是個(gè)傳說(shuō)
丟了幸福的豬
找個(gè)人來(lái)愛(ài)我
要嫁就嫁灰太狼
如果這就是愛(ài)情
我們沒(méi)有在一起
寂寞在唱什么歌
斯琴高麗的傷心
別在我離開(kāi)之前離開(kāi)
不是因?yàn)榧拍畔肽?/a>
愛(ài)上你等于愛(ài)上了錯(cuò)
在心里從此永遠(yuǎn)有個(gè)你
一個(gè)人的寂寞兩個(gè)人的錯(cuò)