oracle索引名默认长度,oracle 数据库的索引长度默认30字符以内,这个长度限制可以修改大点吗?...

Oracle数据库默认索引长度为30字符,但可根据数据块大小有所限制,如8K数据块最大约6398字符。索引过大可能影响在线重建和系统可用性。重建索引通常在高度碎片或大量DML操作时进行,大型索引建议定期重建。
摘要由CSDN通过智能技术生成

oracle 数据库的索引长度默认30字符以内,这个长度限制可以修改大点吗?

关注:266  答案:2  mip版

解决时间 2021-01-18 17:31

e6cb1a03ad541b3098697807b7bf1798.png

提问者这笑,有多危险

2021-01-17 18:34

oracle 数据库的索引长度默认30字符以内,这个长度限制可以修改大点吗?

最佳答案

e6cb1a03ad541b3098697807b7bf1798.png

二级知识专家棄療尐钕

2021-01-17 18:43

如果你的数据块大小是8K,那么索引字段的定义长度不能超过6398,比如,你要给表上2个VARCHAr(4000)字段建组合索引,创建时会直接报错。另外索引组织表及在线重建索引(因为中间会临时创建一个索引组织表)允许的索引信息长度更小,只能是数据块大小的40%,实际中8K的数据块大小,要使用在线重建索引,那定义的长度不能超过3215。从以上可以看出,数据块大小为8K时,设计字段时如果要定义为VARCHAr(4000),那这个字段就不能考虑建立索引,因为即使能建上,也不能做在线重定义操作,DBA要进行索引维护时只能停止应用,这将对系统的可用性产生较大影响。

关于ORACLE的索引长度还有一些特别的规则,比如自定义函数返回的字符定义长度固定是4000,所以要用自定义函数做函数索引需要特别注意一下,这可能会影响在线重建索引不能操作。

内置函数的索引长度根据函数决定,比如UPPER这种不改变长度的就是索引字段定义的长度,SUBSTR这种会改变长度要根据函数截取长度决定。

NUMBER类型字段的长度固定是22。

DATA类型字段的长度固定是7。

索引默认是升序,如果要降序建的索引长度是字段定义长度*1.5+1。

全部回答

e6cb1a03ad541b3098697807b7bf1798.png

1楼淡似春风

2021-01-17 19:29

当索引的碎片过多时,会影响执行查询的速度,从而影响到我们的工作效率。这时候采取的最有利的措施莫过于重建索引了。本文主要介绍了oracle数据库中检查索引碎片并重建索引的过程,接下来我们就开始介绍这一过程。 重建索引的步骤如下: 1. 确认基本信息 登入数据库,找到专门存放index 的tablespace,并且这个tablespace下所有index的owner都是tax.将index专门存放在一个独立的tablespace, 与数据表的tablespace分离,是常用的数据库设计方法。 2. 查找哪些index需要重建 通过anlyze index .... validate structure命令可以分析单个指定的index,并且将单个index 分析的结果存放到 index_stats试图下。一般判断的依据是: height >4 pct_used < 50% del_lf_rows / lf_rows +0.001 > 0.03 g ) 3. google上下载了遍历所有index脚本 发现anlyze index .... validate structure只能填充单个index分析信息,于是google了下,从网上下了个loop 脚本,遍历索引空间下所有的索引名字,并且可以把所有index的分析信息存放到自己建立的一个用户表中。 4. anlyze index 锁定index 发现下载的脚本不好用,应为anlyze index在分析索引前要争取独占锁,锁住index,很明显有些index正在被应用系统的使用,所以运行anlyze失败。这里吸取的教训是,尽量晚上做这种事。但是本人比较喜欢准时回家,所以在语句中添加exception handler,抛出anlyze index执行失败的那些index 名称,使脚本正常运行完毕。并且根据打印到前台的index name手动执行那些index分析。 5. 总结 虽然发现522个index中有160个符合上面的判断的依据。但是发现索引都不大,而那些拥有百万leaf的索引又没有符合上面的判断条件,所以结论是无需index rebuild online. 没有啥碎片。 6.什么时候可以rebuild index呢? rebuild index online,对那些有大量dml操作的大索引是有益的。可以每个月季度做一次针对较大索引的rebuild。

我要举报

如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

→点此我要举报以上信息!←

推荐资讯

大家都在看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值