Oracle之DBA入门四

本文介绍了Oracle数据库的存储结构、数据块内容、未提交数据管理、表管理等内容,并详细讲解了如何管理和监控索引,以及如何维护数据完整性,包括各种约束的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Chapter 9 storage structure
Database block contents:header,free space, data

HWM: High-Water Mark

dba_extents
dba_segments
dba_tablespaces
dba_data_files
dba_free_space

---------------
Chapter 10 Managing undo data
// undo segment needs max blocks
select max(undoblks/((end_time-begin_time)*24*3600))
from v$undostat;
// undo segment's average blocks
select sum(undoblks) / sum((
end_time -begin_time)*24*3600) from v$undostat;

========================
Chapter 11 Managing Tables
Regular Table(Hip table):
表最大可以有1000列,但不要超过254列,会影响到效率.
一个表空间可以包含1022个文件.

RowId:快速定位一条记录最快的方法.
Rowid是数据库中一行的惟一标志.


create tablespace assm datafile 'd:/oracle/tt/mssm_1.dbf'
size 100M extent management
local uniform size 128K segment space management manual

create tablespace mssm datafile 'd:/oracle/tt/mssm_1.dbf'
size 100M extent management
local uniform size 128K segment space management manual

create user as1 identified by as1 default tablespace assm;
grant connect ,resource to ms1;

pctfree 相当重要,会控制row migration
initrans:影响并发量

create global temporary table....
临时表有两个级别:session级别,transaction级别

Row Migration & Chaining

查看表的详细信息:
select dbms_metadata.get_ddl('TABLE','T') from dual;

=================
Chapter 12 Managing Index
B-tree index
Bitmap index

select object_name, object_type from user_objects;
drop index my_bit_index;

To Monitor a index
v$object_usage动态性能视图里保存了监控信息
alter index JOB_ID_PK monitoring usage;
alter index JOB_ID_PK nomonitoring usage;
select * from v$object_usage;

===============
Chapter 13 Maintaining Data Integerity
Constraint:
not null
列级约束
alter table t modify id not null;

check
可以在column和table级别定义.
alter table tt add constraint age_ct check(age>0);
check的condition不能使用查询,伪列,系统函数.

unique
单行惟一或多行组合惟一.
会自动创建一个索引
允许有NULL
alter table t add constraint uniquue_id unique(id);
drop index unique_id // 不能drop掉

primary key
unique + null
a table can have only one primary key.
被引用的表相应的字段必须有惟一性或主键约束.
foreign key
alter table dept add primary key (dept_id);

alter table emp add constaint fk_emp1
foreign key(dept_id) references dept(dept_id)
on delete cascade;

约束高级知识点:
Create Disabled Constraint
alter table emp add primary key(emp_id) disable;
如此创建的约束不会立即生效
alter table emp enable primary key;
alter table emp disable primary key;
alter table emp drop constraint xxx;
alter table emp drop primary key cascade;

Constraint States
disable novalidate:不启动不检查
disable VALIDATE:将表变为只读状态.
enable NOVALIDATE:启动约束,不检查表中已存数据.
enable validate:启动还检查表中的数据

推荐启动顺序:disable novalidate->enable novalidate->
enable validate 这样不会将表锁死,提高效率.

alter table t add primary key(id) disable;
// 此时还不会创建索引,user_objects看不到
alter table t enable novalidate primary key;
truncate table t;

Constraint Checking
dml statement -> check nondeferred constraints
-> commit -> check deferred constraints

alter table t drop primary key;
alter table t add primary key(id) deferrable;
alter table t disable primary key;
alter table t disable validate primary key;
set constraints all deferred;
set constraint constraint_name deferred;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值