暂无图片
Oracle什么时候不应该使用索引聚簇表?
我来答
分享
三阳
2023-02-10
Oracle什么时候不应该使用索引聚簇表?

Oracle什么时候不应该使用索引聚簇表?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新

有四种情况不能使用索引聚簇表。

如果预料到聚簇中的表会有大量修改:索引聚簇会对DML的性能产生一些负面影响,特别是INSERT语句,管理聚簇中的数据需要做更多的工作。由于要非常小心地存储数据,因此存储数据会占用很长时间。

如果需要对聚簇中的表执行全表扫描:不仅只对需要的表中的数据进行全面扫描,同时还不得不对其它多个表中的数据进行全面扫描。由于需要扫描更多的数据,所以全表扫描耗时更久。

如果需要对表进行分区:聚簇中的表不能分区,聚簇也不能分区。

如果需要频繁地TRUNCATE和加载表:聚簇中的表不能截除,因为聚簇在一个块上存储了多个表,所以必须从聚簇中删除行。

暂无图片 评论
暂无图片 有用 4
打赏 0
暂无图片
Lucifer三思而后行
暂无图片

Oracle的索引聚集表是一种常用的数据结构,但在某些情况下可能会导致性能下降,甚至僵死状态。当一个表里面有大量INSERTs、UPDATEs和 DELETEs时,并且这些操作频繁发生,你可以避免使用索引聚簇表,而应该使用普通的索引表。当你的表要同时处理大量的读取和写入操作时,也就是"读 写混合模式"时,索引聚簇表也是不推荐使用的,你应当使用普通索引表来提高性能和减轻日志负担。

暂无图片 评论
暂无图片 有用 3
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
oracle 19c表空间传输到11g会有问题吗?
回答 1
会有问题,oracle不支持。 Youcannotexporttransportabletablespacesandthenimportthemintoadatabaseatalowerre
模拟故障ORA-00600: internal error code, arguments: [2662]
回答 3
11204打了补丁了吧?应该是minimumgigascn参数和10015event都用不了了。只能用oradebug,可以参考崔华的文章:数据恢复:隐含参数minimumgigascn被废弃后如何调
什么是Oracle的多版本控制?
回答 9
已采纳
Oracle对并发的支持不只是高效的锁定,它还实现了一种多版本控制(multiversioning)体系结构,这种体系结构提供了一种受控但高度并发的数据访问。多版本控制是指Oracle能同时物化多个版
Oracle中的redo和undo如何协作?
回答 3
已采纳
从概念上讲,undo与redo相对。redo用于在失败时重放事务(即恢复事务),undo则用于取消一条语句或一组语句的作用。与redo不同,undo存储在数据库内部一组特殊的段中,称为undo段。尽管
Oracle中的redo log 怎么offline?
回答 1
已采纳
建议通过添加新的redolog方式移除小的redolog日志;可以参考大神在墨天轮留的文档;https://www.modb.pro/db/122179
当返回的数据量超过表数据的百分多少时,Oracle就不走索引了?
回答 3
这个没有确切的数值。一般而言,分析返回行和记录总数的比率,当值>20%时,全表扫描较优,0.1%20%之间,可以自行取舍。Oracle一般希望返回行数在5%以内的查询走索引。
ogg提示01292 sqlerror 01400
回答 1
OPCODE列非空,所以无法插入null值
RAC 19C在打32895426补丁过程中,报如下错误,请问如何解决。
回答 6
记起来了,你这错误就是因为有其他的Oracle用户登录系统了,退到root或者直接退出即可,然后解决问题后继续执行打补丁/app/app/19.0.0.0/grid/OPatch/opatchauto
万里开源数据库符合国产化要求吗?
回答 1
有没有可以指点一下我的大神啊
Oracle数据库什么时候需要启用动态采样呢?
回答 1
已采纳
当执行计划中表的Rows估算有严重偏差的时候,例如相关列问题,或者两表关联有多个连接列关联之后Rows算少,或者是where过滤条件中对列使用了substr、instr、like,或者是where过滤