当前位置: 首页 > news >正文

oracle 分区表外键建索引,INFORMIX 表分区及索引

在INFORMIX 中,分片表可以支持除了在分片主键上进行创建本地索引外,还可以创建多个其他非分片键字段的本地索引,而在对该表进行分片管理时(删除一个分片,增加一个分片)不影响表的使用,索引不需要重建。【oracle中需要重建index】。

1、创建分片表

create table t_fragment_test

(

customer_num integer,

call_dtime datetime year to minute,

user_id char(32)

default user,

call_code char(1),

call_descr char(240),

res_dtime datetime year to minute,

res_descr char(240)

)fragment by expression

(customer_num>=1 andcustomer_num<100000) in dbs11,

(customer_num>=100000 andcustomer_num<200000) in dbs12,

(customer_num>=200000 andcustomer_num<300000) in dbs13,

(customer_num>=300000 andcustomer_num<400000) in dbs14

extent size 102400 next size 10240;

2、生成数据

--产生很多280万条记录,分布在dbs11~dbs14

3、创建索引

create unique index idx_t_fragment_test1 on t_fragment_test(customer_num,call_dtime) ;

--该索引第一个字段为分片键customer_num,以便在查询中可以消除分片,提升效率。

create index idx_t_fragment_test2 on t_fragment_test(res_dtime);

create index idx_t_fragment_test3 on t_fragment_test(call_code);

--创建2个不包含分片键的索引,但这2个索引会自动创建为本地索引(索引与数据存储在相同的dbspace上)

--注意事项:对于需要动态进行分片表分片调整,即动态删除(detach )增加(attach)分片的分片表,我们需要注意: informix数据库会为表中的primary key,unique 约束自动创建全局索引,同时不要包含外键。考虑到性能估需要注意不要在create table中使用primary key,unique约束,请使用unique index来替代实现。

4、删除一个分片

alter fragment on table t_fragment_test detach dbs11 t_fragment_test_dbs11;

--小于 1 second完成

5、增加一个分片

--CASE 1增加一个空分片

alter fragment on table t_fragment_test add (customer_num < 500000and customer_num >= 400000 ) in dbs11

--小于1second完成

--CASE 2把一个表增加到分片表中

alter fragment on table t_fragment_test attach t_fragment_test_dbs11 as customer_num < 100000and customer_num >= 1in dbs11

--执行时间较长,若只有idx_t_fragment_test1情况,速度很快

总结:

以下是为在删除分片前、后、增加一个分片后的两个SQL语句的执行计划,从执行计划可以得知INFORMIX的分片表及索引的使用情况十分优异。

select * from t_fragment_test where customer_num >=100000 and

customer_num <=100010

Estimated Cost: 14

Estimated # of Rows Returned: 60

1) informix.t_fragment_test: INDEX PATH

(1) Index Name: informix.idx_t_fragment_test1

Index Keys: customer_num call_dtime(Serial, fragments: 0)

Fragments Scanned: (0) dbs12

Lower Index Filter: informix.t_fragment_test.customer_num >= 100000

Upper Index Filter: informix.t_fragment_test.customer_num <= 100010

QUERY: (OPTIMIZATION TIMESTAMP:10-21-200910:02:28)

------

select * from t_fragment_test where res_dtime>= current year to second

andres_dtime<= current year to second +interval(3) hour to hour

Estimated Cost: 9

Estimated # of Rows Returned: 1

1) informix.t_fragment_test: INDEX PATH

(1) Index Name: informix.idx_t_fragment_test2

Index Keys: res_dtime(Serial, fragments: ALL)

(fragments might be eliminated at runtime because filter contains

runtime constants)

Lower Index Filter:informix.t_fragment_test.res_dtime >= CURRENT year to second

Upper Index Filter:informix.t_fragment_test.res_dtime <= CURRENT year to second+ interval(3) hour to hour

相关文章:

  • [loj#115] 无源汇有上下界可行流 网络流
  • php程序设计形成性手册,PHP动态网站设计(专,2020春)形成性考核_第6章 单元测试0...
  • linux命令行动态输出,Linux top实时显示process的动态命令详解
  • 我的cheatsheet
  • linux文件赋予用户权限,Linux 给用户赋予操作权限
  • Ubuntu 16.04安装JAD反编译工具(Java)
  • 查询linux命令位置,查看登录过Linux的IP的地理位置(基于last命令)
  • [poj] 3974 Palindrome
  • linux遍历目录删除指定文件,shell脚本删除目录下的指定文件
  • 【转】VC++计算当前时间点间隔N天的时间(不使用CTimeSpan类)
  • linux下新建shell命令接口,Linux Shell(脚本)编程入门
  • Ubuntu下搭建基于apache2的gerrit+gitweb服务器
  • Linux每个用户单独配置ssh,linux – 每个用户的SSH MOTD
  • linux针对内存uce隔离内存,Linux运维知识之在linux系统中,iomem_resource的信息被输出到/proc/iomem中...
  • intellij IDEA里各图标对应的文件类型
  • CSS居中完全指南——构建CSS居中决策树
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • flask接收请求并推入栈
  • golang中接口赋值与方法集
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • Java小白进阶笔记(3)-初级面向对象
  • js数组之filter
  • Just for fun——迅速写完快速排序
  • Mysql数据库的条件查询语句
  • react-native 安卓真机环境搭建
  • Spark RDD学习: aggregate函数
  • Spring核心 Bean的高级装配
  • STAR法则
  • Vue 重置组件到初始状态
  • vue数据传递--我有特殊的实现技巧
  • web标准化(下)
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 高性能JavaScript阅读简记(三)
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 前端工程化(Gulp、Webpack)-webpack
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 网页视频流m3u8/ts视频下载
  • 以太坊客户端Geth命令参数详解
  • 由插件封装引出的一丢丢思考
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 在electron中实现跨域请求,无需更改服务器端设置
  • linux 淘宝开源监控工具tsar
  • python最赚钱的4个方向,你最心动的是哪个?
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 整理一些计算机基础知识!
  • #stm32整理(一)flash读写
  • $.ajax,axios,fetch三种ajax请求的区别
  • $.proxy和$.extend
  • (2)(2.10) LTM telemetry
  • (2022 CVPR) Unbiased Teacher v2
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (LeetCode 49)Anagrams
  • (poj1.2.1)1970(筛选法模拟)
  • (solr系列:一)使用tomcat部署solr服务