oracle 基礎(chǔ)入門(mén)
2024-08-29 13:39:00
供稿:網(wǎng)友
一、Oracle的表的分類(lèi):
1、REGULAR TABLE:普通表,ORACLE推薦的表,使用很方便,人為控制少。
2、PARTITIONED TABLE:分區(qū)表,人為控制記錄的分布,將表的存儲(chǔ)空間分為若干獨(dú)立的分區(qū),記錄按一定的規(guī)則存儲(chǔ)在分區(qū)里。適用于大型的表。
二、建表
1 CREATE TABLE 表名 (EMPNO NUMBER(2),NAME VARCHAR2(20)) PCTFREE 20 PCTUSED 50
STORAGE (INITIAL 200K NEXT 200K MAXEXTENTS 200 PCTINCREASE 0) TABLESPACE 表空間名稱(chēng)
[LOGGINGNOLOGGING]所有的對(duì)表的操作都要記入REDOLOG,ORACLE建議使用NOLOGGING;
[CACHENOCACHE]:是否將數(shù)據(jù)按照一定的算法寫(xiě)入內(nèi)存。
2、關(guān)于PCTFREE 和PCTUSED
A、行遷移和行鏈接
B、PCTFREE:制止INSERT,為 UPDATE留FREE 空間
C、PCTUSED:為恢復(fù)INSERT操作,而設(shè)定的。
三、拷貝一個(gè)已經(jīng)存在的表:
CREATE TABLE 新表名 STORAGE(。。) TABLESPACE 表空間
AS SELECT * FROM 老表名 ;
當(dāng)老表存在約束,觸發(fā)的時(shí)候,不會(huì)拷過(guò)去。
四、修改表的參數(shù)
ALTER TABLE 名稱(chēng) PCTFREE 20 PCTUSED 50 STOAGE(MAXEXTENTS 1000);
五、手工分配空間:
ALTER TABLE 名稱(chēng) ALLOCATE EXTENT(SIZE 500K DATAFILE '。。');
1、SIZE選項(xiàng),按照NEXT分配
2、表所在表空間與所分配的數(shù)據(jù)文件所在的表空間必須一樣。
六、水線
1、水線定義了表的數(shù)據(jù)在一個(gè)BLOCK中所達(dá)到的最高的位置。
2、當(dāng)有新的記錄插入,水線增高
3、當(dāng)刪除記錄時(shí),水線不回落
4、減少查詢(xún)量
七、如何回收空間:
ALTER TABLE 名稱(chēng) DEALLOCATE UNUSED [KEEP 4[MK]]
1、當(dāng)空間分配過(guò)大時(shí),可以使用本命令
2、假如沒(méi)有加KEEP,回收到水線
3、假如水線《MINEXTENTS的大小回收到MINEXTENTS所指定的大小
八、TRUNCATE 一個(gè)表
TRUNCATE TABLE 表名,表空間截取MINEXTENT,同時(shí)水線重置。
九、DROP 一個(gè)表
DROP TABLE 表名 [CASCADE CONSTRAINTS]
當(dāng)一個(gè)表含有外鍵的時(shí)候,是不可以直接DROP的,加CASCADE CONSRIANTS將外鍵等約束一并刪掉。
十、信息獲取
1、dba_object
2 dba_tables:建表的參數(shù)
3 DBA_SEGMENTS:
組合查詢(xún)的連接字段:DBA_TABLES的table_name+dba_ojbect的object_name+dba_segments的SEGMENT_NAME
第十一章:索引的治理
一、索引的分類(lèi):
1、邏輯上:
單列索引 復(fù)合索引 唯一索引 非唯一索引
2、物理上:
B-TREE OR BITMAP
B-TREE (NORMAL和反向索引)
二、CREATE INDEX
CREATE INDEX 名稱(chēng) ON 表名(列名) PCTFREE 30 STORAGE(。。。。。) TABLESPACE 名稱(chēng)
沒(méi)有定義PCTUSED:索引是按照一定存儲(chǔ)的,假如通過(guò)PCTUSED答應(yīng)恢復(fù)對(duì)BLOCK的INSERT操作,可能影響INDEX的效率。
三、建立索引的注重事項(xiàng)
1、索引對(duì)查詢(xún)性能有提高,但對(duì)DML語(yǔ)句有影響。
2、索引也應(yīng)該放在一個(gè)專(zhuān)用的表空間
3、定義索引的EXTENT的大小時(shí),=5*DB BLOCK
4、建立索引時(shí),應(yīng)采用 NOLOGGING
方式。
四、修改索引
ALTER INDEX 名稱(chēng) STORAGE(新值)
五、分配空間給索引
1、ALTER INDEX 名稱(chēng) ALLOCATE EXTENT(SIZE 200K DATAFILE '。。')
六、重建索引
1、提高查詢(xún)性能
2、當(dāng)一個(gè)索引重建時(shí),老的索引會(huì)在新索引建立完成后,被刪除。
3、新索引建立過(guò)程中,老的索引仍可用于查詢(xún)。
4、硬盤(pán)的開(kāi)銷(xiāo)大,
七、DROP一個(gè)索引
DROP INDEX 名稱(chēng)
八、信息獲取
1、DBA_INDEXES:建索引的參數(shù)
2、DBA_IND_COLUMNS:
第十二章:用戶的治理
一、ORACLE的安全域
1、TABLESPACE QUOTAS:表空間的使用定額
2、DEFAULT TABLESPACE:默認(rèn)表空間
3、TEMPORARY TABLESPACE:指定臨時(shí)表空間。
4、ACCOUNT LOCKING:用戶鎖
5、RESOURCE LIMITE:資源限制
6、DIRECT PRIVILEGES:直接授權(quán)
7、ROLE PRIVILEGES:角色授權(quán)先將應(yīng)用中的用戶劃為不同的角色,
二、創(chuàng)建用戶時(shí)的清單:
1、選擇一個(gè)用戶名稱(chēng)和檢驗(yàn)機(jī)制:A,看到用戶名,實(shí)際操作者是誰(shuí),業(yè)務(wù)中角色。
2、選擇合適的表空間:
3、決定定額:
4、口令的選擇:
5、臨時(shí)表空間的選擇:先建立一個(gè)臨時(shí)表空間,然后在分配。不分配,使用SYSTEM表空間
6、CREATE USER
7、授權(quán):A,用戶的工作職能
B,用戶的級(jí)別
三、用戶的創(chuàng)建:
1、命令:
CREATE USER 名稱(chēng) IDENTIFIED BY 口令 DEFAULT TABLESPACE 默認(rèn)表空間名 TEMPOARAY
TABLESPACE 臨時(shí)表空間名
QUOTA 15M ON 表空間名
[PASSWord EXPIRE]:當(dāng)用戶第一次登陸到ORACLE,創(chuàng)建時(shí)所指定的口令過(guò)期失效,強(qiáng)迫用戶自己定義一個(gè)新口令。
[ACCOUNT LOCK]:加用戶鎖
QUOTA UNLIMITED ON TABLESPACE:不限制,有多少有多少。
[PROFILE 名稱(chēng)]:受PROFILE文件的限制。
四、如何控制用戶口令和用戶鎖
1、強(qiáng)迫用戶修改口令:ALTER USER 名稱(chēng) IDENTIFIED BY 新口令 PASSWORD EXPIRE;
2、給用戶加鎖:ALTER USER 名稱(chēng) ACCOUNT [LOCKUNLOCK]
3、注重事項(xiàng):
A、所有操作對(duì)當(dāng)前連接無(wú)效
B、1的操作適用于當(dāng)用戶忘記口令時(shí)。
五、更改定額
1、命令:ALTER USER 名稱(chēng) QUOTA 0 ON 表空間名
ALTER USER 名字 QUOTA (數(shù)值)KMUNLIMITED ON 表空間名;
2、使用方法:
A、控制用戶數(shù)據(jù)增長(zhǎng)
B、當(dāng)用戶擁有一定的數(shù)據(jù),而治理員不想讓他在增加新的數(shù)據(jù)的時(shí)候。
C、當(dāng)將用戶定額設(shè)為零的時(shí)候,用戶不能創(chuàng)建新的數(shù)據(jù),但原有數(shù)據(jù)仍可訪問(wèn)。
六、DROP一個(gè)USER
1、DROP USER 名稱(chēng)
適合于刪除一個(gè)新的用戶
2、DROP USER 名稱(chēng) CASCADE: 刪除一個(gè)用戶,將用戶的表,索引等都刪除。
3、對(duì)連接中的用戶不好用。
七、信息獲取:
1、DBA_USERS:用戶名,狀態(tài),加鎖日期,默認(rèn)表空間,臨時(shí)表空間
2、DBA_TS_QUOTAS:用戶名,表空間名,定額。
兩個(gè)表的連接字段:USERNAME
GRANT CREATE session TO 用戶名
第十三章:PROFILE的治理(資源
文件)
一、PROFILE的治理內(nèi)容:
1、CPU的時(shí)間
2、I/O的使用
3、IDLE TIME(空閑時(shí)間)
4、CONNECT TIME(連接時(shí)間)
5、并發(fā)會(huì)話數(shù)量
6、口令機(jī)制:
二、DEFAULT PROFILE:
1、所有的用戶創(chuàng)建時(shí)都會(huì)被指定這個(gè)PROFILE
2、DEFAULT PROFILE的內(nèi)容為空,無(wú)限制
三、PROFILE的劃分:
1、CALL級(jí)LIMITE:
對(duì)象是語(yǔ)句:
當(dāng)該語(yǔ)句資源使用溢出時(shí):
A、該語(yǔ)句終止
B、事物回退
C、SESSION連接保持
2、SESSION級(jí)LIMITE:
對(duì)象是:整個(gè)會(huì)話過(guò)程
溢出時(shí):連接終止
四、如何治理一個(gè)PROFILE
1、CREATE PROFILE
2、分配給一個(gè)用戶
3、象開(kāi)關(guān)一樣打開(kāi)限制。
五、如何創(chuàng)建一個(gè)PROFILE:
1、命令:CREATE PROFILE 名稱(chēng)
LIMIT
SESSION_PER_USER 2
CPU_PER_SESSION 1000
IDLE_TIME 60
CONNECT_TIME 480
六、限制參數(shù):
1、SESSION級(jí)LIMITE:
CPU_PER_SESSION:定義了每個(gè)SESSION占用的CPU的時(shí)間: (1/100 秒)
2、SESSION_PER_USER:每個(gè)用戶的并發(fā)連接數(shù)
3、CONNECT_TIME:一個(gè)連接的最長(zhǎng)連接時(shí)間(分鐘)
4、LOGICAL_READS_PER_SESSION: 一次讀寫(xiě)的邏輯塊的數(shù)量
5、CALL級(jí)LIMITE
CPU_PER_CALL:每個(gè)語(yǔ)句占用的CPU時(shí)間
LOGICAL_READS_PER_CALL:
七、分配給一個(gè)用戶:
CREATE USER 名稱(chēng)。。。。。。
PROFILE 名稱(chēng)
ALTER USER 名稱(chēng) PROFILE 名稱(chēng)
八、打開(kāi)資源限制:
1、RESOURCE_LIMT:資源文件中含有
2、ALTER SYSTEM SET RESOURCE_LIMIT=TRUE;
3、默認(rèn)不打開(kāi)
九、修改PROFIE的內(nèi)容:
1、ALTER PROFILE 名稱(chēng)參數(shù) 新值
2、對(duì)于當(dāng)前連接修改不生效。
十、DROP一個(gè)PROFILE
1、DROP PROFILE 名稱(chēng)
刪除一個(gè)新的尚未分配給用戶的PROFILE,
2、DROP PROFILE 名稱(chēng) CASCADE
3、注重事項(xiàng)
A、一旦PROFILE被刪除,用戶被自動(dòng)加載DEFAULT PROFILE
B、對(duì)于當(dāng)前連接無(wú)影響
C、DEFAULT PROFILE不可以被刪除
十一、信息獲取:
1、DBA_USERS:
用戶名,PROFILE
2、DBA_PROFILES: