技术标签: Oralce 分区维护 表分区 Oracle 分区 维护
前端时间新上线了一个改造系统,但是由于之前有几张大表(亿级)占用的空间太大,在做查询的时候点页面等的心烦气躁,想砸电脑。后周末加班做了个分区,速度蹭蹭的上去了,现在三秒响应。
此文从以下几个方面来整理关于分区表的概念及操作:
1.表空间及分区表的概念表中包含历史数据,新的数据被增加都新的分区中。
已经存在的表没有方法可以直接转化为分区表。但是有几种方式可以间接完成这个操作,大家可以参考:oracle分区表的建立方法(包含已经存在的表要分区):http://blog.csdn.net/wanglilin/article/details/7177338
CREATE TABLE CUSTOMER
(
CUSTOMER_ID NUMBER NOT NULL PRIMARY KEY,
FIRST_NAME VARCHAR2(30) NOT NULL,
LAST_NAME VARCHAR2(30) NOT NULL,
PHONEVARCHAR2(15) NOT NULL,
EMAILVARCHAR2(80),
STATUS CHAR(1)
)
PARTITION BY RANGE (CUSTOMER_ID)
(
PARTITION CUS_PART1 VALUES LESS THAN (100000) TABLESPACE CUS_TS01,
PARTITION CUS_PART2 VALUES LESS THAN (200000) TABLESPACE CUS_TS02
)
例二:按时间划分
CREATE TABLE ORDER_ACTIVITIES
(
ORDER_ID NUMBER(7) NOT NULL,
ORDER_DATE DATE,
TOTAL_AMOUNT NUMBER,
CUSTOTMER_ID NUMBER(7),
PAID CHAR(1)
)
PARTITION BY RANGE (ORDER_DATE)
(
PARTITION ORD_ACT_PART01 VALUES LESS THAN (TO_DATE('01- MAY -2003','DD-MON-YYYY')) TABLESPACEORD_TS01,
PARTITION ORD_ACT_PART02 VALUES LESS THAN (TO_DATE('01-JUN-2003','DD-MON-YYYY')) TABLESPACE ORD_TS02,
PARTITION ORD_ACT_PART02 VALUES LESS THAN (TO_DATE('01-JUL-2003','DD-MON-YYYY')) TABLESPACE ORD_TS03
)
CREATE TABLE RangeTable
(
idd INT PRIMARY KEY ,
iNAME VARCHAR(10),
grade INT
)
PARTITION BY RANGE (grade)
(
PARTITION part1 VALUES LESS THEN (1000) TABLESPACE Part1_tb,
PARTITION part2 VALUES LESS THEN (MAXVALUE) TABLESPACE Part2_tb
);
列表分区:
CREATE TABLE PROBLEM_TICKETS
(
PROBLEM_ID NUMBER(7) NOT NULL PRIMARY KEY,
DESCRIPTION VARCHAR2(2000),
CUSTOMER_ID NUMBER(7) NOT NULL,
DATE_ENTERED DATE NOT NULL,
STATUS VARCHAR2(20)
)
PARTITION BY LIST (STATUS)
(
PARTITION PROB_ACTIVE VALUES ('ACTIVE') TABLESPACE PROB_TS01,
PARTITION PROB_INACTIVE VALUES ('INACTIVE') TABLESPACE PROB_TS02
)
例二
CREATE TABLE ListTable
(
id INT PRIMARY KEY ,
name VARCHAR (20),
area VARCHAR (10)
)
PARTITION BY LIST (area)
(
PARTITION part1 VALUES ('guangdong','beijing') TABLESPACE Part1_tb,
PARTITION part2 VALUES ('shanghai','nanjing') TABLESPACE Part2_tb
);
散列分区:
CREATE TABLE HASH_TABLE
(
COL NUMBER(8),
INF VARCHAR2(100)
)
PARTITION BY HASH (COL)
(
PARTITION PART01 TABLESPACE HASH_TS01,
PARTITION PART02 TABLESPACE HASH_TS02,
PARTITION PART03 TABLESPACE HASH_TS03
)
简写:
CREATE TABLE emp
(
empno NUMBER (4),
ename VARCHAR2 (30),
sal NUMBER
)
PARTITION BY HASH (empno) PARTITIONS 8
STORE IN (emp1,emp2,emp3,emp4,emp5,emp6,emp7,emp8);
CREATE TABLE SALES
(
PRODUCT_ID VARCHAR2(5),
SALES_DATE DATE,
SALES_COST NUMBER(10),
STATUS VARCHAR2(20)
)
PARTITION BY RANGE(SALES_DATE) SUBPARTITION BY LIST (STATUS)
(
PARTITION P1 VALUES LESS THAN(TO_DATE('2003-01-01','YYYY-MM-DD'))TABLESPACE rptfact2009(
SUBPARTITION P1SUB1 VALUES ('ACTIVE') TABLESPACE rptfact2009,
SUBPARTITION P1SUB2 VALUES ('INACTIVE') TABLESPACE rptfact2009),
PARTITION P2 VALUES LESS THAN (TO_DATE('2003-03-01','YYYY-MM-DD')) TABLESPACE rptfact2009(
SUBPARTITION P2SUB1 VALUES ('ACTIVE') TABLESPACE rptfact2009,
SUBPARTITION P2SUB2 VALUES ('INACTIVE') TABLESPACE rptfact2009)
)
复合范围散列分区:
create table dinya_test
(
transaction_id number primary key,
item_id number(8) not null,
item_description varchar2(300),
transaction_date date
)
partition by range(transaction_date)subpartition by hash(transaction_id) subpartitions 3 store in (dinya_space01,dinya_space02,dinya_space03)
(
partition part_01 values less than(to_date(‘2006-01-01','yyyy-mm-dd')),
partition part_02 values less than(to_date(‘2010-01-01','yyyy-mm-dd')),
partition part_03 values less than(maxvalue)
);
有关表分区的一些维护性操作:
删除分区以下代码删除了P3表分区:
ALTER TABLE SALES DROP PARTITION P3;在以下代码删除了P4SUB1子分区:
ALTER TABLE SALES DROP SUBPARTITION P4SUB1;通过以下代码截断子分区:
ALTER TABLE SALES TRUNCATE SUBPARTITION P2SUB2;
合并分区拆分分区
拆分分区将一个分区拆分两个新分区,拆分后原来分区不再存在。注意不能对HASH类型的分区进行拆分。接合分区(coalesca)
结合分区是将散列分区中的数据接合到其它分区中,当散列分区中的数据比较大时,可以增加散列分区,然后进行接合,值得注意的是,接合分区只能用于散列分区中。通过以下代码进行接合分区:重命名表分区
以下代码将P21更改为P2相关查询
-- 跨分区查询一、两者区别这里说明一下,笔者使用的是Alibaba的Sentinel限流降级框架,Sentinel提供了限流、服务降级功能,但是只是限制后,返回不可控的结果肯定是不行的,我们还要保证调用者在调用那些被限制的服务时候,不管是不是被限制,都要让他们拿到一个合理的结果,而不是扔回去一个异常就完事了。Sentinel提供了这样的功能,让我们可以另外定义一个方法来代替被限制或异常服务返回数据,这就是fallback和blockHandler。fallback:若本接口出现未知异常,则调用fallback指
转自:http://blog.csdn.net/liuyue2046/article/details/12658441*****************************************************************************************************************************
<?php /** * 【适配器模式】 * 对于服务器的代码,需要不同的客户端都可以调用 * 也可能是新的程序员要修改以前程序员写的老代码 */header("Content-type: text/html; charset=utf-8");//假设现在有一段很早的老代码,用户类class User{ public static func...
1.会话管理、会话持久化(redis缓存)2.会话监听,超时清除孤立会话
#来自周志华的《机器学习》from numpy import *#加入核函数def kernelTrans(X,A,kTup): m,n = shape(X) k = mat(zeros((m,1))) if kTup[0] == 'lin': k = X * A.T elif kTup[0] == 'rbf': for j i...
以上是根据别人博客总结自己画出的红黑树删除操作的所有情况。红黑树删除难点在于情况多和复杂,要想完全掌握,必须知道红黑树所有删除情况,并且对于情况是如何一步步划分的思路要非常清晰,为什么这样划分等等。此外,容易忽视又非常重要的一点是:红黑树删除的初始情况,比如我上面的图开始情况思考一下为什么要删除节点D的左孩子都是等于nil(即为空,其实是因为要删除红黑树的任意一个节点,首先要像二叉排序树一样找...
本文引用自-Club·King《isapi_rewrite3.1完整中文手册》可以用于iis中的wordpress,wp的url重写。并且是完整功能的。没有45天限制。lite版则不能用代理,location,等功能。先安装官方文件,再用复盖补丁文件夹下所有文件替换。替换时提示拒绝访问则需要先停止iisadmin。开始,运行net stop /y iisadmin再进行复...
问题描述执行命令:openstack flavor list,几乎执行所有openstack命令都会报以下错误:原因分析:原因是openstack中没有用户环境脚本。解决方案:提示:这里填写该问题的具体解决方案:在任意目录下新建admin-openrc.sh(目录位置不重要,记住创建位置),添加以下内容:HOSTNAME=修改为自己主机名称OS_REGION_NAME=RegionOneOS_USER_DOMAIN_NAME=DefaultOS_PROJECT_NAME=adm.
sudo apt-get install [email protected]:/opt/java# sudo apt-get install wine正在读取软件包列表... 完成正在分析软件包的依赖关系树 正在读取状态信息... 完成 虚拟软件包 wine 由下面的软件包提供: wine-stable 3.0-1ubuntu1 wine-...
import com.fasterxml.jackson.annotation.JsonInclude;import com.fasterxml.jackson.core.type.TypeReference;import com.fasterxml.jackson.databind.DeserializationFeature;import com.fasterxml.jackson.d...
1月19日今天我会将底盘的代码全部放到这,而且会把之前没注释的内容注释,,如果有什么问题可以私信我,很多关于keil的基础内容我都没有写,主要是过几天就是向RM官方提交中期视频的时候,等提交完毕我会系统的全部都补上昨天我写了底盘结构体和初始化函数,既然定义完毕了,那现在就开始写小车遥控器部分的代码(写代码时尽量根据功能分块写,然后最后只留一个接口,这样思维不容易混乱)还是老样子,我们先写.h...
ubuntu 系统中, 搜狗输入法使用了 fcitx 输入法框架, 但无论是 Qt Creator 还是 PyQt5, 默认都不支持 fcitx, 在 QLineEdit 和 QTextEdit等控件的输入框中无法切换为搜狗输入法解决直接安装预编译的库sudo apt install fcitx-frontend-qt5安装完成后, 系统中多出一个动态库 libfcitxplatforminputcontextplugin.so将该库拷贝到 Qt5/PyQt5 安装目录中的特定位置就可以解决问题