a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 137|回复: 0

[考试辅导] 关于oracle快速删除和快速插入的方法代码

[复制链接]
发表于 2012-8-4 14:06:19 | 显示全部楼层 |阅读模式
-快速插入  
* [! Q/ h; Q$ H4 j0 J2 u, k/ S9 t9 m: g
SQL> insert /**//*+append*/ into t select * from dba_objects nologging;  
  ~6 Q" G6 R' G! j- ?1 G+ I' R* H+ x
' Q1 j# d1 B$ s3 ?$ `3 x9157 rows created.  
' v+ t" L# r$ \9 L% R) c/ v4 _( x: R9 Y1 g4 P
0 B( `  {8 R  h3 z& p2 O# S
SQL> select a.xidusn,a.xidslot,a.used_ublk,a.used_urec,b.username  8 j, i+ y! H1 v$ Y2 Q
2 from v$transaction a,v$session b,v$mystat c  
7 l" n- E/ @& Y1 _& _. d 3 where a.addr = b.taddr and c.statistic# = 1  
' V9 E3 j9 e+ m  x0 |* Z! C 4 /  
+ Q# z9 e* G4 b& m) p$ H% S- J7 b* G$ {2 k" B  _
XIDUSN XIDSLOT USED_UBLK USED_UREC USERNAME  
% y* n) j' H% E" W---------- ---------- ---------- ---------- ------------------------------  8 f" K! y: M+ k& i9 y' ~" `7 l! s
2 21 1 1 CUST  ' S+ B" T1 O, A( g

0 }; v% T1 G+ ]6 z) `SQL> commit;  
9 s% u. x7 {  s7 h1 W0 V1 N  l
4 a* k: i+ ~, Q' a: C/ H! D# sCommit complete.  7 D3 b' N& |9 b# I

4 z- I. L& P0 }" Y0 ^SQL> insert into t select * from dba_objects;  
& X- C: g/ x  [" J0 y
: e3 j; B. }! q* }9157 rows created.  % l  X! Z7 {/ w1 K8 w
9 ~6 b3 s+ D& P2 B
SQL> select a.xidusn,a.xidslot,a.used_ublk,a.used_urec,b.username  + H) g+ F: t; M/ M" [, P
2 from v$transaction a,v$session b,v$mystat c  5 Z& E+ {; |: M  Q
3 where a.addr = b.taddr and c.statistic# = 1  
7 H6 Z. G) H3 A8 U0 y 4 /  
) ?% E; d* S( G6 J( i& a$ q' `/ ?- N0 \9 |' N- D4 q, H" \
XIDUSN XIDSLOT USED_UBLK USED_UREC USERNAME  
3 J7 Z! D( i, M3 N---------- ---------- ---------- ---------- ------------------------------  / h8 t6 w: B# R7 m5 @3 Z5 }; b; Y- `
1 1 13 423 CUST  
9 G5 j) e2 R, Z$ T
; ?/ w" A2 H$ e  @5 _' X! n* e: |! r
快速删除  
2 J  z9 z2 T. a4 p- K+ e5 d2 Q建个存储过程,达到2000条或者更多条,提交一次.  1 r$ u- m1 F- x2 x
create or replace procedure p_delete  6 l0 k$ j# _: Q/ n" r' Z0 C+ k; e+ i
as  - S: f! Q/ f+ c  K+ k* z
n number(10);  
. t- L$ {/ Y. Y3 ?! w2 @  Acursor my_cur is select * from t1;  
1 f& z/ i+ m) Q  A! v/ j/ p* Ubegin  
- Q( O- R% L5 E2 Kn:=0;    O8 \0 [) `5 y+ v
for i in my_cur loop   
6 c+ Y4 E+ z2 z6 M0 idelete from t1 where ;  . v" ?! Z; i/ W/ c
n:=n+1;  2 P3 D4 s& Q0 a# F# `, ?
if (mod(n,2000))=0 then  " k, l( F5 G( N
commit;  * e+ s4 ?, K* f( B
end if;  
1 D2 w* q! ^" T: qend loop;  
# P% e& @; U4 yend;  : R1 q1 T; F2 y$ s! m9 P
/
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-9-28 06:37 , Processed in 1.439142 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表