|
大家跑的测试数据效率如何:
begin
for t in(select table_name from user_tables where table_name in('SERVICE_USAGE',
'SERVICES',
'COMPANIES',
'SERVICE_USERS',
'SERVICE_RATES')) loop
execute immediate 'alter table ' || t.table_name || ' disable primary key cascade';
execute immediate 'truncate table ' || t.table_name;
end loop;
--假设有100个服务
insert into services
select rownum, 'service ' || rownum
from dual connect by rownum <= 100;
--假设有100个公司
insert into companies
select rownum, 'company ' || rownum
from dual connect by rownum <= 100;
--假设每个公司有30个员工
insert into service_users
select rownum, company_id, 'user ' || rownum
from companies, (select rownum r from dual connect by rownum <= 30);
--每个员工使用每项服务
insert into service_usage
select rn, user_id, service_id, add_months(a, mm), add_months(b, mm) + dd from (
select rownum rn, user_id, service_id, date'2010-1-1' a, date'2010-1-1' b, trunc(dbms_random.value(1,12)) mm, trunc(dbms_random.value(1,13)) dd
from service_users, services);
--每个公司都有使用每项服务
insert into service_rates
select SERVICE_ID, COMPANY_ID, r , r USER_COUNT_MIN, decode(r, 4, 9999999, r) USER_COUNT_MAX, trunc(dbms_random.value(1,13)) RATE
from services, companies, (select rownum r from dual connect by rownum <= 4);
commit;
end; |
|