马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
因此我们的保存数据方法就是:在删除的动作开始之前,把表数据备份起来,然后留一个空表,在空表上执行“删除”操作。
参数optimizer_index_cost_adj设定了经由过程索引扫描和全表扫描之间的价值损耗干系,其默许值为100,暗示ORACLE在盘算查询本钱时,经由过程索引查找和全表扫描本钱相称。该参数值越小,标明经由过程索引查找的价值越小,反之则越年夜。
经由过程以下实验,演示该参数的用法。
1)检察参数optimizer_index_cost_adj确当前值
SQL>conn/assysdba
Connected.
SQL>showparameteroptimizer_index_cost_adj
NAMETYPEVALUE
--------------------------------------------------------
optimizer_index_cost_adjinteger100
--参数以后的默许值为100
SQL>
SQL>selectisses_modifiable,issys_modifiable
2fromv$parameter
3wherename=optimizer_index_cost_adj;
ISSESISSYS_MOD
--------------
TRUEFALSE
--申明该参数能够在SESSION级别静态改动,
但不克不及在SYSTEM级别静态改动
2)创立表及索引,并对表举行剖析
SQL>connscott/tiger
Connected.
SQL>createtabletest(anumber,bchar(10));
Tablecreated.
SQL>
SQL>begin
2foriin1..10000loop
3insertintotestvalues(i,to_char(i));
4endloop;
5commit;
6end;
7/
PL/SQLproceduresuccessfullycompleted.
SQL>
SQL>createindexidx_test_aontest(a);
Indexcreated.
SQL>
SQL>analyzetabletestcomputestatistics
2fortable
3forallindexes
4forallindexedcolumns;
Tableanalyzed.
SQL>
3)将参数optimizer_index_cost_adj设为100,检察响应的实行企图
SQL>setautotracetraceonlyexplain
SQL>altersessionsetoptimizer_index_cost_adj=100;
Sessionaltered.
SQL>select*fromtestwherea=1;
ExecutionPlan
----------------------------------------------------------
0SELECTSTATEMENTOptimizer=CHOOSE(Cost=2Card=1Bytes=15)
10TABLEACCESS(BYINDEXROWID)OFTEST(Cost=2Card=1Byt
es=15)
21INDEX(RANGESCAN)OFIDX_TEST_A(NON-UNIQUE)(Cost=1
Card=1)
在以上部分中,ORACLE接纳了准确的查找办法,利用索引来查找数据。
上面演示怎样让ORACLE接纳全表扫描的体例来查找数据,固然我们明知这类体例效力不高。
4)改动参数optimizer_index_cost_adj为1000,改动ORACLE的决议历程
SQL>altersessionsetoptimizer_index_cost_adj=1000;
Sessionaltered.
SQL>select*fromtestwherea=1;
ExecutionPlan
----------------------------------------------------------
0SELECTSTATEMENTOptimizer=CHOOSE(Cost=4Card=1Bytes=15)
10TABLEACCESS(FULL)OFTEST(Cost=4Card=1Bytes=15)
在以演出示中,经由过程改动optimizer_index_cost_adj参数,ORACLE接纳全表扫描来实行一样的查询。
5)总结
在OLTP体系中,能够思索将optimizer_index_cost_adj参数值设小,使体系偏向于利用索引;在DSS体系中,则能够思索得当将该参数调年夜,影响ORACLE的决议历程。
对于update操作,event中依次记录旧行,新行的值。 |