Oracle千萬條記錄的測試

2021-04-26 14:22:50 字數 1268 閱讀 2987

客戶-訂單-訂單項

插入資料的儲存過程如下:

create or replace procedure createusers is

v_sequ_user number(19);

v_sequ_order number(19);

begin

for v_count in 1..1000000 loop

insert into user_ values(seq_all.nextval, 'user_'||v_count, 'user_'||v_count, sysdate, '這是第'||v_count||'使用者');

select seq_all.currval into v_sequ_user from dual;

for v_order_cout in 1..3 loop

insert into order_ values(seq_all.nextval, sysdate,v_sequ_user, '這是第'||v_count||'使用者第'||v_order_cout||'張訂單');

select seq_all.currval into v_sequ_order from dual;

for v_item_count in 1..5 loop

insert into item_ values(seq_all.nextval,'訂單項'||v_item_count,dbms_random.value(100, 100000), dbms_random.value(1, 1000), '這是第'||v_count||'使用者第'||v_order_cout||'張訂單第'||v_item_count||'個訂單項', v_sequ_order);

end loop;

end loop;

if mod(v_count, 100) = 0 then

commit;

end if;

end loop;

end createusers;

總共插入季1900w條記錄,用了4898.188秒。

--查詢訂單總額大於10000的所有使用者的姓名和訂單號

select u.name_, o.id_

from user_ u, order_ o,  (select i.fk_order_item, sum(i.price_) from item_ i group by i.fk_order_item) temp

where u.id_ = o.fk_user_order_

and temp.fk_order_item = o.id_;

千萬條記錄分頁查詢優化

分頁查詢是最常用的場景之一,但通常也是最容易出問題的地方。比如對於下面簡單的語句,一般 dba 想到的辦法是在 type,name,create time 欄位上加組合索引。這樣條件排序都能有效的利用到索引,效能迅速提公升。select from tstb logwhere type sqlstat...

MySQL儲存過程(測試插入100萬條記錄)

向資料庫中插入100萬條記錄,不得不提及mysql的儲存過程 mysql的儲存過程從5.0版本開始支援,它是一種在資料庫中儲存複雜程式,以便外部程式呼叫的一種資料庫物件。簡言之就是一組可程式設計函式,為了完成特定功能的sql語句集,經編譯建立並儲存在資料庫中,使用者可通過指定儲存過程的名字並給定引數...

需求千萬條,質量第一條 單元測試的前生今生

和標題是一樣的 需求千萬條,質量第一條,保證 的質量是開發者應該具備的硬性能力。其實很多開發者都明知道單元測試很重要,但是為什麼還那麼反感單元測試呢?原因有三 1.單元測試太浪費時間了,很多需求都做不完,哪有功夫閒心去做單元測試,如果做單元測試,完成不了需求,程式猿是需要背鍋的,所以為了不背鍋只能捨...