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.mzph.cn/news/387710.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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的数据分析服务。 前台模式 可以使用下面的命令来将…