最近在學(xué)習(xí)存儲(chǔ)過(guò)程,以前在項(xiàng)目中沒(méi)有怎么接觸過(guò)!
我通過(guò)存儲(chǔ)過(guò)程像數(shù)據(jù)庫(kù)中批量添加一千萬(wàn)(100000000)條記錄,結(jié)果PL/SQL很長(zhǎng)時(shí)間沒(méi)有反映,結(jié)果不得已通過(guò)腳本殺掉當(dāng)前進(jìn)程,我重新通過(guò)存儲(chǔ)過(guò)程插入10000條數(shù)據(jù)。
建表腳本:
1
--刪除用戶表
2
DROP TABLE T_PORTAL_USER;
3
4
--創(chuàng)建用戶表
5
CREATE TABLE T_PORTAL_USER
6
(
7
id NUMBER PRIMARY KEY, -- 用戶表示
8
username VARCHAR2(24) NOT NULL,-- 用戶名
9
password VARCHAR2(24) NOT NULL,-- 密碼
10
realname VARCHAR2(24) NOT NULL,-- 真實(shí)姓名
11
sex VARCHAR2(2) DEFAULT '0',-- 性別 "0":Male "1":Female
12
registerDate TIMESTAMP NOT NULL,-- 注冊(cè)日期
13
state VARCHAR2(2) NOT NULL -- 賬號(hào)狀態(tài) "0":啟用 "1":注銷
14
)
15
16
--刪除用戶表序列
17
DROP SEQUENCE SEQ_T_PORTAL_USER;
18
19
--創(chuàng)建用戶表序列
20
CREATE SEQUENCE SEQ_T_PORTAL_USER
21
START WITH 1
22
INCREMENT BY 1
23
NOMAXVALUE
24
CACHE 20
-- 批量新增一萬(wàn)條用戶
1
-- 批量新增一萬(wàn)條用戶
2
CREATE OR REPLACE PROCEDURE PROC_USER_CREATE_BAT
3
AS
4
startTime VARCHAR2(32);--開(kāi)始時(shí)間
5
endTime VARCHAR2(32);--結(jié)束時(shí)間
6
BEGIN
7
SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss:ff') INTO startTime FROM DUAL;
8
DBMS_OUTPUT.PUT_LINE('Start Time: '||startTime);
9
FOR i in 1..10000 LOOP
10
INSERT INTO T_PORTAL_USER VALUES(SEQ_T_PORTAL_USER.NEXTVAL,'owen'||i,'123456','gekunjin'||i,'0',sysdate,'0');
11
END LOOP;
12
SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss:ff') INTO endTime FROM DUAL;
13
DBMS_OUTPUT.PUT_LINE('End Time: '||endTime);
14
END PROC_USER_CREATE_BAT;
posted on 2010-11-27 14:41
absolute 閱讀(3698)
評(píng)論(1) 編輯 收藏 所屬分類:
DataBase