ITPUB??ì3
新一届的微软MVP评选已经开始,欢迎各位推荐!
ITPUB论坛 » Oracle数据库管理 » 状态为unusable的索引影响DML速度吗?

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



精华贴数 0
个人空间 0
技术积分 134 (13222)
社区积分 0 (690999)
注册日期 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
技术积分 1149 (1549)
社区积分 41 (5383)
注册日期 2008-2-20
论坛徽章:3
授权会员2008北京奥运纪念徽章:艺术体操2008北京奥运纪念徽章:排球   
      

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


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


精华贴数 0
个人空间 0
技术积分 1120 (1607)
社区积分 12 (9891)
注册日期 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
个人空间 396
技术积分 6689 (191)
社区积分 1 (38236)
注册日期 2005-5-16
论坛徽章:27
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
技术积分 3565 (411)
社区积分 958 (972)
注册日期 2005-3-7
论坛徽章:33
奥运纪念徽章体育版块博采纪念徽章生肖徽章:猴   
      

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


__________________
MY ITPUB博客

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


精华贴数 0
个人空间 0
技术积分 1120 (1607)
社区积分 12 (9891)
注册日期 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
个人空间 396
技术积分 6689 (191)
社区积分 1 (38236)
注册日期 2005-5-16
论坛徽章:27
ITPUB元老     
      

发表于 2008-7-17 17:07 


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

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


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


精华贴数 0
个人空间 52
技术积分 12271 (96)
社区积分 3546 (380)
注册日期 2004-5-8
论坛徽章:27
2008北京奥运纪念徽章:自行车2008北京奥运纪念徽章:跳水2008北京奥运纪念徽章:体操   
      

发表于 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>


__________________
疾风知劲草 板荡识诚臣!
我的blog   http://space.itpub.net/?79499
只看该作者    顶部
离线 zergduan
SE-RequieM


来自 Beijing Massage Center
精华贴数 0
个人空间 396
技术积分 6689 (191)
社区积分 1 (38236)
注册日期 2005-5-16
论坛徽章:27
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
技术积分 6465 (203)
社区积分 341 (1743)
注册日期 2005-9-13
论坛徽章:17
会员2007贡献徽章会员2006贡献徽章授权会员2008北京奥运纪念徽章:曲棍球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号 联系我们 法律顾问