oracle的optimizer会对一些sql语句进行查询转换,比如:合并视图
子查询非嵌套化
inlist转换
下面讲讲遇到的in list转化优化的案例:
create tabletest(
col1varchar2(12)
col2numberextvarchar2(4000)
);create index test_ind on test(user_id, col2);create sequence seq_test cache 200;
第一步:准备一些测试数据(10个线程随机的插入数据):
#!/bin/shfor((i=1;i<=$1;i++))
do/home/oracle/insert.sh &done
#######################################################
#!/bin/sh
./home/oracle/.bash_profile
sqlplus-S /nolog<
conn test/ali88declaretype arraylistis table of varchar2(20byte);
arr_user arraylist;
rannumber;beginarr_user := arraylist();arr_user.extend(3);arr_user(1):=‘xpchild001‘;
arr_user(2):=‘xpchild002‘;arr_user(3):=‘xpchild003‘;
ran :=dbms_random.value(1,3);while(1>0) loopinsert into test(col1,col2,ext)values(arr_user(ran),seq_test.nextval,dbms_random.string(‘|‘, 300));commit;