关闭oracle表并发,每秒900,一天400万数据,如何控制并发操作表数据?

这段代码在Oracle环境中执行,初始化变量并设置起始时间为2016年8月1日,然后在一个循环中每次增加200万秒生成新的时间戳。同时,利用DBMS_RANDOM包生成16个随机数,并将这些随机数和时间戳插入到real_data表中。每50次插入后进行一次提交,并暂停1秒以避免过快的写入操作。在循环过程中捕获可能的异常。
摘要由CSDN通过智能技术生成

Declare

time_index Number;

start_time Timestamp(3);

tmp_time Timestamp(3);

tmp_value1 Float;

tmp_value2 Float;

tmp_value3 Float;

tmp_value4 Float;

tmp_value5 Float;

tmp_value6 Float;

tmp_value7 Float;

tmp_value8 Float;

tmp_value9 Float;

tmp_value10 Float;

tmp_value11 Float;

tmp_value12 Float;

tmp_value13 Float;

tmp_value14 Float;

tmp_value15 Float;

tmp_value16 Float;

Begin

--initiaze the variable

time_index:=0;

--  start_time:=to_timpstamp('2016-08-01 00:00:00.000','yyyy-mm-dd hh24:mi:ss');

SELECT to_timestamp('2016-08-01 00:00:00:000', 'yyyy-mm-dd hh24:mi:ss:ff') Into start_time  FROM DUAL;

dbms_output.put_line(start_time);

While time_index

Loop

-- add 20 millionseconds

SELECT start_time+numtodsinterval((0.02*time_index),'SECOND') Into tmp_time  FROM DUAL;

-- dbms_output.put_line(tmp_time);

-- create random number

select dbms_random.value Into tmp_value1 from dual ;

select dbms_random.value Into tmp_value2 from dual ;

select dbms_random.value Into tmp_value3 from dual ;

select dbms_random.value Into tmp_value4 from dual ;

select dbms_random.value Into tmp_value5 from dual ;

select dbms_random.value Into tmp_value6 from dual ;

select dbms_random.value Into tmp_value7 from dual ;

select dbms_random.value Into tmp_value8 from dual ;

select dbms_random.value Into tmp_value9 from dual ;

select dbms_random.value Into tmp_value10 from dual ;

select dbms_random.value Into tmp_value11 from dual ;

select dbms_random.value Into tmp_value12 from dual ;

select dbms_random.value Into tmp_value13 from dual ;

select dbms_random.value Into tmp_value14 from dual ;

select dbms_random.value Into tmp_value15 from dual ;

select dbms_random.value Into tmp_value16 from dual ;

--dbms_output.put_line(tmp_value);

-- Insert Into ac_data (sensor_id,data,record_time) Values(sensor_index,tmp_value,tmp_time);

Insert Into real_data Values(tmp_time,tmp_value1,tmp_value2,tmp_value3,tmp_value4,tmp_value5,tmp_value6,tmp_value7,tmp_value8,tmp_value9,tmp_value10,tmp_value11,tmp_value12,tmp_value13,tmp_value14,tmp_value15,tmp_value16);

if mod(time_index,50)=0 then

commit;

dbms_lock.sleep(1);

End If;

time_index:=time_index+1;

End Loop;

Exception

WHEN OTHERS THEN

dbms_output.put_line('exception done!');

End;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值