ITPUB??ì3
ITPUB论坛 » Oracle数据库管理 » 状态为unusable的索引影响DML速度吗?

标题: 状态为unusable的索引影响DML速度吗?
离线 fish523
初级会员



精华贴数 0
个人空间 0
技术积分 100 (16467)
社区积分 0 (690248)
注册日期 2005-11-16
论坛徽章:0
      
      

发表于 2008-7-17 11:47 
状态为unusable的索引影响DML速度吗?

状态为unusable的索引影响DML速度吗?
如果不影响的话,我原先的3个过程:
1.drop index
2.insert大量数据
3.create index
将要变为:
1.set index unusable
2. insert 大量数据
3. rebuild index
因为reuild原比create要快。
请各位大虾赐教,谢谢!


只看该作者    顶部
离线 xsmdel
Dber


来自 中国重庆
精华贴数 0
个人空间 140
技术积分 802 (2320)
社区积分 23 (7046)
注册日期 2008-2-20
论坛徽章:2
2008北京奥运纪念徽章:艺术体操2008北京奥运纪念徽章:排球    
      

发表于 2008-7-17 14:31 
能不能有相应图片,或者出现问题点贴出来!!!


__________________
临渊羡雨,不如退而结其网
只看该作者    顶部
离线 HuiYiSky
灰亦


精华贴数 0
个人空间 0
技术积分 1082 (1638)
社区积分 12 (9733)
注册日期 2007-1-31
论坛徽章:6
嫦娥授权会员2008北京奥运纪念徽章:击剑生肖徽章2007版:羊生肖徽章2007版:狗ITPUB新首页上线纪念徽章
      

发表于 2008-7-17 14:47 
我经常这么做的,不过3. rebuild index比create要快。没觉得,特别是online极慢的,我觉得的好处是不必去记原来建索引的相应字段以及顺序之类的!


只看该作者    顶部
在线/呼叫 zergduan
SE-RequieM


来自 Beijing Massage Center
精华贴数 0
个人空间 375
技术积分 6331 (203)
社区积分 1 (37815)
注册日期 2005-5-16
论坛徽章:25
ITPUB元老     
      

发表于 2008-7-17 16:34 


QUOTE:
原帖由 fish523 于 2008-7-17 11:47 发表
状态为unusable的索引影响DML速度吗?
如果不影响的话,我原先的3个过程:
1.drop index
2.insert大量数据
3.create index
将要变为:
1.set index unusable
2. insert 大量数据
3. rebuild index
因为reuild原比create要快。
请各位大虾赐教,谢谢!

请问怎么set index unusable???


__________________
只看该作者    顶部
离线 jolly10
一起看日落


来自 苏州
精华贴数 1
个人空间 120
技术积分 3212 (452)
社区积分 722 (1109)
注册日期 2005-3-7
论坛徽章:30
奥运纪念徽章2008北京奥运纪念徽章:赛艇2008北京奥运纪念徽章:射箭2008北京奥运纪念徽章:蹦床2008北京奥运纪念徽章:足球2008北京奥运纪念徽章:羽毛球
      

发表于 2008-7-17 16:38 
关注。。


__________________
MY ITPUB博客

If at first you don't succeed, try, try, try again.(再接再厲,終會成功.)
只看该作者    顶部
离线 HuiYiSky
灰亦


精华贴数 0
个人空间 0
技术积分 1082 (1638)
社区积分 12 (9733)
注册日期 2007-1-31
论坛徽章:6
嫦娥授权会员2008北京奥运纪念徽章:击剑生肖徽章2007版:羊生肖徽章2007版:狗ITPUB新首页上线纪念徽章
      

发表于 2008-7-17 16:56 
alter index t01_01 unusable;


只看该作者    顶部
在线/呼叫 zergduan
SE-RequieM


来自 Beijing Massage Center
精华贴数 0
个人空间 375
技术积分 6331 (203)
社区积分 1 (37815)
注册日期 2005-5-16
论坛徽章:25
ITPUB元老     
      

发表于 2008-7-17 17:07 


QUOTE:
原帖由 HuiYiSky 于 2008-7-17 16:56 发表
alter index t01_01 unusable;

index 都unusable 了,怎么可能再insert 数据?
10g新功能?


__________________
只看该作者    顶部
离线 foxmile
蚊子
难得糊涂啊


精华贴数 0
个人空间 49
技术积分 11848 (100)
社区积分 3012 (431)
注册日期 2004-5-8
论坛徽章:32
奥运纪念徽章     
      

发表于 2008-7-17 18:06 


QUOTE:
原帖由 zergduan 于 2008-7-17 17:07 发表


index 都unusable 了,怎么可能再insert 数据?
10g新功能?

索引不可用而已。跟insert啥关系


Cocuments and Settingszero1>sqlplus "/ as sysdba"

SQL*Plus: Release 10.1.0.2.0 - Production on 星期四 7月 17 18:00:56 2008

Copyright (c) 1982, 2004, Oracle.  All rights reserved.


连接到:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> conn test/test
已连接。
SQL> alter index bm_idx_bt unusable;

索引已更改。


SQL> insert into bm_idx select * from bm_idx where rownum <20;

已创建19行。

SQL> commit;

提交完成。

SQL> select owner,index_name,table_owner  from dba_indexes id  where id.index_na
me ='BM_IDX_BT';

OWNER                          INDEX_NAME
------------------------------ ------------------------------
TABLE_OWNER
------------------------------
TEST                           BM_IDX_BT
TEST


SQL>


__________________
我如狂风中的小草,亦似暴雨中的危楼,狂风暴雨这么多年了。我还是我。
朋友的淘宝店铺(女装哟)
http://shop36222150.taobao.com

我的blog   http://space.itpub.net/?79499
只看该作者    顶部
在线/呼叫 zergduan
SE-RequieM


来自 Beijing Massage Center
精华贴数 0
个人空间 375
技术积分 6331 (203)
社区积分 1 (37815)
注册日期 2005-5-16
论坛徽章:25
ITPUB元老     
      

发表于 2008-7-17 18:41 
看样子是10g,新特性,9i是不可以的~
Cocuments and SettingsRequieM>sqlplus mydb

SQL*Plus: Release 9.2.0.8.0 - Production on Thu Jul 17 18:40:13 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

Enter password:

Connected to:
Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production

SQL> create table t (a number);

Table created.

Elapsed: 00:00:00.02
SQL> create index t_i on t(a);

Index created.

Elapsed: 00:00:00.00
SQL> insert into t values(1);

1 row created.

Elapsed: 00:00:00.00
SQL> alter index t_i unusable;

Index altered.

Elapsed: 00:00:00.00
SQL> select index_name,status from user_indexes where index_name='T_I';

INDEX_NAME                     STATUS
------------------------------ --------
T_I                            UNUSABLE

Elapsed: 00:00:00.00
SQL> insert into t values(1);
insert into t values(1)
*
ERROR at line 1:
ORA-01502: index 'MYDB.T_I' or partition of such index is in unusable state


Elapsed: 00:00:00.00
SQL>


__________________
只看该作者    顶部
离线 sdusun
SUN


精华贴数 2
个人空间 0
技术积分 6421 (198)
社区积分 316 (1775)
注册日期 2005-9-13
论坛徽章:16
会员2007贡献徽章会员2006贡献徽章授权会员2008北京奥运纪念徽章:跳水2008北京奥运纪念徽章:皮划艇激流回旋2008北京奥运纪念徽章:艺术体操
2008北京奥运纪念徽章:花样游泳2008北京奥运纪念徽章:羽毛球生肖徽章2007版:鼠ITPUB新首页上线纪念徽章生肖徽章:虎开发板块每日发贴之星

发表于 2008-7-17 20:43 


QUOTE:
原帖由 zergduan 于 2008-7-17 17:07 发表


index 都unusable 了,怎么可能再insert 数据?
10g新功能?

呵呵。就这个问题还和一个哥们讨论过分区表索引。
在9i的时候,删除一个分区,全局索引肯定失效,此时insert失败。(我认为这是不合理的)
在10g,删除一个分区,全局索引依然失效(前提是没有指定要维护索引),但insert可以成功。

就楼主的问题,我倾向于第二个思路。


__________________
芝兰生于深林,不以无人而不芳!
关注:Oracle9i/10g/11g+linux/unix+存储技术
近期关注:10g/11g Data Guard,求DSI407
纸上得来终觉浅,绝知此事要躬行
子在川上曰:逝者如斯夫,不舍昼夜。时间怎么过得这么快呢?
E-mail:sdusun0819@hotmail.com
Apply for Oracle Consultant or DBA position. 非诚勿扰!
只看该作者    顶部
相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问