oracle查看某个表的索引 为什么oracle表加索引反而查询时间长?
为什么oracle表加索引反而查询时间长?
要使用索引查询一段数据,首先需要访问索引数据,然后访问表数据。如果整个表被扫描两次,则只访问表数据,并且只执行一次读取操作。因此,如果查询结果占表数据的50%以上,则使用索引的速度会很慢。考虑到单个读取操作可以读取多条数据,而且索引的结构比表的结构复杂,查询结果可能会比较慢,占表数据的20%以上,使用索引不如全表扫描。因此,Oracle optimizer需要根据成本频繁更新统计数据,这便于optimizer判断使用全表扫描和索引的成本
不应有默认索引。建立主键或索引后,Oracle将在单独的区域中建立索引数据。索引数据和表数据是分开存储的,而不是一起存储的。索引数据对应于表的主键或其他索引。例如,如果表中有100条数据和一个主键,则索引区域中会有100条数据与之对应,并且因为它们是主键数据,所以每个数据都是唯一的,不会重复。在检索数据时,首先检索索引区域,因为那里的数据较少,所以速度非常快。
但是,如果没有主键,则表中可能存在重复数据,因此系统不知道自动生成索引的规则,因此将没有默认索引。Oracle每次都会查询整个表。
oracle查看某个表的索引 oracle一个表建立多个索引 oracle如何删除索引
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。