- Range-Hash (available since 8i)
- Range-List (available since 9i)
- Range-Range
- List-Range
- List-Hash
- List-List
http://www.oracle-base.com/articles/11g/PartitioningEnhancements_11gR1.php#virtual_column_based_partitioning
--partition truncate etmek icin
alter table range_part truncate partition part_02
CREATE TABLE range_compress_part
( owner VARCHAR2(30 BYTE) NOT NULL,
object_name VARCHAR2(30 BYTE) NOT NULL,
subobject_name VARCHAR2(30 BYTE),
object_id NUMBER NOT NULL,
data_object_id NUMBER,
object_type VARCHAR2(19 BYTE),
created DATE NOT NULL,
last_ddl_time DATE NOT NULL,
TIMESTAMP VARCHAR2(19 BYTE),
status VARCHAR2(7 BYTE),
TEMPORARY VARCHAR2(1 BYTE),
GENERATED VARCHAR2(1 BYTE),
secondary VARCHAR2(1 BYTE)
)
compress
PARTITION BY RANGE (object_id)
(PARTITION part_01 VALUES LESS THAN (20000),
--kendi belirlediğim bir partition'u nocompress moda çekiyorum
PARTITION part_02 VALUES LESS THAN (40000) nocompress tablespace users ,
pARTITION part_03 VALUES LESS THAN (60000) tablespace example,
PARTITION part_04 VALUES LESS THAN (MAXVALUE) )
--yaratmış olduğumuz partitionlar ile ilgili ayrıntılı bilgi için aşağıdaki sorgu işimizi görecektir.
--burada yaratmış olduğumuz partitionların ayrıntılı bilgilerini alırız.
select table_name,partition_name,high_value,tablespace_name,compression from user_tab_partitions where lower(table_name)='range_part'
--kullancının sahip olduğu tablespaceleri görerek bunlardan birsisini seçebiliriz.
select * from user_tablespaces
--move partition
select * from user_tab_partitions where table_name='RANGE_PART'
alter table range_part move partition part_01 tablespace example
--move subpartition
select * from user_tab_subpartitions where table_name='RANGE_HASH_PART'
ALTER TABLE RANGE_HASH_PART move subPARTITION PART_004_SP3 tablespace example
--subpartition'ların adlarını ve tablespacelerini değiştirmek için için.
alter table RANGE_HASH_PART
set subpartition template (
subpartition sp1 tablespace users,
subpartition sp2 tablespace users,
subpartition sp3 tablespace users,
subpartition sp4 tablespace users
)
--add partition (partition eklemek için)
select * from user_tab_partitions where table_name='RANGE_PART'
--maxvalue oldugu için son partitionu silmek gerekiyor.Bu sebebten dolayı silip yeniden yaratıyoruz.
alter table range_part drop partition part_04
alter table range_part add partition part_04 values less than (70000)
--partition isimlerini değiştirmek için aşağıdaki komur işinizi görecektir.
alter table range_part rename partition part_01 to ilk_part
select * from user_tab_partitions where table_name='RANGE_PART'
No comments:
Post a Comment