大家在應用oracle的時候可能會遇到很多看起來不難的問題, 特別對新手來說, 今天我簡單把它總結一下, 發布給大家, 希望對大家有幫助! 和大家一起探討, 共同進步! 
對oracle高手來說是不用看的. 
1. oracle安裝完成后的初始口令? 
  internal/oracle 
  sys/change_on_install 
  system/manager 
  scott/tiger 
  sysman/oem_temp 
2. oracle9ias web cache的初始默認用戶和密碼? 
  administrator/administrator 
3. oracle 8.0.5怎幺創建數據庫? 
  用orainst。如果有motif界面,可以用orainst /m 
4. oracle 8.1.7怎幺創建數據庫? 
  dbassist 
5. oracle 9i 怎幺創建數據庫? 
  dbca 
6. oracle中的裸設備指的是什幺? 
 裸設備就是繞過文件系統直接訪問的儲存空間 
7. oracle如何區分 64-bit/32bit 版本??? 
$ sqlplus '/ as sysdba' 
sql*plus: release 9.0.1.0.0 - production on mon jul 14 17:01:09 2003 
(c) copyright 2001 oracle corporation. all rights reserved. 
connected to: 
oracle9i enterprise edition release 9.0.1.0.0 - production 
with the partitioning option 
jserver release 9.0.1.0.0 - production 
sql> select * from v$version; 
banner 
---------------------------------------------------------------- 
oracle9i enterprise edition release 9.0.1.0.0 - production 
pl/sql release 9.0.1.0.0 - production 
core 9.0.1.0.0 production 
tns for solaris: version 9.0.1.0.0 - production 
nlsrtl version 9.0.1.0.0 - production 
sql> 
8. svrmgr什幺意思? 
svrmgrl,server manager. 
9i下沒有,已經改為用sqlplus了 
sqlplus /nolog 
變為歸檔日志型的 
9. 請問如何分辨某個用戶是從哪臺機器登陸oracle的? 
select machine , terminal from v$session; 
10. 用什幺語句查詢字段呢? 
desc table_name 可以查詢表的結構 
select field_name,... from ... 可以查詢字段的值 
select * from all_tables where table_name like '%' 
select * from all_tab_columns where table_name='??' 
11. 怎樣得到觸發器、過程、函數的創建腳本? 
desc user_source 
user_triggers 
12. 怎樣計算一個表占用的空間的大小? 
select owner,table_name, 
num_rows, 
blocks*aaa/1024/1024 "size m", 
empty_blocks, 
last_analyzed 
from dba_tables 
where table_name='xxx'; 
here: aaa is the value of db_block_size ; 
xxx is the table name you want to check 
13. 如何查看最大會話數? 
select * from v$parameter where name like 'proc%'; 
sql> 
sql> show parameter processes 
name type value 
------------------------------------ ------- ------------------------------ 
aq_tm_processes integer 1 
db_writer_processes integer 1 
job_queue_processes integer 4 
log_archive_max_processes integer 1 
processes integer 200 
這里為200個用戶。 
select * from v$license; 
其中sessions_highwater紀錄曾經到達的最大會話數 
14. 如何查看系統被鎖的事務時間? 
select * from v$locked_object ; 
15. 如何以archivelog的方式運行oracle。 
init.ora 
log_archive_start = true 
restart database 
16. 怎幺獲取有哪些用戶在使用數據庫 
select username from v$session; 
17. 數據表中的字段最大數是多少? 
表或視圖中的最大列數為 1000 
18. 怎樣查得數據庫的sid ? 
select name from v$database; 
也可以直接查看 init.ora文件 
19. 如何在oracle服務器上通過sqlplus查看本機ip地址 ? 
select sys_context('userenv','ip_address') from dual; 
如果是登陸本機數據庫,只能返回127.0.0.1,呵呵 
20. unix 下怎幺調整數據庫的時間? 
su -root 
date -u 08010000 
21. 在oracle table中如何抓取memo類型字段為空的資料記錄? 
select remark from oms_flowrec where trim(' ' from remark) is not null ; 
22. 如何用bbb表的資料去更新aaa表的資料(有關聯的字段) 
update aaa set bns_snm=(select bns_snm from bbb where aaa.dpt_no=bbb.dpt_no) where bbb.dpt_no is not null; 
23. p4計算機安裝方法 
將symcjit.dll改為sysmcjit.old 
24. 何查詢server是不是ops? 
  select * from v$option; 
  如果parallel server=true則有ops能 
25. 何查詢每個用戶的權限? 
  select * from dba_sys_privs; 
26. 如何將表移動表空間? 
 alter table table_name move tablespace_name; 
27. 如何將索引移動表空間? 
  alter index index_name rebuild tablespace tablespace_name; 
28. 在linux,unix下如何激活dba studio? 
  oemapp dbastudio 
29. 查詢鎖的狀況的對象有? 
  v$lock, v$locked_object, v$session, v$sqlarea, v$process ; 
  查詢鎖的表的方法: 
select s.sid session_id, s.username, decode(lmode, 0, 'none', 1, 'null', 2, 'row-s (ss)', 3, 'row-x (sx)', 4, 'share', 5, 's/row-x (ssx)', 6, 'exclusive', to_char(lmode)) mode_held, decode(request, 0, 'none', 1, 'null', 2, 'row-s (ss)', 3, 'row-x (sx)', 4, 'share', 5, 's/row-x (ssx)', 6, 'exclusive', to_char(request)) mode_requested, o.owner||'.'||o.object_name||' ('||o.object_type||')', s.type lock_type, l.id1 lock_id1, l.id2 lock_id2 from v$lock l, sys.dba_objects o, v$session s where l.sid = s.sid and l.id1 = o.object_id ; 
30. 如何解鎖? 
  alter system kill session ‘sid,serir#’; 
31. sqlplus下如何修改編輯器? 
define _editor="<編輯器的完整路經>" -- 必須加上雙引號 
來定義新的編輯器,也可以把這個寫在$oracle_home/sqlplus/admin/glogin.sql里面使它永久有效。 
32. oracle產生隨機函數是? 
  dbms_random.random 
33. linux下查詢磁盤競爭狀況命令? 
  sar -d 
33. linux下查詢cpu競爭狀況命令? 
  sar  -r 
34. 查詢當前用戶對象? 
  select * from user_objects; 
  select * from dba_segments; 
35. 如何獲取錯誤信息? 
  select * from user_errors; 
36. 如何獲取鏈接狀況? 
  select * from dba_db_links; 
37. 查看數據庫字符狀況? 
  select * from nls_database_parameters; 
  select * from v$nls_parameters; 
38. 查詢表空間信息? 
  select * from dba_data_files; 
39. oracle的interal用戶要口令? 
  修改 sqlnet.ora 
  sqlnet.authentication_services=(nts) 
40. 出現java.exe的解決辦法? 
  一般是將oracleorahomexihttpserver改成手工激活可以的 
  x是8或9 
41. 如何給表、列加注釋? 
sql>comment on table 表 is '表注釋'; 
注釋已創建。 
sql>comment on column 表.列 is '列注釋'; 
注釋已創建。 
sql> select * from user_tab_comments where comments is not null; 
42. 如何查看各個表空間占用磁盤情況? 
sql> col tablespace format a20 
sql> select b.file_id 文件id號, b.tablespace_name 表空間名, 
b.bytes 
字節數, 
(b.bytes-sum(nvl(a.bytes,0)))
已使用, 
sum(nvl(a.bytes,0))  
剩余空間, 
sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分比 
from dba_free_space a,dba_data_files b 
where a.file_id=b.file_id 
group by b.tablespace_name,b.file_id,b.bytes 
order by b.file_id 
43. 如把oracle設置為mts或專用模式? 
#dispatchers="(protocol=tcp) (service=sidxdb)" 
加上就是mts,注釋就是專用模式,sid是指你的實例名。 
44. 如何才能得知系統當前的scn號 ? 
select max(ktuxescnw * power(2, 32) + ktuxescnb) from x$ktuxe; 
45. 請問如何在oracle中取毫秒? 
9i之前不支持,9i開始有timestamp. 
9i可以用select systimestamp from dual; 
46. 如何在字符串里加回車? 
  select 'welcome to visit'||chr(10)||'www.csdn.net' from dual ; 
47. 中文是如何排序的? 
  oracle9i之前,中文是按照二進制編碼進行排序的。 
  在oracle9i中新增了按照拼音、部首、筆畫排序功能。設置nls_sort值 
  schinese_radical_m 按照部首(第一順序)、筆劃(第二順序)排序 
  schinese_stroke_m 按照筆劃(第一順序)、部首(第二順序)排序 
  schinese_pinyin_m 按照拼音排序 
48. oracle8i中對象名可以用中文嗎? 
  可以 
49. 如何改變win中sql*plus啟動選項? 
sql*plus自身的選項設置我們可以在$oracle_home/sqlplus/admin/glogin.sql中設置。 
50. 怎樣修改oracel數據庫的默認日期? 
  alter session set nls_date_format='yyyymmddhh24miss'; 
  or 
  可以在init.ora中加上一行 
nls_date_format='yyyymmddhh24miss' 
51. 如何將小表放入keep池中? 
  alter table xxx storage(buffer_pool keep); 
52. 如何檢查是否安裝了某個patch? 
  check that orainventory 
53. 如何使select語句使查詢結果自動生成序號? 
select rownum,col from table; 
54. 如何知道數據褲中某個表所在的tablespace? 
select tablespace_name from user_tables where table_name='test'; 
select * from user_tables中有個字段tablespace_name,(oracle); 
select * from dba_segments where …; 
55. 怎幺可以快速做一個和原表一樣的備份表? 
  create table new_table as (select * from old_table); 
55. 怎幺在sqlplus下修改procedure? 
 select line,trim(text) t from user_source where name =’a’ order by line; 
56. 怎樣解除procedure被意外鎖定? 
  alter system kill session ,把那個session給殺掉,不過你要先查出她的session id 
  or 
  把該過程重新改個名字就可以了。 
57. sql reference是個什幺東西? 
  是一本sql的使用手冊,包括語法、函數等等,oracle官方網站的文檔中心有下載. 
58. 如何查看數據庫的狀態? 
  unix下 
ps -ef | grep ora 
windows下 
看服務是否起來 
是否可以連上數據庫 
59. 請問如何修改一張表的主鍵? 
alter table aaa 
drop constraint aaa_key ; 
alter table aaa 
add constraint aaa_key primary key(a1,b1) ; 
60. 改變數據文件的大小? 
用 alter database .... datafile .... ; 
手工改變數據文件的大小,對于原來的 數據文件有沒有損害。 
61. 怎樣查看oracle中有哪些程序在運行之中? 
  查看v$sessions表 
62. 怎幺可以看到數據庫有多少個tablespace? 
select *  from dba_tablespaces; 
63. 如何修改oracle數據庫的用戶連接數? 
修改initsid.ora,將process加大,重啟數據庫. 
64. 如何查出一條記錄的最后更新時間? 
 可以用logminer 察看 
65. 如何在pl/sql中讀寫文件? 
utl_file包允許用戶通過pl/sql讀寫操作系統文件。 
66. 怎樣把“&”放入一條記錄中? 
insert into a values (translate ('at{&}t','at{}','at')); 
67. exp 如何加query參數? 
exp user/pass file=a.dmp tables(bsempms) 
query='"where emp_no=/'s09394/'/" ﹔ 
68. 關于oracle8i支持簡體和繁體的字符集問題? 
  zhs16gbk可以支 
69. data guard是什幺軟件? 
就是standby的換代產品 
70. 如何創建spfile? 
sql> connect / as sysdba 
sql> select * from v$version; 
sql> create pfile from spfile; 
sql> create spfile from pfile='e:/ora9i/admin/eygle/pfile/init.ora'; 
文件已創建。 
sql> create spfile='e:/ora9i/database pfileeygle.ora' from pfile='e:/ora9i/admin/eygle/pfile/init.ora'; 
文件已創建。 
71. 內核參數的應用? 
shmmax 
  含義:這個設置并不決定究竟oracle數據庫或者操作系統使用多少物理內存,只決定了最多可以使用的內存數目。這個設置也不影響操作系統的內核資源。 
  設置方法:0.5*物理內存 
  例子:set shmsys:shminfo_shmmax=10485760 
  shmmin 
  含義:共享內存的最小大小。 
  設置方法:一般都設置成為1。 
  例子:set shmsys:shminfo_shmmin=1: 
  shmmni 
  含義:系統中共享內存段的最大個數。 
  例子:set shmsys:shminfo_shmmni=100 
  shmseg 
  含義:每個用戶進程可以使用的最多的共享內存段的數目。 
  例子:set shmsys:shminfo_shmseg=20: 
  semmni 
  含義:系統中semaphore identifierer的最大個數。 
  設置方法:把這個變量的值設置為這個系統上的所有oracle的實例的init.ora中的最大的那個processes的那個值加10。 
  例子:set semsys:seminfo_semmni=100 
  semmns 
  含義:系統中emaphores的最大個數。 
  設置方法:這個值可以通過以下方式計算得到:各個oracle實例的initsid.ora里邊的processes的值的總和(除去最大的processes參數)+最大的那個processes×2+10×oracle實例的個數。 
  例子:set semsys:seminfo_semmns=200 
  semmsl: 
  含義:一個set中semaphore的最大個數。 
  設置方法:設置成為10+所有oracle實例的initsid.ora中最大的processes的值。 
  例子:set semsys:seminfo_semmsl=-200 
72. 怎樣查看哪些用戶擁有sysdba、sysoper權限? 
sql>conn sys/change_on_install 
sql>select * from v_$pwfile_users; 
73. 如何單獨備份一個或多個表? 
  exp 用戶/密碼 tables=(表1,…,表2) 
74. 如何單獨備份一個或多個用戶? 
 exp system/manager owner=(用戶1,用戶2,…,用戶n) file=導出文件 
75. 如何對clob字段進行全文檢索? 
select * from a where dbms_lob.instr(a.a,'k',1,1)>0; 
76. 如何顯示當前連接用戶? 
  show user 
77. 如何查看數據文件放置的路徑 ? 
col file_name format a50 
sql> select tablespace_name,file_id,bytes/1024/1024,file_name from dba_data_files order by file_id; 
78. 如何查看現有回滾段及其狀態 ? 
sql> col segment format a30 
sql> select segment_name,owner,tablespace_name,segment_id,file_id,status from dba_rollback_segs 
79. 如何改變一個字段初始定義的check范圍? 
sql> alter table xxx drop constraint constraint_name; 
之后再創建新約束: 
sql> alter table xxx add constraint constraint_name check(); 
80. oracle常用系統文件有哪些? 
通過以下視圖顯示這些文件信息:v$database,v$datafile,v$logfile v$controlfile v$parameter; 
81. 內連接inner join? 
select a.* from bsempms a,bsdptms b where a.dpt_no=b.dpt_no; 
82. 如何外連接? 
 select a.* from bsempms a,bsdptms b where a.dpt_no=b.dpt_no(+); 
select a.* from bsempms a,bsdptms b wherea.dpt_no(+)=b.dpt_no; 
83. 如何執行腳本sql文件? 
 sql>@$path/filename.sql; 
84. 如何快速清空一個大表? 
sql>truncate table table_name; 
85. 如何查有多少個數據庫實例? 
 sql>select * from v$instance; 
86. 如何查詢數據庫有多少表? 
sql>select * from all_tables; 
87. 如何測試sql語句執行所用的時間? 
sql>set timing on ; 
 sql>select * from tablename; 
88. chr()的反函數是? 
  ascii() 
  select char(65) from dual;  
  select ascii('a') from dual; 
89. 字符串的連接 
  select concat(col1,col2) from table ; 
  select col1||col2 from table ; 
90. 怎幺把select出來的結果導到一個文本文件中? 
  sql>spool c:/abcd.txt; 
  sql>select * from table; 
  sql >spool off; 
91. 怎樣估算sql執行的i/o數 ? 
  sql>set autotrace on ; 
  sql>select * from table; 
  or 
  sql>select * from v$filestat ; 
可以查看io數 
92. 如何在sqlplus下改變字段大小? 
  alter table table_name modify (field_name varchar2(100)); 
  改大行,改小不行(除非都是空的) 
93. 如何查詢某天的數據? 
  select * from table_name where trunc(日期字段)=to_date('2003-05-02','yyyy-mm-dd'); 
94. sql 語句如何插入全年日期? 
create table bsyear (d date); 
insert into bsyear 
select to_date('20030101','yyyymmdd')+rownum-1 
from all_objects 
where rownum <= to_char(to_date('20031231','yyyymmdd'),'ddd'); 
 
95. 如果修改表名? 
 alter table old_table_name rename to new_table_name; 
96. 如何取得命令的返回狀態值? 
sqlcode=0 
97. 如何知道用戶擁有的權限? 
  select * from dba_sys_privs ; 
98. 從網上下載的oracle9i與市場上賣的標準版有什幺區別? 
從功能上說沒有區別,只不過oracle公司有明文規定;從網站上下載的oracle產品不得用于 商業用途,否則侵權。 
99. 怎樣判斷數據庫是運行在歸檔模式下還是運行在非歸檔模式下? 
進入dbastudio,歷程--〉數據庫---〉歸檔查看。 
100. sql>startup pfile和ifile,spfiled有什幺區別? 
pfile就是oracle傳統的初始化參數文件,文本格式的。 
ifile類似于c語言里的include,用于把另一個文件引入 
spfile是9i里新增的并且是默認的參數文件,二進制格式 
startup后應該只可接pfile 
101. 如何搜索出前n條記錄? 
select * from employee where rownum < n 
order by empno; 
102. 如何知道機器上的oracle支持多少并發用戶數? 
 sql>conn internal ; 
sql>show parameter processes ; 
103. db_block_size可以修改嗎? 
   一般不可以﹐不建議這樣做的。 
104. 如何統計兩個表的記錄總數? 
  select (select count(id) from aa)+(select count(id) from bb) 總數 from dual; 
105. 怎樣用sql語句實現查找一列中第n大值? 
  select * from 
(select t.*,dense_rank() over (order by sal) rank from employee) 
where rank = n; 
106. 如何在給現有的日期加上2年?( 
  select add_months(sysdate,24) from dual; 
107. used_ublk為負值表示什幺意思? 
it is "harmless". 
108. connect string是指什幺? 
應該是tnsnames.ora中的服務名后面的內容 
109. 怎樣擴大redo log的大小? 
 建立一個臨時的redolog組,然后切換日志,刪除以前的日志,建立新的日志。 
110. tablespace 是否不能大于4g? 
  沒有限制. 
111. 返回大于等于n的最小整數值? 
  select ceil(n) from dual; 
112. 返回小于等于n的最小整數值? 
  select floor(n) from dual; 
113. 返回當前月的最后一天? 
   select last_day(sysdate) from dual; 
114. 如何不同用戶間數據導入? 
 imp system/manager file=aa.dmp fromuser=user_old  touser=user_new rows=y indexes=y ; 
 
115. 如何找數據庫表的主鍵字段的名稱? 
  sql>select * from user_constraints where constraint_type='p' and  table_name='table_name'; 
116. 兩個結果集互加的函數? 
  sql>select * from bsempms_old intersect select * from bsempms_new; 
 sql>select * from bsempms_old union select * from bsempms_new; 
 sql>select * from bsempms_old union all select * from bsempms_new; 
117. 兩個結果集互減的函數? 
sql>select * from bsempms_old minus select * from bsempms_new; 
118. 如何配置sequence? 
  建sequence seq_custid 
 create sequence seq_custid start 1 incrememt by 1; 
 建表時: 
 create table cust 
 { cust_id smallint not null, 
 ...} 
 insert 時: 
 insert into table cust 
 values( seq_cust.nextval, ...) 
日期的各部分的常用的的寫法 
119>.取時間點的年份的寫法: 
   select to_char(sysdate,'yyyy') from dual; 
120>.取時間點的月份的寫法: 
   select to_char(sysdate,'mm') from dual; 
121>.取時間點的日的寫法: 
   select to_char(sysdate,'dd') from dual; 
122>.取時間點的時的寫法: 
   select to_char(sysdate,'hh24') from dual; 
123>.取時間點的分的寫法: 
   select to_char(sysdate,'mi') from dual; 
124>.取時間點的秒的寫法: 
   select to_char(sysdate,'ss') from dual; 
125>.取時間點的日期的寫法: 
   select trunc(sysdate) from dual; 
126>.取時間點的時間的寫法: 
   select to_char(sysdate,'hh24:mi:ss') from dual; 
127>.日期,時間形態變為字符形態 
   select to_char(sysdate) from dual; 
128>.將字符串轉換成日期或時間形態: 
   select to_date('2003/08/01') from dual; 
129>.返回參數的星期幾的寫法: 
   select to_char(sysdate,'d') from dual; 
130>.返回參數一年中的第幾天的寫法: 
   select to_char(sysdate,'ddd') from dual; 
131>.返回午夜和參數中指定的時間值之間的秒數的寫法: 
   select to_char(sysdate,'sssss') from dual; 
132>.返回參數中一年的第幾周的寫法: 
   select to_char(sysdate,'ww') from dual; 
虛擬字段 
133. currval 和 nextval 
  為表創建序列 
  create sequence empseq ... ; 
  select empseq.currval from dual ; 
  自動插入序列的數值 
  insert into emp 
 values (empseq.nextval, 'lewis', 'clerk', 
7902, sysdate, 1200, null, 20) ; 
134. rownum 
  按設定排序的行的序號 
  select * from emp where rownum < 10 ; 
135. rowid 
  返回行的物理地址 
  select rowid, ename from emp where deptno = 20 ; 
136. 將n秒轉換為時分秒格式? 
  set serverout on 
  declare 
  n number := 1000000; 
  ret varchar2(100); 
  begin 
  ret := trunc(n/3600) || '小時' || to_char(to_date(mod(n,3600),'sssss'),'fmmi"分  "ss"秒"') ; 
  dbms_output.put_line(ret); 
  end; 
137. 如何查詢做比較大的排序的進程? 
  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. 如何查詢做比較大的排序的進程的sql語句? 
  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. 如何查找重復記錄? 
  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. 如何刪除重復記錄? 
  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 
  然后執行view1.sql即可。 
  sql >@view1.sql; 
142. ora-01555 snapshot too old的解決辦法 
  增加minextents的值,增加區的大小,設置一個高的optimal值。 
143. 事務要求的回滾段空間不夠,表現為表空間用滿(ora-01560錯誤),回滾段擴展到達參數maxextents的值(ora-01628)的解決辦法. 
  向回滾段表空間添加文件或使已有的文件變大;增加maxextents的值。 
144. 如何加密oracle的存儲過程? 
  下列存儲過程內容放在aa.sql文件中 
  create or replace procedure testccb(i in number) as 
  begin 
  dbms_output.put_line('輸入參數是'||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 
  運行aa.plb 
  sql> @aa.plb ; 
145. 如何監控事例的等待? 
  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. 如何回滾段的爭用情況? 
  select name, waits, gets, waits/gets "ratio" 
  from v$rollstat c, v$rollname d 
  where c.usn = d.usn; 
147. 如何監控表空間的 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. 如何監控文件系統的 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. 如何在某個用戶下找所有的索引? 
  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. 如何監控 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. 如何監控 sga 中字典緩沖區的命中率? 
  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. 如何監控 sga 中共享緩存區的命中率,應該小于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. 如何顯示所有數據庫對象的類別和大小? 
  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. 監控 sga 中重做日志緩存區的命中率,應該小于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. 監控內存和硬盤的排序比率,最好使它小于 .10,增加 sort_area_size 
  select name, value from v$sysstat where name in ('sorts (memory)', 'sorts(disk)'); 
156. 如何監控當前數據庫誰在運行什幺sql語句? 
  select osuser, username, sql_text from v$session a, v$sqltext b 
  where a.sql_address =b.address order by address, piece; 
157. 如何監控字典緩沖區? 
  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. 監控 mts 
  select busy/(busy+idle) "shared servers busy" from v$dispatcher; 
  此值大于0.5時,參數需加大 
  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時,參數需加大 
159. 如何知道當前用戶的id號? 
  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. 如何知道表在表空間中的存儲情況? 
  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. 如何知道索引在表空間中的存儲情況? 
  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. 如何知道監聽器日志文件? 
  以8i為例 
  $oracle_home/network/log/listener.log 
166. 如何知道監聽器參數文件? 
  以8i為例 
  $oracle_home/network/admin/listener.ora 
167. 如何知道tns 連接文件? 
  以8i為例 
  $oracle_home/network/admin/tnsnames.ora 
168. 如何知道sql*net 環境文件? 
  以8i為例 
  $oracle_home/network/admin/sqlnet.ora 
169. 如何知道警告日志文件? 
  以8i為例 
  $oracle_home/admin/sid/bdump/sidalrt.log 
170. 如何知道基本結構? 
  以8i為例 
  $oracle_home/rdbms/admin/standard.sql 
171. 如何知道建立數據字典視圖? 
  以8i為例 
  $oracle_home/rdbms/admin/catalog.sql 
172. 如何知道建立審計用數據字典視圖? 
  以8i為例 
  $oracle_home/rdbms/admin/cataudit.sql 
173. 如何知道建立快照用數據字典視圖? 
  以8i為例 
  $oracle_home/rdbms/admin/catsnap.sql