Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Oracle—如何最好地使用条件子句实现分区_Sql_Oracle_Database Design_Partitioning - Fatal编程技术网

Sql Oracle—如何最好地使用条件子句实现分区

Sql Oracle—如何最好地使用条件子句实现分区,sql,oracle,database-design,partitioning,Sql,Oracle,Database Design,Partitioning,我们的系统有许多需要分区以支持数据维护的表。让我们用一张桌子来简化问题。如果表中的数据达到100GB,则OLTP系统开始减速。我们建议客户将数据从OLTP系统移动到OLAP系统。我们使用按年或按月分区(基于数据插入率)来促进这一移动 以下是表定义的示例: create table myPartionedTable ( object_id number , object_type varchar2(18), RETIREDTIMESTAMP timestam

我们的系统有许多需要分区以支持数据维护的表。让我们用一张桌子来简化问题。如果表中的数据达到100GB,则OLTP系统开始减速。我们建议客户将数据从OLTP系统移动到OLAP系统。我们使用按年或按月分区(基于数据插入率)来促进这一移动

以下是表定义的示例:

create table myPartionedTable
(
  object_id        number ,
  object_type      varchar2(18),
  RETIREDTIMESTAMP   timestamp
)    
partition by range (RETIREDTIMESTAMP)
(
partition WM_2010 values less than(TO_DATE('01/01/2011','MM/DD/YYYY')),
partition WM_2011 values less than(TO_DATE('01/01/2012','MM/DD/YYYY')),
partition WM_2012 values less than(TO_DATE('01/01/2013','MM/DD/YYYY')),
partition WM_2013 values less than(TO_DATE('01/01/2014','MM/DD/YYYY')),
partition WM_2014 values less than(TO_DATE('01/01/2015','MM/DD/YYYY')),
partition WM_ACTIVE values less than(MAXVALUE)
)
tablespace MYDATE;
重要的一点是,数据需要保留在WM_活动分区中,直到数据被视为失效。一旦失效,数据将移动到适当的分区,然后有资格从OLTP移出分区并进入OLAP


这是一个好方法吗?是否有更好的方法来管理此需求列表?

间隔分区可能会有所帮助。Oracle可以根据需要自动创建分区

可能不需要担心活动分区和非活动分区,因为可以很容易地为所有分区使用最小范围

create table myPartionedTable
(
  object_id        number ,
  object_type      varchar2(18),
  RETIREDTIMESTAMP   timestamp
)    
partition by range (RETIREDTIMESTAMP) INTERVAL(NUMTOYMINTERVAL(1, 'MONTH'))
(
    --You still need to specify the lowest possible partition.
    partition WM_2010 values less than(date '2011-01-01')
);

你用什么版本?分区选项在每个版本中都有很大的变化。11g,我们同时使用10g和11g,但将全部迁移到11g。