楼主: ewenqing

[精华] oracle中删除记录时将索引一块删除吗?

[复制链接]
论坛徽章:
4
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:45
11#
发表于 2003-8-13 12:09 | 只看该作者
恩,澄清了一个观点,俺以前以为在块内也是顺序排列的。

顺便问一下,alter system dump 的结果显示在那里?

使用道具 举报

回复
论坛徽章:
4
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:45
12#
发表于 2003-8-13 12:11 | 只看该作者
还有,使用show_space之前要执行那个脚本?

使用道具 举报

回复
论坛徽章:
56
生肖徽章2007版:鼠
日期:2008-01-02 17:35:53IT宝贝
日期:2009-02-15 19:34:30
13#
发表于 2003-8-13 08:17 | 只看该作者
hi,biti,
我对“索引块只有当全部数据被删除后才能被新的不同值数据插入
否则只有插入相同的值的时候才能利用原来删除的空间
”这两句不太理解,能稍具体的解释一下吗?thanks

使用道具 举报

回复
论坛徽章:
56
生肖徽章2007版:鼠
日期:2008-01-02 17:35:53IT宝贝
日期:2009-02-15 19:34:30
14#
发表于 2003-8-13 09:14 | 只看该作者
thanks a lot

使用道具 举报

回复
论坛徽章:
0
15#
 楼主| 发表于 2003-8-12 17:44 | 只看该作者

oracle中删除记录时将索引一块删除吗?

如题。
今天听一个人说,删除记录的时候并不删除相应的索引,我觉得很奇怪
如果我的一张表需要经常插入删除数据的话,索引不是越来越大吗?那效率岂不是很低

哪位大侠解释一下

使用道具 举报

回复
论坛徽章:
4
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:45
16#
发表于 2003-8-13 13:23 | 只看该作者
恩,继续相关讨论。
对于更新索引条目,我想代价比插入或是删除要高,这不同于一般的堆组织表。因为他要执行的是删除和和插入。对于更新,我想过程应该是这样的,执行树遍历,找到原叶节点,作删除标记。在执行树遍历,找到适于新的索引条目的叶结点,进行插入操作。
总之索引的DML操作的代价是很高的。
在适当的时候重建索引,会提高系统的性能,尤其对于OLTP来说。

BTW:BITI ,我是想运行SHOW_SPACE这个过程,总是出错:
SQL> exec show_space('RMYY.T_KSK','RMYY','TABLE');
BEGIN show_space('RMYY.T_KSK','RMYY','TABLE'); END;

      *
ERROR 位于第 1 行:
ORA-06550: 第 1 行, 第 7 列:
PLS-00201: 必须说明标识符 'SHOW_SPACE'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored

不知应该如何解决。谢谢。

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
17#
发表于 2003-8-13 13:37 | 只看该作者

o

index   update =  delete + insert   是这样的啊

btw :
show_space 是该用户下的自己创建的存储过程你没有运行过吧
920开始支持的ASSM 类型的表没有freelist 了,所以需要改写show_space才可以

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
18#
发表于 2003-8-13 17:25 | 只看该作者

置顶!

这么好的帖子为什么置顶呢?

使用道具 举报

回复
论坛徽章:
30
ITPUB元老
日期:2005-10-06 13:25:212011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:56管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:52马上有车
日期:2014-02-19 11:55:14
19#
发表于 2003-8-14 10:14 | 只看该作者

Re: o

最初由 biti_rainy 发布
[B]index   update =  delete + insert   是这样的啊

btw :
show_space 是该用户下的自己创建的存储过程你没有运行过吧
920开始支持的ASSM 类型的表没有freelist 了,所以需要改写show_space才可以 [/B]


我想问一下ASSM的表是什么?
该如何改写show_space?我在8i上使用过show_space,但在9201上创建后发现使用不了,是这个原因造成的吗?

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
20#
发表于 2003-8-14 10:30 | 只看该作者

Re: Re: o

最初由 dlinger 发布
[B]

我想问一下ASSM的表是什么?
该如何改写show_space?我在8i上使用过show_space,但在9201上创建后发现使用不了,是这个原因造成的吗? [/B]


是这个原因

DMT-->LMT--->ASSM  

这是oracle 表空间管理的发展趋势

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表