Oracle常見問題集(二)

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;

大家在應用 ORACLE 的時候可能會遇到很多看起來不難的問題 , 特別對新手來說 , 今天我簡單把它總結一下 , 發布給大家 ,

希望對大家有幫助 ! 和大家一起探討 , 共同進步 !

對 ORACLE 高手來說是不用看的 .

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 ; <SPAN lang=EN-US

Published At
Categories with 数据库类
comments powered by Disqus