在Oracle中查看各個(gè)表、表空間占用空間的大小
查看當(dāng)前用戶每個(gè)表占用空間的大小:
    Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name

查看每個(gè)表空間占用空間的大小:
    Select Tablespace_Name,Sum(bytes)/1024/1024 From Dba_Segments Group By Tablespace_Name
-------------------------------------------------------------------------------------------------------------
查詢Oralce中某個(gè)用戶有多少個(gè)存儲過程
select distinct name from user_source where type='PROCEDURE';
select distinct name from dba_source where type='PROCEDURE' and owner='XG_TEST';
-------------------------------------------------------------------------------------------------------------
oracle的使用心得



1、DDL(Data Definition Language) Command
   create,alter,drop objects;
   grant,revoke privileges and roles;
   establishing auditing options;
   add comments to the data dictionary;
   Before and after each DDL statement,Oracle implicitly commit the current transactions.

2、DML(Data Manipulation Language) Command
   Query and Modify data within existing schema objects;
   DML statements consist of DELETE,INSERT,SELECT and UPDATE statements;
                        EXPLAIN PLAN statements;
                        LOCK TABLE statements;
   Unlike DDL Command , a commit is not implicit , after execute DDL Command ,must execute commit command    to commit a transaction;

3、Dynamic Performance Tables
   These tables are created at the instance startup and used to store information about the performance    of the instance. This information includes connection informatioion,I/OS, initialization parameter    values and so on..

4、Procedure and Function are identical except that Founction are always return a value(Procedure do not).

5、Schema is a collection of Objects that associated with the DataBase.

6、SGA is made up of :
   DataBase Buffers;
   Redo Log Buffers;
   The Shared Pool;

7、Transaction is a logical unit of work consisting of one or more SQL statements,ending in a commit or rollback.

8、 The DataBase
The Physical Layer
(1)One or more datafiles;
(2)Two or more redo log files;
(3)One or more control files;
The Logical Layer
(1)One or more tablespaces;
(2)The database schema;

9、The database is devided into one or more logical pieces known as tablespace;

10、Recommend that every one need DBA roles should have a different account , thus , if auditing is enabled , there is a record who made these system changes.

11、The Instance is the logical term that refers to the components necessary to access the data in a database.

12、數(shù)據(jù)庫實(shí)例(也稱為服務(wù)器Server),是用來訪問一個(gè)數(shù)據(jù)庫文件集的一個(gè)存儲結(jié)構(gòu)及后臺進(jìn)程的集合。Oralce并行服務(wù)器是指一個(gè)單獨(dú)的數(shù)據(jù)庫可以被多個(gè)實(shí)例訪問。

13、查詢實(shí)例名:
   select instance_name from v$instance;

14、查詢動態(tài)視圖v$waitstat、v$system_event、v$session_event、v$session_wait和v$ buffer_pool_statistics(在Oracle8中通過catperf.sql腳本創(chuàng)建)以獲取下面所的統(tǒng)計(jì)信息,
目的是為了檢查服務(wù)器進(jìn)程是否正等待DBWR(對單個(gè)會話而言,也對整個(gè)數(shù)據(jù)庫而言)。

15、
(1)SMON:系統(tǒng)監(jiān)控程序
(2)PMON:進(jìn)程監(jiān)控程序
(3)DBWR:數(shù)據(jù)庫寫入程序
(4)LGWR:日志寫入程序
(5)CKPT:檢查點(diǎn)進(jìn)程
(6)ARCH:歸檔日志
(7)RECO:恢復(fù)進(jìn)程
(8)SNPn:快照進(jìn)程
(9)LCKn:鎖定進(jìn)程
(10)Dnnn:調(diào)度程序進(jìn)程
(11)Snnn:服務(wù)器進(jìn)程
(12)Pnnn:并行查詢服務(wù)器進(jìn)程

16、數(shù)據(jù)庫備份之前,若使用了shutdown abort命令,則需要進(jìn)行如下操作,然后才能進(jìn)行數(shù)據(jù)庫備份:
1)    執(zhí)行一個(gè)shutdown abort命令;
2)    啟動數(shù)據(jù)庫實(shí)例;
3)    執(zhí)行shutdown命令;

17、使用OPS數(shù)據(jù)庫時(shí),如何解決兩個(gè)服務(wù)器同時(shí)對同一記錄的更新?
更新同一個(gè)表的數(shù)據(jù)的用戶使用同一個(gè)實(shí)例來訪問數(shù)據(jù)庫。

18、通過ORACLE數(shù)據(jù)庫對非ORACLE數(shù)據(jù)庫進(jìn)行訪問,首先需要在運(yùn)行非ORACLE數(shù)據(jù)庫的服務(wù)器端安裝ORACLE透明網(wǎng)關(guān)產(chǎn)品,每種被訪問的數(shù)據(jù)引擎需要一個(gè)獨(dú)立的網(wǎng)關(guān);然后需要在本地ORACLE數(shù)據(jù)庫中建立一個(gè)數(shù)據(jù)庫連接(DATABASE LINK)。

19、外部文件訪問:
1)    用作腳本文件的源代碼寫入SQL*PLUS、SQL、PL/SQL中;
2)    用作SQL*PLUS腳本文件的輸出,用SPOOL命令生成;
3)    用作PL/SQL程序的輸入或輸出,通過UTL_FILE軟件包訪問;
4)    用作PL/SQL程序的腳本文件的輸出,通過DBMS_OUTPUT軟件包生成;
5)    用作通過BFILE數(shù)據(jù)類型在數(shù)據(jù)庫中引用的外部數(shù)據(jù),BFILE數(shù)據(jù)類型含有一個(gè)指向外部二進(jìn)制數(shù)據(jù)文件的指針,用戶必須通過CREATE DIRECTORY命令,在ORACLE中創(chuàng)建一個(gè)目錄指針,指向存儲文件的目錄。
6)    用作通過DBMS_PIPE訪問的外部程序,該程序必須以O(shè)RACLE支持的3GL來編寫。

20、取消用戶在SYSTEM表空間上創(chuàng)建對象的定額:
ALTER USER USER_NAME QUOTA 0 ON SYSTEM;
注:
如果一個(gè)用戶被授權(quán)UNLIMITED_TABLESPACE系統(tǒng)權(quán)限或RESOURCE角色(Resouce角色擁有使用數(shù)據(jù)庫中所有表空間的權(quán)限),則這個(gè)授權(quán)將覆蓋用戶的任何定額設(shè)置。
21、創(chuàng)建一個(gè)用戶,并且指定缺省表空間:
CREATE USER USER_NAME IDENTIFIED BY USER_PASSWORD DEFAULT TABLESPACE TABLESPACE_NAME;

22、重新指定用戶的缺省表空間:
ALTER USER USER_NAME DEFAULT TABLESPACE TABLESPACE_NAME;

23、從數(shù)據(jù)表中分離出已有的索引:
ALTER INDEX INDEX_NAME REBUILD
   TABLESPACE INDEX_TABLESPACE
   STORAGE(INITIAL 2M NEXT 2M PCTINCREASE 0);

24、創(chuàng)建表時(shí)指定數(shù)據(jù)表空間和索引表空間:
CREATE TABLE TAB_NAME(
COLUMN_A TYPE,
COLUMN_B TYPE,

COLUM_N TYPE,
CONSTRAINT TAB_NAME_PK PRIMARY KEY (COLUMN_A)
USING INDEX TABLESPACE TABLESPACE_INDEXES
STORAGE(INITIAL 2M NEXT 2M PCTINCREASE 0))
TABLESPACE TABLESPACE_DATA
STORAGE(INITIAL 5M NEXT 5M PCTINCREASE 0);

25、TEMP表空間只有在大型排序操作時(shí)才使用;

26、STORAGE子句的意義:
Storage(initial 盤區(qū)大小 next 盤區(qū)大小 pctincrease 每個(gè)順序盤區(qū)幾何增長的系數(shù));
使用非零pctincrease參數(shù)的結(jié)果:
storage(initial 10M next 10M pctincrease 50);
盤區(qū)號        大小        總塊數(shù)        盤區(qū)容量注釋
1            10            10            INITIAL
2            10            20            NEXT
3            15            35            NEXT×1.5
4            22.5            57.5            NEXT×1.5×1.5
5            33.75        91.25        NEXT×1.5×1.5×1.5
.. .. .. .. .. ..
理想的情況:
一個(gè)段只具有一個(gè)大小合適的盤區(qū),并且next值較小,設(shè)表的pctincrease值為零;
實(shí)際上:
在表空間級設(shè)置pctincrease的值為零,會影響ORACLE自動合并表空間中自由空間的能力,把表空間缺省pctincrese設(shè)置為一個(gè)非常低的值,例如1;

27、通常稱作TEMP的臨時(shí)表空間,由于其自身的特點(diǎn)會有很多碎片,臨時(shí)段總是在不斷的創(chuàng)建、擴(kuò)展和撤銷,對于臨時(shí)表,將INITIAL和NEXT盤區(qū)大小設(shè)為表空間大小的1/20到1/50,對于這個(gè)表空間,INITIAL和NEXT缺省設(shè)置應(yīng)該相等,PCTINCREASE的值為0,這樣,段將有同樣大小的盤區(qū)構(gòu)成,當(dāng)撤消這些段時(shí),下一個(gè)臨時(shí)段將能夠重新利用這些已撤消的盤區(qū)。

28、
1)將一個(gè)表空間改為臨時(shí)表空間:
alter tablespace tablespace_name temporary;
2)將一個(gè)表空間轉(zhuǎn)換為能存儲永久對象:
alter tablespace tablespace_name permenent;
3)強(qiáng)制表空間合并其自由空間(只能合并位置相鄰的自由盤區(qū)):
alter tablespace talbespace_name coalesce;

29、
1)手工縮放數(shù)據(jù)文件(只能增大不能減小):
alter database datafile '$path/datafile01.dat' resize nnnM;
2)創(chuàng)建一個(gè)在需要時(shí)自動擴(kuò)展的文件:
CREATE TABLESPACE DATA
DATAFILE '$PATH/DATAFILE01.DAT' SIZE 200M
AUTOEXTEND ON
NEXT 10M
MAXSIZE 250M;
3)通過ALTER TABLESPACE增加一個(gè)新的數(shù)據(jù)文件:
alter tablespace tablespace_name
add datafile '$path/datafile02.dat' size 200M
autoextend on
maxsize 300M;

40、移動數(shù)據(jù)文件:
1)    關(guān)閉實(shí)例;
2)    使用操作系統(tǒng)命令來移動數(shù)據(jù)文件;
3)    安裝數(shù)據(jù)文件并使用ALTER DATABASE命令改變數(shù)據(jù)庫中的文件名;
4)    啟動實(shí)例;
具體步驟如下:
1)>svrmgrl
>connect internal
>shutdown
>exit
2)mv /db01/oracle/cc1/data01.dbf /db02/oracle/cc1/
3)>svrmgrl
>connect internal
>startup mount cc1
>alter database rename file '/db01/oracle/cc1/data01.dbf' to '/db02/oracle/cc1/data01.dbf';
4)    startup

31、
查看回滾段名稱:v$rollname
查看表空間:dba_tablespace;
查看用戶表空間:user_tablespaces;
查看回滾段狀態(tài)信息:dba_rollback_segs;
查看數(shù)據(jù)庫回滾段的當(dāng)前分配情況:dba_segments;

32、
若系統(tǒng)中有多個(gè)表空間,就需要在system表空間中創(chuàng)建"第二回滾段"來支持多個(gè)表空間,有了"第二回滾段",system表空間就只用于管理數(shù)據(jù)庫級的事務(wù)。

33、
ipcs | grep oracle
ipcrm [-m|-s] ipcid(數(shù)字)

34、連接字符串:||   
select 'drop talbe '||table_name from user_tables;

35、視圖中不能使用order by,但可以用group by 代替來達(dá)到排序目的:
create view as select b1,b2 from table_b group by b1,b2;

36、用戶間復(fù)制數(shù)據(jù):
copy from user1@databasex to user2@databasey create table2 using select * from talbe1;

37、察看數(shù)據(jù)庫的大小,和空間使用情況
select b.file_id FileID,b.tablespace_name TableSpace,b.file_name PhysicalFileName,b.bytes TotalBytes,(b.bytes-sum(nvl(a.bytes,0))) UsedSpace,sum(nvl(a.bytes,0)) FreeSpace,sum(nvl(a.bytes,0))/(b.bytes)*100 FreePecent from dba_free_space a,dba_data_files b where a.file_id=b.file_id group by b.tablespace_name,b.file_name,b.file_id,b.bytes order by b.tablespace_name;

38、Oracle提供了幾個(gè)包,它們可以用來完成很多任務(wù),從內(nèi)部進(jìn)程通信到文件I/O,到在PL/SQL塊中動態(tài)創(chuàng)建和執(zhí)行SQL語句。所有這些包由SYS用戶所擁有-當(dāng)Oracle最初安裝時(shí)兩個(gè)用戶中的一個(gè),這些包中最重要的包括:
DBMS_ALERT          不用輪詢就允許應(yīng)用命名并發(fā)出警告條件信號的過程與函數(shù)
DBMS_DDL          允許獲取PL/SQL程序內(nèi)部一定數(shù)量的DDL語句的過程
DBMS_DESCRIBE    為存儲過程與函數(shù)描述API的過程
DBMS_JOB           管理BLOBs、CLOBs、NCLOBs與BFILEs的過程與函數(shù)
DBMS_OUTPUT        允許PL/SQL程序生成終端輸出的過程與函數(shù)
DBMS_PIPE           允許數(shù)據(jù)庫會話使用管道通信(通信頻道)的過程與函數(shù)
DBMS_SQL           在PL/SQL程序內(nèi)部執(zhí)行動態(tài)SQL的過程與函數(shù)
DBMS_ULTILITY        DBMS_ULTILITY
ULT_FILE    允許PL/SQL程序讀寫服務(wù)器文件系統(tǒng)上的文本文件的過程與函數(shù)

39、如何解決單機(jī)監(jiān)聽不啟動的問題:
你給IP固定一個(gè)值,然后配置NET8時(shí)最好用機(jī)器名,把listener.ora,tnsname.ora里的IP改成機(jī)器名。

40、查看日志文件的路徑和數(shù)量:
select * from v$logfile;

41、oracle中的配置文件:
init.ora
tnsname.ora
listener.ora
sqlnet.ora

42、如何利用rownum 檢索紀(jì)錄:(在oracle中,只能通過rownum檢索比rownum值小的所有的列)利用如下方法,可以檢索表中rownum等于固定值的列:
select * from ( select rownum rn,column1,column2,… from table_name) where rn=要查詢的值;

43、利用translate(char,from,to)函數(shù)判斷一個(gè)字符串是否可以轉(zhuǎn)換成 number 型:
translate(str,'x1234567890','x') is null,則str為純字符串。
利用from to 參數(shù),把str字段中所有的0-9的字符替換為空,然后判斷函數(shù)返回值,返回值為空,則str一定可以轉(zhuǎn)換成number型。

44、如何修改internal 用戶的密碼?
用法:orapwd file= password= entries=
參數(shù)解釋:
    file - name of password file (mand),
    password - password for SYS and INTERNAL (mand),
    entries - maximum number of distinct DBA and OPERs (opt),
    There are no spaces around the equal-to (=) character.
1)進(jìn)入DOS下
2)默認(rèn)internal密碼文件在c:\orant\database下,是隱藏屬性,文件名稱與數(shù)據(jù)庫實(shí)例名有關(guān)
  如默認(rèn)ORACLE實(shí)例名為ORCL,則internal密碼文件名為pwdorcl.ora
3)建立新的internal密碼文件,起個(gè)新名字為pwdora8.ora
  orapwd80 file=pwdora8.ora password=B entries=5     
--注:password項(xiàng)一定要用大寫,并且不要用單引號
4)拷貝pwdora8.ora文件到c:\orant\database目錄下
5)運(yùn)行regedit,修改口令文件指向
6)找到HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE項(xiàng)
  定位ORA_ORCL_PWFILE子項(xiàng),改變其值為c:\orant\database\pwdora8.ora
7)關(guān)閉ORACLE數(shù)據(jù)庫,重新啟動
Cool進(jìn)入svrmgrl服務(wù)程序,測試internal密碼是否更改成功

45、只有對象的擁有者才有對對象的操作權(quán)。如,把用戶user1下的表tab_1賦給用戶user2 查看的權(quán)限。此時(shí),必須以uer1用戶登陸,讓后執(zhí)行如下語句:
grant select on tab_1 to user2;

46、Oracle的本地進(jìn)程    ps -aef | grep LOCAL=YES   的父進(jìn)程ID不能為 1 ,若為 1 ,則該進(jìn)程被掉死,需要用命令殺死改進(jìn)程!!

47、在Windows 2000 server 操作系統(tǒng)下,用 net start 命令啟動oracle的服務(wù),如下:
net start OracleServiceORCL
net start OracleStartORCL
net start OracleTNSListener80
net start OracleWWWListener80
或者,利用 net stop 命令來終止服務(wù):
net stop oraclestartorcl
net stop oracleserviceorcl
net stop oracletnslistener80

啟動數(shù)據(jù)庫的另外一個(gè)方法:
oradim -startup -sid SID
關(guān)閉數(shù)據(jù)庫的另外一個(gè)方法:
oradim -shutdown -sid SID

48、多表操作在被實(shí)際執(zhí)行前,查詢優(yōu)化器會根據(jù)連接條件,列出幾組可能的連接方案并從中找出系統(tǒng)開銷最小的最佳方案。連接條件要充份考慮帶有索引的表、行數(shù)多的表;內(nèi)外表的選擇可由公式:外層表中的匹配行數(shù)*內(nèi)層表中每一次查找的次數(shù)確定,乘積最小為最佳方案。

49、保持Oracle數(shù)據(jù)庫優(yōu)良性能的若干訣竅:
1)    分區(qū):
根據(jù)實(shí)際經(jīng)驗(yàn)所得,在一個(gè)大數(shù)據(jù)庫中,數(shù)據(jù)庫空間的絕大多數(shù)是被少量的表所占有。如何簡化大數(shù)據(jù)庫和管理,如何改善應(yīng)用的查詢性能,一般可以使用分區(qū)這種手段。所謂分區(qū)就是動態(tài)地將表中記錄分離到若干不同的表空間上,使數(shù)據(jù)在物理上被分割開來,便于維護(hù)、備份、恢復(fù)、事務(wù)及查詢性能。當(dāng)使用的時(shí)候可建立一個(gè)連接所有分區(qū)的視圖,使其在邏輯上仍以一個(gè)整體出現(xiàn)。
(1)建立分區(qū)表
Create table Employee (
EmpNo varchar2(10) primary key,
Name varchar2(30),
DeptNo Number(2)
)
Partition by range(DeptNo)
(
partition PART1 values less than (11)
tablespace PART1_TS,
partition PART2 values less than (21)
tablespace PART2_TS,
partition PART3 values less than (31)
tablespace PART3_TS
partition PART4 values less than (MAXVALUE)
tablespace PART4_TS
);
表Employee依據(jù)DeptNo列進(jìn)行分區(qū)。
(2)分區(qū)索引
Create index Employee_DeptNo on Employee(DeptNo)
local (
partition PART1 tablespace PART1_NDX_TS,
partition PART2 tablespace PART2_NDX_TS,
partition PART3 tablespace PART3_NDX_TS,
partition PART4 tablespace PART4_NDX_TS,
);
當(dāng)分區(qū)中出現(xiàn)許多事務(wù)并且要保證所有分區(qū)中的數(shù)據(jù)記錄的唯一性時(shí)采用全局索引,如:
Create index Employee_DeptNo on Employee(DeptNo)
global partition by range (DeptNo)
(
partition PART1 values less than (11)
tablespace PART1_NDX_TS,
partition PART2 values less than (21)
tablespace PART2_NDX_TS,
partition PART3 values less than (31)
tablespace PART3_NDX_TS
partition PART4 values less than (MAXVALUE)
tablespace PART4_NDX_TS
);
在建立全局索引時(shí),global子句允許指定索引的范圍值,這個(gè)范圍值可以不同于表分區(qū)的范圍值。只有建立局部索引才會使索引索引分區(qū)與表分區(qū)間建立起一一對應(yīng)關(guān)系。因此,在大多數(shù)情況下,應(yīng)該使用局部索引分區(qū)。若使用了此索引,分區(qū)就能夠很容易地將索引分區(qū)與表分區(qū)建立關(guān)聯(lián),局部索引比全局索引更易于管理。
(3)分區(qū)管理
根據(jù)實(shí)際需要,還可以使用 alter table 命令來增加、丟棄、交換、移動、修改、重命名、劃分、截短一個(gè)已存在分區(qū)的結(jié)構(gòu)。

2)Rebuild Indexes(重建索引不會影響存儲過程)
如果表中記錄頻繁的被刪除或插入,盡管表中的記錄總量保持不變,索引空間的使用量會不斷增加。雖然記錄從索引中被刪除,但是該記錄索引項(xiàng)的使用空間不能被重新使用。因此,如果表變化不定,索引空間量會不斷增加,不管表中記錄數(shù)量是否增加--只僅僅是因?yàn)樗饕袩o效空間量的增加。
要回收那些曾被刪除記錄使用的空間,需要使用alter index rebuild 命令。可以做一個(gè)定期運(yùn)行的批處理程序,來重建最活動表的索引。這個(gè)批處理程序可以在空閑時(shí)運(yùn)行,以避免程序與用戶沖突。若能堅(jiān)持索引的這一程序規(guī)劃,便可以及時(shí)回收那些未使用空間,提高空間利用率。

3)段的碎片整理
當(dāng)生成一個(gè)數(shù)據(jù)庫對象時(shí)(一個(gè)表或一個(gè)索引),通過用戶缺省值或指定值來為它指定表空間。一個(gè)在表空間中所生成的段,用于存儲對象的相關(guān)數(shù)據(jù)。在段被關(guān)閉、收縮、截?cái)嘀埃嗡峙涞目臻g將不被釋放。
一個(gè)段是由范圍組成,而范圍是由相鄰的Oracle塊組成。一旦存在的范圍不能再存儲新的數(shù)據(jù),那這個(gè)段就會去獲得新的范圍,且并不要求這些范圍是彼此相鄰的。這樣的擴(kuò)展會一直繼續(xù)下去,直到表空間中的數(shù)據(jù)文件不能提供更多的自由空間,或者范圍數(shù)量已達(dá)到極限。
因此,一個(gè)碎片太多的數(shù)據(jù)段,不僅會影響運(yùn)行,也會引發(fā)表空間中的空間管理問題。所以,每個(gè)數(shù)據(jù)段只含有一個(gè)范圍是十分有益的。借助監(jiān)控系統(tǒng),可以通過檢查DBA_SEGMENTS數(shù)據(jù)字典視圖來了解哪些數(shù)據(jù)庫對象含有10個(gè)或更多范圍的段,確定其數(shù)據(jù)段碎片。
若一個(gè)段的碎片過多,可用兩種方法解決這個(gè)問題:
(1)用正確的存儲參數(shù)建立一個(gè)新表,將舊表中的數(shù)據(jù)插入到新表中,再刪除舊表;
(2)利用Export/Import工具。
如:exp system/manager file=exp.dmp compress=Y grants=Y indexes=Y tables=(T1,T2)
若輸出成功,進(jìn)入Oracle,刪除上述表。
注:compress=Y決定將在輸出過程中修改它們的存儲參數(shù)。
imp system/manager file=exp.dmp commit=Y buffer=64000 full=Y
注:在輸入時(shí)重新配置新的存儲參數(shù)。

自由范圍的碎片整理
表空間中的一個(gè)自由范圍是表空間中相連自由(空間)塊的集合。當(dāng)一個(gè)段關(guān)閉時(shí),它的范圍將被釋放,并被標(biāo)記為自由范圍。然而,這些自由范圍再也不能與相鄰的自由范圍合并,它們之間的界線始終存在。但是當(dāng)表空間的缺省值pctincrease設(shè)置不為0時(shí),SMON后臺進(jìn)會定期的將這些相鄰的自由范圍合并。若pctincrease設(shè)置為0,那相鄰自由范圍不會被數(shù)據(jù)庫自動合并。但可以使用 alter tablespace 命令coalesce選項(xiàng),來強(qiáng)迫進(jìn)行相鄰自由范圍的合并。
不進(jìn)行自由范圍合并,在日后的空間請求中,會影響到表空間中的空間分配。當(dāng)需要一個(gè)足夠大的范圍時(shí),數(shù)據(jù)庫并不會合并相鄰的自由范圍,除非沒有其他選擇。這樣,當(dāng)表空間中前面較小自由范圍已被相關(guān)使用時(shí),將使用表空間中后面部分最大的一個(gè)自由范圍。結(jié)果,會因?yàn)樗鼈儧]有足夠多的使用空間,從而導(dǎo)致表空間中速度上的矛盾。由于這樣的進(jìn)程出現(xiàn),使數(shù)據(jù)庫的空間分配距理想越來越遠(yuǎn)。自由空間碎片常會出現(xiàn)在那些經(jīng)常關(guān)閉又重新生成的數(shù)據(jù)庫表和索引中。
在理想的ORACLE表空間中,每一個(gè)數(shù)據(jù)庫對象存儲在一個(gè)單獨(dú)的范圍中,并且所有有效自由空間集中在一個(gè)巨大而連續(xù)的范圍中。這樣,在一個(gè)對象需要附加存儲空間時(shí),可以在增加獲取足夠大自由空間的可能性同時(shí),最小化空間中的循環(huán)調(diào)用,提高自由空間使用率

50、查看和修改Oracle服務(wù)器端字符集:
方法一:
1)    查看服務(wù)器端字符集:
select * from v$nls_parameters;
select * from nls_database_parameters;
select * from sys.props$;
2)    修改服務(wù)器端字符集(用sys用戶):
首先執(zhí)行:update props$ set value$ = 'WE8ISO8859P1' where name ='NLS_CHARACTERSET';
update props$ set value$ = 'china' where name ='NLS_LANGUAGE';
提交(commit),然后,重新啟動數(shù)據(jù)庫;
3)用客戶端工具(PL/SQL DEVELOP or PB etc.)查詢數(shù)據(jù)庫,若顯示亂碼,先查詢出數(shù)據(jù)庫端的字符集,然后,從注冊表中修改NLS_LANG字段的值,可能為AMERICAN_AMERICA.WE8ISO8859P1或者SIMPLIFIED CHINESE_CHINA.ZHS16GBK或者NA等。
方法二:
alter system enable restricted session;
alter database ORCL character set ZHS16GBK;
alter database ORCL national character set ZHS16GBK;

51、查看系統(tǒng)中的角色:
select * from dba_roles;
-------------------------------------------------------------------------------------------------------------
Oracle中查看所有的表
select   table_name   from   user_tables;     //當(dāng)前用戶的表  
   
  select   table_name   from   all_tables;     //所有用戶的表  
   
  select   table_name   from   dba_tables;       //包括系統(tǒng)表
-------------------------------------------------------------------------------------------------------------