表的全局索引和局部索引相比,有什么优势
发布网友
发布时间:2022-04-11 23:15
我来回答
共1个回答
热心网友
时间:2022-04-12 00:44
表可以按range,hash,list分区,表分区后,其上的索引和普通表上的索引有所不同,oracle对于分区表上的索引分为2类,即局部索引和全局索引,下面分别对这2种索引的特点和局限性做个总结。
局部索引local index
1. 局部索引一定是分区索引,分区键等同于表的分区键,分区数等同于表的分区说,一句话,局部索引的分区机制和表的分区机制一样。
2. 如果局部索引的索引列以分区键开头,则称为前缀局部索引。
3. 如果局部索引的列不是以分区键开头,或者不包含分区键列,则称为非前缀索引。
4. 前缀和非前缀索引都可以支持索引分区消除,前提是查询的条件中包含索引分区键。
5. 局部索引只支持分区内的唯一性,无法支持表上的唯一性,因此如果要用局部索引去给表做唯一性约束,则约束中必须要包括分区键列。
6. 局部分区索引是对单个分区的,每个分区索引只指向一个表分区,全局索引则不然,一个分区索引能指向n个表分区,同时,一个表分区,也可能指向n个索引分区,
对分区表中的某个分区做truncate或者move,shrink等,可能会影响到n个全局索引分区,正因为这点,局部分区索引具有更高的可用性。
7. 位图索引只能为局部分区索引。
8. 局部索引多应用于数据仓库环境中。
全局索引global index
1. 全局索引的分区键和分区数和表的分区键和分区数可能都不相同,表和全局索引的分区机制不一样。
2. 全局索引可以分区,也可以是不分区索引,全局索引必须是前缀索引,即全局索引的索引列必须是以索引分区键作为其前几列。
3. 全局分区索引的索引条目可能指向若干个分区,因此,对于全局分区索引,即使只动,截断一个分区中的数据,都需要rebulid若干个分区甚
至是整个索引。
4. 全局索引多应用于oltp系统中。
5. 全局分区索引只按范围或者散列hash分区,hash分区是10g以后才支持。
6. oracle9i以后对分区表做move或者truncate的时可以用update global indexes语句来同步更新全局分区索引,用消耗一定资源来换取高度的可用性。
7. 表用a列作分区,索引用b做局部分区索引,若where条件中用b来查询,那么oracle会扫描所有的表和索引的分区,成本会比分区更高,此时可以考虑用b做全局分区索引
分区索引字典
DBA_PART_INDEXES 分区索引的概要统计信息,可以得知每个表上有哪些分区索引,分区索引的类新(local/global,)
Dba_ind_partitions每个分区索引的分区级统计信息
Dba_indexesminusdba_part_indexes,可以得到每个表上有哪些非分区索引
索引重建
Alter index idx_name rebuild partition index_partition_name [online nologging]
需要对每个分区索引做rebuild,重建的时候可以选择online(不会锁定表),或者nologging建立索引的时候不生成日志,加快速度。
Alter index rebuild idx_name [online nologging]
对非分区索引,只能整个index重建
表的全局索引和局部索引相比,有什么优势
5. 局部索引只支持分区内的唯一性,无法支持表上的唯一性,因此如果要用局部索引去给表做唯一性约束,则约束中必须要包括分区键列。6. 局部分区索引是对单个分区的,每个分区索引只指向一个表分区,全局索引则不然,一个分区索引能指向n个表分区,同时,一个表分区,也可能指向n个索引分区,对分区表...
oracle 全局索引和局部索引的区别和作用
1. 本地索引一定是分区索引,分区键等同于表的分区键,分区数等同于表的分区说,一句话,本地索引的分区机制和表的分区机制一样。2. 如果本地索引的索引列以分区键开头,则称为前缀局部索引。3. 如果本地索引的列不是以分区键开头,或者不包含分区键列,则称为非前缀索引。4. 前缀和非前缀索引都...
oracle partition table 表分析 怎么解决
5、增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用; 6、维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可; 7、改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。 8、需要注意的是包含LONG、LONGRAW数据类型的表不能分区,如果表格大于2G需要考虑分区。 二...
数据库索引有哪几种,怎样建立索引
全局索引和局部索引则与表的分区管理密切相关,根据索引与分区表的关系,分为局部分区索引(1对1),全局分区索引(N对N)和全局非分区索引(1对N)。总的来说,选择合适的索引类型和创建方法是提高数据库查询效率的关键,理解这些细节有助于优化数据库性能。
hisat2比对
- Hisat2利用了全局索引和局部索引,以提高比对速度和敏感性,并节省内存空间。全局索引基于BWT和FM index方法,快速定位reads在基因组上的大致位置;局部索引则利用哈希表方法,进行精确的reads扩展和比对。- Hisat2采用了新的比对策略,针对RNA-Seq产生可能跨长内含子的reads,哺乳动物中甚至最长可到1MB...
数据库索引有哪几种,怎样建立索引
五、全局索引和局部索引:这个索引貌似很复杂,其实很简单。总得来说一句话,就是无论怎么分区,都是为了方便管理。具体索引和表的关系有三种:1、局部分区索引:分区索引和分区表1对1 2、全局分区索引:分区索引和分区表N对N 3、全局非分区索引:非分区索引和分区表1对N 创建示例:首先创建一个分区...
oracle数据库索引种类,分别什么情况下使用
3.基于函数的索引 比如经常对某个字段做查询的时候是带函数操作的,那么此时建一个函数索引就有价值了。4.分区索引和全局索引 这2个是用于分区表的时候。前者是分区内索引,后者是全表索引 5.反向索引(REVERSE)这个索引不常见,但是特定情况特别有效,比如一个varchar(5)位字段(员工编号)含值 (...
oracle表分区要在插入数据前建吗
对于global索引,可以选择是否分区,而且索引的分区可以不与表分区相对应。当对分区进行维护操作时,通常会导致全局索引的INVALDED,必须在执行完操作后REBUILD。Oracle9i提供了UPDATE GLOBAL INDEXES语句,可以使在进行分区维护的同时重建全局索引。全局索引可以包含多个分区的值 局部索引比全局索引容易管理,而全局...
什么是分区表?
如果分区表里面没有这个文件,那就无法访问,系统删除文件的时候,并不是删除文件本身,而是在分区表里面删除,所以,删除以后的文件还是可以恢复的,因为分区表的特性,系统可以很方便的知道硬盘的使用情况,而不必为了一个文件,而搜索整个硬盘,大大提高了系统的运行能力,我想应该表达的差不多了 ...
索引图是用于指示详细构造图纸位置的吗?
就像在大图上添加了放大镜,帮助我们深入理解那些肉眼难以察觉的构造之美。总之,索引图和节点图是工程设计中的双剑合璧,一个负责全局的定位,一个负责局部的解析。它们的存在,极大地提高了工作效率,确保了设计的准确无误。希望这些知识能帮助你在图纸阅读中游刃有余,提升你的设计理解力和工作效率。