http://www.cnblogs.com/jyzhao/category/1045722.html
模拟业务最小测试用例
环境:RHEL6.4 + Oracle 11.2.0.4
1.创建业务用户表空间
-
假设使用了OMF管理,不需要明确指定数据目录(判定是否使用了OMF技术,查看db_create_file_dest参数配置:show parameter db_create_file_dest)
-- 数据表空间 create tablespace dbs_d_jingyu datafile size 30M autoextend off; -- 临时表空间 create temporary tablespace temp_jingyu tempfile size 30M autoextend off; -- 索引表空间(可选) create tablespace dbs_i_jingyu datafile size 30M autoextend off;
-
假设文件系统管理,且未使用OMF管理,规划的数据目录是/oradata1
-- 数据表空间 create tablespace dbs_d_jingyu datafile \'/oradata1/datafiles/dbs_d_jingyu01.dbf\' size 30M autoextend off; -- 临时表空间 create temporary tablespace temp_jingyu tempfile \'/oradata1/tempfiles/temp_jingyu01.tmp\' size 30M autoextend off; -- 索引表空间(可选) create tablespace dbs_i_jingyu datafile \'/oradata1/datafiles/dbs_i_jingyu01.dbf\' size 30M autoextend off;
-
假设ASM磁盘组,指定磁盘组是+DATA,具体路径OMF管理
-- 数据表空间 create tablespace dbs_d_jingyu datafile \'+DATA\' size 30M autoextend off; -- 临时表空间 create temporary tablespace temp_jingyu tempfile \'+DATA\' size 30M autoextend off; -- 索引表空间(可选) create tablespace dbs_i_jingyu datafile \'+DATA\' size 30M autoextend off;
2.创建业务用户
-- 假设创建用户 jingyu 密码 jingyu,默认临时表空间 temp_jingyu, 默认数据表空间 dbs_d_jingyu。
CREATE USER jingyu IDENTIFIED BY jingyu
TEMPORARY TABLESPACE temp_jingyu
DEFAULT TABLESPACE dbs_d_jingyu
QUOTA UNLIMITED ON dbs_d_jingyu;
3.赋予用户权限
-- 赋予普通业务用户权限
grant resource, connect to jingyu;
-- 赋予DBA用户权限
grant dba to jingyu;
4.创建业务表
新建业务用户登录,创建T1,T2两张业务表,并插入测试数据。
-- 业务用户登录
conn jingyu/jingyu
-- 删除T1,T2两张表
drop table t1 cascade constraints purge;
drop table t2 cascade constraints purge;
-- 创建T1,T2两张表
create table t1( id number not null, n number, contents varchar2(4000) ) tablespace dbs_d_jingyu;
create table t2( id number not null, t1_id number not null, n number, contents varchar2(4000) ) tablespace dbs_d_jingyu;
-- 初始化向T1,T2表插入随机测试数据
execute dbms_random.seed(0);
set timing on
insert into t1 select rownum, rownum, dbms_random.string(\'a\',50) from dual connect by level <= 100 order by dbms_random.random;
commit;
insert into t2 select rownum, rownum, rownum, dbms_random.string(\'b\',50) from dual connect by level <= 100000 order by dbms_random.random;
commit;
-- 查询T1,T2表数据量
select count(1) from t1;
select count(1) from t2;
5.创建索引
-- 创建T1表字段n的索引idx_t1_n
create index idx_t1_n on t1(n) tablespace dbs_i_jingyu;
-- 创建T2表字段id的索引idx_t2_t1id
create index idx_t2_t1id on t2(t1_id) tablespace dbs_i_jingyu;
6.业务查询SQL
-- 业务查询SQL 1
select * from t1, t2 where t1.id = t2.t1_id and t1.n = 19;
-- 业务查询SQL 2
select * from t1, t2 where t1.id = t2.t1_id;
7.删除业务用户及数据
-- 删除业务用户jingyu
drop user jingyu cascade;
8.删除业务表空间
-- 删除数据表空间及其文件
drop tablespace dbs_d_jingyu including contents and datafiles;
-- 删除索引表空间及其文件
drop tablespace dbs_i_jingyu including contents and datafiles;
-- 删除临时表空间及其文件
drop tablespace temp_jingyu including contents and datafiles;