forall_for loop效能對比測試_plsql
SQL> show user
USER is "SCOTT"
SQL> create table blktest(num number(20),name varchar2(50));
Table created.
set time on timing on
create or replace procedure p_compare
is
type numtab is table of blktest.num%type index by binary_integer;
type nametab is table of blktest.name%type index by binary_integer;
r_num numtab;
r_name nametab;
t1 number;
t2 number;
t3 number;
begin
for i in 1..1000000 loop
r_num(i):=i;
r_name(i):='rec no '||to_char(i);
end loop;
select dbms_utility.get_time into t1 from dual;
for i in 1..1000000 loop
insert into blktest values(r_num(i),r_name(i));
if mod(i,10000)=0 then
commit;
end if;
end loop;
select dbms_utility.get_time into t2 from dual;
forall i in 1..1000000
insert into blktest values(r_num(i),r_name(i));
commit;
select dbms_utility.get_time into t3 from dual;
dbms_output.put_line('execution time(hsecs)');
dbms_output.put_line('for loop:'||to_char(t2 - t1));
dbms_output.put_line('forall:'||to_char(t3 -t2));
end;
/
Procedure created.
Elapsed: 00:00:00.48
22:49:36 SQL>
22:49:47 SQL>
22:49:47 SQL> set serveroutput on
22:49:53 SQL> exec p_compare;
execution time(hsecs)
for loop:6437
forall:7675
PL/SQL procedure successfully completed.
### tail -f alert_orcl.log 日誌頻繁出現如下塗紅資訊
Sat Aug 7 11:22:50 2010
Thread 1 cannot allocate new log, sequence 16
Checkpoint not complete
Current log# 2 seq# 15 mem# 0: /oracle/oradata/orcl/redo02.log
Thread 1 advanced to log sequence 16
Current log# 3 seq# 16 mem# 0: /oracle/oradata/orcl/redo03.log
Sat Aug 7 11:27:04 2010
Thread 1 cannot allocate new log, sequence 17
Checkpoint not complete
Current log# 3 seq# 16 mem# 0: /oracle/oradata/orcl/redo03.log
Thread 1 advanced to log sequence 17
Current log# 1 seq# 17 mem# 0: /oracle/oradata/orcl/redo01.log
Sat Aug 7 11:27:17 2010
Thread 1 cannot allocate new log, sequence 18
Checkpoint not complete
Current log# 1 seq# 17 mem# 0: /oracle/oradata/orcl/redo01.log
Thread 1 advanced to log sequence 18
Current log# 2 seq# 18 mem# 0: /oracle/oradata/orcl/redo02.log
Sat Aug 7 11:27:46 2010
ORACLE Instance orcl - Can not allocate log, archival required
Sat Aug 7 11:27:46 2010
Thread 1 cannot allocate new log, sequence 19
All online logs needed archiving
解決方法:
1.增大redo log的大小
2.增加redo log group的數目.
3.加快dbwr寫資料檔案速度.
我把log日誌檔案大小加大到200m,這下日誌switch切得慢了,沒有以上提示了
不過效能測試還是forall與for loop沒有明顯的區別
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-670478/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Nginx 和 Gunicorn 效能對比測試Nginx
- linux tinydrm vs fbtft 效能對比測試Linux
- c# sqlsugar,hisql,freesql orm框架全方位效能測試對比 sqlserver 效能測試C#SqlSugarORM框架Server
- MySQL效能基準測試對比:5.7 VS 8.0MySql
- locust 與 jmeter 效能測試對比會更優?JMeter
- sqlsugar freesql hisql 三個ORM框架效能測試對比SqlSugarORM框架
- TDengine 和 InfluxDB 查詢效能對比測試報告UX測試報告
- CYQ.Data 操作 Redis 效能測試:對比 StackExchange.RedisRedis
- CYQ.Data 操作 Json 效能測試:對比 Newtonsoft.JsonJSON
- 閘道器服務:zuul與nginx的效能測試對比ZuulNginx
- 通用MPU效能測試對比 RZ/G2L核心板
- python主流框架測試對比Python框架
- 效能測試常用工具對比:Jmeter與LoadRunner的異同JMeter
- 由國產效能測試工具WEB壓力測試模擬能力對比讓我想到的Web
- PostgreSQL TPROC-C基準測試:PostgreSQL 12與PostgreSQL 13效能對比SQL
- AMD速龍200GE處理器效能對比測試評測:Intel奔騰對手駕到!Intel
- for & range 效能對比
- 敏捷測試VS傳統測試對比,6招玩轉敏捷測試!敏捷測試
- SpringBoot2 整合測試元件,七種測試手段對比Spring Boot元件
- RTX2070顯示卡評測:與GTX1070(Ti)、GTX1080效能對比測試
- 5個效能測試工具哪個更好用?對比結果新鮮出爐!
- 差異巨大 6款通用工業級ARM處理器效能測試對比
- 對比測試工具平臺讓財務測試飛起來
- 集合差異比較演算法及效能測試演算法
- 效能測試
- Jmeter介面測試+效能測試JMeter
- TIDB和MySQL效能對比TiDBMySql
- 驍龍710、麒麟710和聯發科P60效能對比測試 哪個好?
- java高效能反射及效能對比Java反射
- 使用python對oracle進行簡單效能測試PythonOracle
- 點對點傳輸效率對比測試——鐳速傳輸
- Apache Pulsar 與 Kafka 效能比較:延遲性(測試方法)ApacheKafka
- 【PG效能測試】pgbench效能測試工具簡單使用
- Jmeter效能測試:高併發分散式效能測試JMeter分散式
- 測試開發之效能篇-效能測試設計
- 效能測試——效能測試-常見效能指標-總體概況指標
- 微服務測試之效能測試微服務
- 效能測試之測試指標指標
- 筆記-圓角四種方法的對比以及效能檢測筆記