oracle分区索引及循环插入

表可以按range、hash、list分区,表分区后,其上的索引和普通表上的索引有所不同,oracle对于分区表上的索引分为2类,即局部索引和全局索引,下面分别对这2种索引的特点和局限性做个总结。

局部索引local index
1.局部索引一定是分区索引,分区键等同于表的分区键,分区数等同于表的分区数,一句话,局部索引的分区机制和表的分区机制一样。
2.如果局部索引的索引列以分区键开头,则称为前缀局部索引。
3.如果局部索引的列不是以分区键开头,或者不包含分区键列,则称为非前缀索引。
4.局部索引只能依附于分区表上。
5.前缀和非前缀索引都可以支持索引分区消除,前提是查询的条件中包含索引分区键。
6.局部索引只支持分区内的唯一性,无法支持表上的唯一性,因此如果要用局部索引去给表做唯一性约束,则约束中必须要包括分区键列。
7.局部分区索引是对单个分区的,每个分区索引只指向一个表分区;全局索引则不然,一个分区索引能指向n个表分区,同时,一个表分区,也可能指向n个索引分区,对分区表中的某个分区做truncate或者move,shrink等,可能会影响到n个全局索引分区,正因为这点,局部分区索引具有更高的可用性。
8.位图索引只能为局部分区索引。
9.局部索引多应用于数据仓库环境中。

全局索引global index
1.全局索引的分区键和分区数和表的分区键和分区数可能都不相同,表和全局索引的分区机制不一样。
2.全局索引可以分区,也可以是不分区索引,全局索引必须是前缀索引,即全局索引的索引列必须是以索引分区键作为其前几列。
3.全局索引可以依附于分区表;也可以依附于非分区表。
4.全局分区索引的索引条目可能指向若干个分区,因此,对于全局分区索引,即使只截断一个分区中的数据,都需要rebulid若干个分区甚至是整个索引。
5.全局索引多应用于oltp系统中。
6.全局分区索引只按范围或者散列分区,hash分区是10g以后才支持。
7.oracle9i以后对分区表做move或者truncate的时可以用update global indexes语句来同步更新全局分区索引,用消耗一定资源来换取高度的可用性。
8.表用a列作分区,索引用b做局部分区索引,若where条件中用b来查询,那么oracle会扫描所有的表和索引的分区,成本会比分区更高,此时可以考虑用b做全局分区索引。

分区索引字典
DBA_PART_INDEXES
分区索引的概要统计信息,可以得知每个表上有哪些分区索引,分区索引的类型(local/global)
Dba_ind_partitions  每个分区索引的分区级统计信息
Dba_indexes/dba_part_indexes 可以得到每个表上有哪些非分区索引

索引重建
Alter index idx_name rebuild partition index_partition_name [online nologging]
需要对每个分区索引做rebuild,重建的时候可以选择online(不会锁定表),或者nologging建立索引的时候不生成日志,加快速度。
Alter index rebuild idx_name [online nologging]
对非分区索引,只能整个index重建
分区索引实例

复制代码 代码如下:

--1、建分区表 
CREATE TABLE P_TAB( 
C1 INT, 
C2 VARCHAR2(16), 
C3 VARCHAR2(64), 
C4 INT , 
CONSTRAINT PK_PT PRIMARY KEY (C1) 
) 
PARTITION BY RANGE(C1)( 
PARTITION P1 VALUES LESS THAN (10000000), 
PARTITION P2 VALUES LESS THAN (20000000), 
PARTITION P3 VALUES LESS THAN (30000000), 
PARTITION P4 VALUES LESS THAN (MAXVALUE) 
); 
--2、建全局分区索引 
CREATE INDEX IDX_PT_C4 ON P_TAB(C4) GLOBAL PARTITION BY RANGE(C4) 
( 
PARTITION IP1 VALUES LESS THAN(10000), 
PARTITION IP2 VALUES LESS THAN(20000), 
PARTITION IP3 VALUES LESS THAN(MAXVALUE) 
); 
--3、建本地分区索引 
CREATE INDEX IDX_PT_C2 ON P_TAB(C2) LOCAL (PARTITION P1,PARTITION P2,PARTITION P3,PARTITION P4); 
--4、建全局分区索引(与分区表分区规则相同的列上) 
CREATE INDEX IDX_PT_C1 
ON P_TAB(C1) 
GLOBAL PARTITION BY RANGE (C1) 
( 
PARTITION IP01 VALUES LESS THAN (10000000), 
PARTITION IP02 VALUES LESS THAN (20000000), 
PARTITION IP03 VALUES LESS THAN (30000000), 
PARTITION IP04 VALUES LESS THAN (MAXVALUE) 
); 
--5、分区索引数据字典查看 
SELECT * FROM USER_IND_PARTITIONS; 
SELECT * FROM USER_PART_INDEXES; 

 

 

  1. create table computers  
  2. (  
  3.  comNo number(4)  constraint PK_comp primary key,  
  4.  compModel varchar2(64) constraint unique_comp unique,  
  5.  buyTime date,  
  6.  price number(12,2) constraint ch_price check(  
  7.  price>0 and price<=300000),  
  8.  owner varchar2(32));  
  9.   
  10. DECLARE  
  11.   i number := 0;  
  12. BEGIN  
  13.   for i in 1 .. 3000 loop  
  14.     insert into computers  
  15.       (comNo, compModel, buyTime, price, owner)  
  16.     values  
  17.       (i, '8' + i, to_date('' + sysdate, 'YYYY-MM'), i, 'zhangsan');  
  18.     --dbms_output.put_line(i);  
  19.   end loop;  
  20.   commit;  
  21. END;  

 


P_TAB 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/news/387710.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

classloader.getresources() 介绍

转载自&#xff1a; https://www.cnblogs.com/bhlsheji/p/4095699.html ◆普通情况下,我们都使用相对路径来获取资源,这种灵活性比較大. 比方当前类为com/bbebfe/Test.class 而图像资源比方sample.gif应该放置在com/bbebfe/sample.gif 而假设这些图像资源放置在icons文件夹下,则…

Anti-Aliasing SSAA MSAA MLAA SRAA 简介

http://blog.csdn.net/codeboycjy/article/details/6312758 前两天在浏览游民星空的时候&#xff0c;小编居然在文章中挂了一篇技术文章&#xff0c;是关于SRAA的。对于AA的了解很少&#xff0c;正好入职之前还有几天的空闲时间&#xff0c;所以就这个机会把AA的一些基本算法简…

MyBatis多数据源配置(读写分离)

MyBatis多数据源配置(读写分离) 首先说明&#xff0c;本文的配置使用的最直接的方式&#xff0c;实际用起来可能会很麻烦。 实际应用中可能存在多种结合的情况&#xff0c;你可以理解本文的含义&#xff0c;不要死板的使用。 多数据源的可能情况 1.主从 通常是MySQL一主多…

UI简单工作

UI用户界面 需求——效果图——风格设计——高保证效果——html 网页的宽度屏幕的宽度-纵向滚动条的宽度 企业网站一般是1280 根据百度流量研究所 目前我们的网页注主要是1024和1200 这样的宽度符合大体市场 首屏高度。 首屏的概念来源于出版领域 报纸折叠后贩卖&…

MySQL分库分表总结

MySQL分库分表总结&#xff1a; 单库单表 &#xff1a; 单库单表是最常见的数据库设计&#xff0c;例如&#xff0c;有一张用户(user)表放在数据库db中&#xff0c;所有的用户都可以在db库中的user表中查到。 单库多表 &#xff1a; 随着用户数量的增加&#xff0c;user表的数…

3章 RxJava操作符

本篇文章已授权微信公众号 YYGeeker 独家发布转载请标明出处 CSDN学院课程地址 RxJava2从入门到精通-初级篇:edu.csdn.net/course/deta…RxJava2从入门到精通-中级篇:edu.csdn.net/course/deta…RxJava2从入门到精通-进阶篇:edu.csdn.net/course/deta…RxJava2从入门到精通-源码…

virtualbox 使用

实现文件拖拽功能 1、设备 -- 安装增强功能 -- /bin/sh VboxLinuxaddition.run -- reboot 2、设备 -- 拖放 -- 双向 3、虚拟机 -- 设置 -- 存储 -- 控制器&#xff1a;SATA -- 勾选 使用主机输入输出&#xff08;I\O 缓存&#xff09; 4、虚拟机硬盘 -- 勾选固态驱动器 转载于…

linux安装mysql 5.6.33

.到MySQL官网下载mysql编译好的二进制安装包&#xff0c;在下载页面Select Platform:选项选择linux-generic&#xff0c;然后把页面拉到底部&#xff0c;64位系统下载Linux - Generic (glibc 2.5) (x86, 64-bit)&#xff0c;下载后文件名&#xff1a;mysql-5.6.33-linux-glibc2…

Go 函数特性和网络爬虫示例

爬取页面 这篇通过网络爬虫的示例&#xff0c;来了解 Go 语言的递归、多返回值、延迟函数调用、匿名函数等方面的函数特性。首先是爬虫的基础示例&#xff0c;下面两个例子展示通过 net/http 包来爬取页面的内容。 获取一个 URL 下面的程序展示从互联网获取信息&#xff0c;获…

Qt的安装和使用中的常见问题(详细版)

对于太长不看的朋友&#xff0c;可参考Qt的安装和使用中的常见问题&#xff08;简略版&#xff09;。 目录 1、引入2、Qt简介3、Qt版本 3.1 查看安装的Qt版本3.2 查看当前项目使用的Qt版本3.3 查看当前项目使用的QtCreator版本3.4 Linux命令行下查看和使用不同版本的Qt4、Qt模块…

python与C#的互相调用

python与C#的互相调用一、C#调用python新建一个项目&#xff0c;添加引用&#xff1a;IronPython.dll&#xff0c;Microsoft.Scripting.dll&#xff08;在IronPython的安装目录中&#xff09;。创建一个文本文件命名为hello.py,把该文件添加的当前的项目中,并设置为总是输出。#…

各行业大数据可视化界面参考

转载于:https://www.cnblogs.com/wangsongbai/p/10178096.html

mysql远程连接 Host * is not allowed to connect to this MySQL server

localhost改成% 进入mysql的BIN目录 代码如下 复制代码 mysql -u root -p mysql>use mysql; mysql>update user set host ’%where user ’root’; mysql>flush privileges; 具体分析 1、在本机登入mysql后&#xff0c;更改“mysql”数据库里的“user”表里的“h…

今日听闻这几款手机软件比较火爆 果然名不虚传!

如今的时代&#xff0c;智能手机已经成为我们生活中不可缺少的一部分&#xff0c;大家之所以这么爱玩手机&#xff0c;其实并不是手机本身有多么吸引人&#xff0c;而是安装在手机上的各种各样的APP&#xff0c;比如各种社交软件、音频软件、购物软件以及地图软件等等。下面我们…

setdefault()方法

setdefault()方法 描述 字典 setdefault() 方法和 get()方法类似,返回指定键的值&#xff0c;如果键不在字典中&#xff0c;将会添加键并将值设置为一个指定值&#xff0c;默认为None。 get() 和 setdefault() 区别&#xff1a; setdefault() 返回的键如果不在字典中&#xff0…

Hive2.1.1、Hadoop2.7.3 部署

本文以远程模式安装Hive2.1.1将hive的元数据放置在MySQL数据库中。 1 安装mysql数据库 sudo apt-get install mysql-server11 重启mysql服务使得配置文件生效 sudo service mysql restart11 创建hive专用账户 CREATE USER hive% IDENTIFIED BY 123456;11 给hive账户授予所有权限…

Django 的简单ajax

需要通过ajax实现局部刷新 js代码 $(#guo-sou-ajax).click(function(){ #获取id为guo-sou-ajax点击后的信号console.log($(this).attr("data-action")) $.ajax({ #调用ajaxurl: $(this).attr("data-action"), #url保存在标签里面的data-actio…

postman提取返回值

Postman是做接口测试的&#xff0c;但是很多接口并不是直接就能测&#xff0c;有的需要一些预处理。比如说身份认证&#xff0c;需要传递一个token。如果做网页测试&#xff0c;一般打开登陆界面的时候就会生成一个token&#xff0c;如果返回值是json格式&#xff0c;用Postman…

docker下用keepalived+Haproxy实现高可用负载均衡集群

启动keepalived后宿主机无法ping通用keepalived&#xff0c;报错&#xff1a; [rootlocalhost ~]# ping 172.18.0.15 PING 172.18.0.15 (172.18.0.15) 56(84) bytes of data. From 172.18.0.1 icmp_seq1 Destination Host Unreachable From 172.18.0.1 icmp_seq2 Destination H…

hadoop hive 2.1.1 将Hive启动为服务

我们之前使用的Shell方式与Hive交互只是Hive交互方式中的一种&#xff0c;还有一种就是将Hive启动为服务&#xff0c;然后运行在一个节点上&#xff0c;那么剩下的节点就可以使用客户端来连接它&#xff0c;从而也可以使用Hive的数据分析服务。 前台模式 可以使用下面的命令来将…