一
ORACLE的表的分類
REGULAR TABLE
普通表
ORACLE推薦的表
使用很方便
人為控制少
PARTITIONED TABLE
分區表
人為控制記錄的分布
將表的存儲空間分為若干獨立的分區
記錄按一定的規則存儲在分區裡
適用於大型的表
二
建表
CREATE TABLE 表名 (EMPNO NUMBER(
)
NAME VARCHAR
(
)) PCTFREE
PCTUSED
STORAGE (INITIAL
K NEXT
K MAXEXTENTS
PCTINCREASE
) TABLESPACE 表空間名稱
[LOGGING|NOLOGGING]所有的對表的操作都要記入REDOLOG
ORACLE建議使用NOLOGGING
[CACHE|NOCACHE]
是否將數據按照一定的算法寫入內存
關於PCTFREE 和PCTUSED
A
行遷移和行鏈接
B
PCTFREE
制止INSERT
為 UPDATE留FREE 空間
C
PCTUSED
為恢復INSERT操作
而設定的
三
拷貝一個已經存在的表
CREATE TABLE 新表名 STORAGE(
) TABLESPACE 表空間
AS SELECT * FROM 老表名
當老表存在約束
觸發的時候
不會拷過去
四
修改表的參數
ALTER TABLE 名稱 PCTFREE
PCTUSED
STOAGE(MAXEXTENTS
)
五
手工分配空間
ALTER TABLE 名稱 ALLOCATE EXTENT(SIZE
K DATAFILE
)
SIZE選項
按照NEXT分配
表所在表空間與所分配的數據文件所在的表空間必須一樣
六
水線
水線定義了表的數據在一個BLOCK中所達到的最高的位置
當有新的記錄插入
水線增高
當刪除記錄時
水線不回落
減少查詢量
七
如何回收空間
ALTER TABLE 名稱 DEALLOCATE UNUSED [KEEP
[M|K]]
當空間分配過大時
可以使用本命令
如果沒有加KEEP
回收到水線
如果水線《MINEXTENTS的大小回收到MINEXTENTS所指定的大小
八
TRUNCATE 一個表
TRUNCATE TABLE 表名
表空間截取MINEXTENT
同時水線重置
九
DROP 一個表
DROP TABLE 表名 [CASCADE CONSTRAINTS]
當一個表含有外鍵的時候
是不可以直接DROP的
加CASCADE CONSRIANTS將外鍵等約束一並刪掉
十
信息獲取
dba_object
dba_tables:建表的參數
DBA_SEGMENTS:
組合查詢的連接字段
DBA_TABLES的table_name+dba_ojbect的object_name+dba_segments的SEGMENT_NAME
第十一章
索引的管理
一
索引的分類
邏輯上
單列索引 復合索引 唯一索引 非唯一索引
物理上
B
TREE OR BITMAP
B
TREE (NORMAL和反向索引)
二
CREATE INDEX
CREATE INDEX 名稱 ON 表名(列名) PCTFREE
STORAGE(
) TABLESPACE 名稱
沒有定義PCTUSED
索引是按照一定存儲的
如果通過PCTUSED允許恢復對BLOCK的INSERT操作
可能影響INDEX的效率
三
建立索引的注意事項
索引對查詢性能有提高
但對DML語句有影響
索引也應該放在一個專用的表空間
定義索引的EXTENT的大小時
=
*DB BLOCK
建立索引時
應采用 NOLOGGING
方式
四
修改索引
ALTER INDEX 名稱 STORAGE(新值)
五
分配空間給索引
ALTER INDEX 名稱 ALLOCATE EXTENT(SIZE
K DATAFILE
)
六
重建索引
提高查詢性能
當一個索引重建時
老的索引會在新索引建立完成後
被刪除
新索引建立過程中
老的索引仍可用於查詢
硬盤的開銷大
七
DROP一個索引
DROP INDEX 名稱
八
信息獲取
DBA_INDEXES:建索引的參數
DBA_IND_COLUMNS:
第十二章
用戶的管理
一
ORACLE的安全域
TABLESPACE QUOTAS
表空間的使用定額
DEFAULT TABLESPACE
默認表空間
TEMPORARY TABLESPACE
指定臨時表空間
ACCOUNT LOCKING
用戶鎖
RESOURCE LIMITE
資源限制
DIRECT PRIVILEGES
直接授權
ROLE PRIVILEGES
角色授權先將應用中的用戶劃為不同的角色
二
創建用戶時的清單
選擇一個用戶名稱和檢驗機制
A
看到用戶名
實際操作者是誰
業務中角色
選擇合適的表空間
決定定額
口令的選擇
臨時表空間的選擇
先建立一個臨時表空間
然後在分配
不分配
使用SYSTEM表空間
CREATE USER
授權
A
用戶的工作職能
B
用戶的級別
三
用戶的創建
命令
CREATE USER 名稱 IDENTIFIED BY 口令 DEFAULT TABLESPACE 默認表空間名 TEMPOARAY
TABLESPACE 臨時表空間名
QUOTA
M ON 表空間名
[PASSWORD EXPIRE]
當用戶第一次登陸到ORACLE
創建時所指定的口令過期失效
強迫用戶自己定義一個新口令
[ACCOUNT LOCK]
加用戶鎖
QUOTA UNLIMITED ON TABLESPACE
不限制
有多少有多少
[PROFILE 名稱]
受PROFILE文件的限制
四
如何控制用戶口令和用戶鎖
強迫用戶修改口令
ALTER USER 名稱 IDENTIFIED BY 新口令 PASSWORD EXPIRE
給用戶加鎖
ALTER USER 名稱 ACCOUNT [LOCK|UNLOCK]
注意事項
A
所有操作對當前連接無效
B
的操作適用於當用戶忘記口令時
五
更改定額
命令
ALTER USER 名稱 QUOTA
ON 表空間名
ALTER USER 名字 QUOTA (數值)K|M|UNLIMITED ON 表空間名
使用方法
A
控制用戶數據增長
B
當用戶擁有一定的數據
而管理員不想讓他在增加新的數據的時候
C
當將用戶定額設為零的時候
用戶不能創建新的數據
但原有數據仍可訪問
六
DROP一個USER
DROP USER 名稱
適合於刪除一個新的用戶
DROP USER 名稱 CASCADE
刪除一個用戶
將用戶的表
索引等都刪除
對連接中的用戶不好用
七
信息獲取
DBA_USERS:用戶名
狀態
加鎖日期
默認表空間
臨時表空間
DBA_TS_QUOTAS:用戶名
表空間名
定額
兩個表的連接字段
USERNAME
GRANT CREATE SESSION TO 用戶名
第十三章
PROFILE的管理(資源
文件)
一
PROFILE的管理內容
CPU的時間
I/O的使用
IDLE TIME(空閒時間)
CONNECT TIME(連接時間)
並發會話數量
口令機制
二
DEFAULT PROFILE
所有的用戶創建時都會被指定這個PROFILE
DEFAULT PROFILE的內容為空
無限制
三
PROFILE的劃分
CALL級LIMITE
對象是語句
當該語句資源使用溢出時
A
該語句終止
B
事物回退
C
SESSION連接保持
SESSION級LIMITE
對象是
整個會話過程
溢出時
連接終止
四
如何管理一個PROFILE
CREATE PROFILE
分配給一個用戶
象開關一樣打開限制
五
如何創建一個PROFILE
命令
CREATE PROFILE 名稱
LIMIT
SESSION_PER_USER
CPU_PER_SESSION
IDLE_TIME
CONNECT_TIME
六
限制參數
SESSION級LIMITE
CPU_PER_SESSION:定義了每個SESSION占用的CPU的時間
(
/
秒)
SESSION_PER_USER:每個用戶的並發連接數
CONNECT_TIME:一個連接的最長連接時間(分鐘)
LOGICAL_READS_PER_SESSION: 一次讀寫的邏輯塊的數量
CALL級LIMITE
CPU_PER_CALL:每個語句占用的CPU時間
LOGICAL_READS_PER_CALL:
七
分配給一個用戶
CREATE USER 名稱
PROFILE 名稱
ALTER USER 名稱 PROFILE 名稱
八
打開資源限制
RESOURCE_LIMT:資源文件中含有
ALTER SYSTEM SET RESOURCE_LIMIT=TRUE
默認不打開
九
修改PROFIE的內容
ALTER PROFILE 名稱參數 新值
對於當前連接修改不生效
十
DROP一個PROFILE
DROP PROFILE 名稱
刪除一個新的尚未分配給用戶的PROFILE
DROP PROFILE 名稱 CASCADE
注意事項
A
一旦PROFILE被刪除
用戶被自動加載DEFAULT PROFILE
B
對於當前連接無影響
C
DEFAULT PROFILE不可以被刪除
十一
信息獲取
DBA_USERS:
用戶名
PROFILE
DBA_PROFILES:
From:http://tw.wingwit.com/Article/program/Oracle/201311/18833.html