一ORACLE的表的分类
REGULAR TABLE普通表ORACLE推荐的表使用很方便人为控制少
PARTITIONED TABLE分区表人为控制记录的分布将表的存储空间分为若干独立的分区记录按一定的规则存储在分区里适用于大型的表
二建表
CREATE TABLE 表名 (EMPNO NUMBER()NAME VARCHAR()) PCTFREE PCTUSED
STORAGE (INITIAL K NEXT K MAXEXTENTS PCTINCREASE ) TABLESPACE 表空间名称
[LOGGING|NOLOGGING]所有的对表的操作都要记入REDOLOGORACLE建议使用NOLOGGING
[CACHE|NOCACHE]是否将数据按照一定的算法写入内存
关于PCTFREE 和PCTUSED
A行迁移和行链接
BPCTFREE制止INSERT为 UPDATE留FREE 空间
CPCTUSED为恢复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
第十一章索引的管理
一索引的分类
逻辑上
单列索引 复合索引 唯一索引 非唯一索引
物理上
BTREE OR BITMAP
BTREE (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事物回退
CSESSION连接保持
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对于当前连接无影响
CDEFAULT PROFILE不可以被删除
十一信息获取
DBA_USERS:
用户名PROFILE
DBA_PROFILES: