缩小数据处理范围
分区表
定时数据爬取-->缩小表数据
分时段/多线程处理
走索引
避免重复数据插入可以用唯一键插入异常处理
--------
INSERT INTO TB_A ....;
EXCEPTION
WHEN dup_val_on_index THEN
NULL;
WHEN OTHERS THEN
RETURN;
--------
一个几亿的表,做很多判断的时候不应走全表扫描,
应该缩小范围,如按时间间隔查询
---例1---
INSERT INTO TB_A ...;
EXCEPTION
WHEN ... THEN
...;
WHEN OTHERS THEN
...;
----例2---
EXIT WHEN ....;
-------------
常用语句:
游标读完--exit when v_cur%notfound;
当前SQL操作影响的行数 SQL%ROWCOUNT
sql%NOTFOUND --update,delete操作时没找到符合条件的记录。
sql%FOUND --SELECT columnname INTO,update,delete找到符合条件的记录Top
sql%rowcount --判定当前更新记录数
sql%isopen --判定当前游标是否打开Top
-------------------
loop例子:
------
a:=0;b:=10;
loop
a++; ---
exit when a>b; --
end loop;
--------
a:=0;
b:=10;
while a>b loop
a++;
end loop;
---------
a:=0;b:=10;
for i in 1..b
loop
a:=b ;
end loop;
----------
分区表
定时数据爬取-->缩小表数据
分时段/多线程处理
走索引
避免重复数据插入可以用唯一键插入异常处理
--------
INSERT INTO TB_A ....;
EXCEPTION
WHEN dup_val_on_index THEN
NULL;
WHEN OTHERS THEN
RETURN;
--------
一个几亿的表,做很多判断的时候不应走全表扫描,
应该缩小范围,如按时间间隔查询
---例1---
INSERT INTO TB_A ...;
EXCEPTION
WHEN ... THEN
...;
WHEN OTHERS THEN
...;
----例2---
EXIT WHEN ....;
-------------
常用语句:
游标读完--exit when v_cur%notfound;
当前SQL操作影响的行数 SQL%ROWCOUNT
sql%NOTFOUND --update,delete操作时没找到符合条件的记录。
sql%FOUND --SELECT columnname INTO,update,delete找到符合条件的记录Top
sql%rowcount --判定当前更新记录数
sql%isopen --判定当前游标是否打开Top
-------------------
loop例子:
------
a:=0;b:=10;
loop
a++; ---
exit when a>b; --
end loop;
--------
a:=0;
b:=10;
while a>b loop
a++;
end loop;
---------
a:=0;b:=10;
for i in 1..b
loop
a:=b ;
end loop;
----------