Jadual Kandungan
一、分区表基本操作
1、按时间分区表创建:
2、分区表修改
2.1增加一个分区
2.2删除一个分区
2.3合并分区
2.1查询
2.1插入
2.1删除
2.1修改
三、普通表和分区表互转
Rumah pangkalan data tutorial mysql oracle按时间创建分区表

oracle按时间创建分区表

Jun 07, 2016 pm 03:37 PM
oracle Pembahagian jadual partition cipta masa pertama

首先明确分区表和表分区的区别:表分区是一种思想,分区表示一种技术实现。当表的大小过G的时候可以考虑进行表分区,提高查询效率, 均衡IO。oracle分区表是oracle数据库提供的一种表分区的实现形式。表进行分区后,逻辑上仍然是一张表,原来的查询SQL同样生

首先明确分区表和表分区的区别:表分区是一种思想,分区表示一种技术实现。当表的大小过G的时候可以考虑进行表分区,提高查询效率,均衡IO。oracle分区表是oracle数据库提供的一种表分区的实现形式。表进行分区后,逻辑上仍然是一张表,原来的查询SQL同样生效,同时可以采用使用分区查询来优化SQL查询效率,不至于每次都扫描整个表

一、分区表基本操作

1、按时间分区表创建:

create table t_test (
   pk_id                number(30)                      not null,
  add_date_time        DATE,
   constraintPK_T_TEST primary key (pk_id)
)
PARTITION BY RANGE (add_date_time)
(
  PARTITIONt_test_2013_less VALUES LESS THAN (TO_DATE('2013-01-01 00:00:00','yyyy-mm-ddhh24:mi:ss')) TABLESPACE TS_MISPS,
  PARTITIONt_test_2013 VALUES LESS THAN (TO_DATE('2014-01-01 00:00:00','yyyy-mm-ddhh24:mi:ss')) TABLESPACE TS_MISPS,
  PARTITION t_test_2014VALUES LESS THAN (TO_DATE('2015-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss'))TABLESPACE TS_MISPS
)
Salin selepas log masuk

其中add_date_time为分区字段,每一年一个分区。

插入100W数据

declare
  i    int := 1;
  yearVARCHAR2(20);
begin
  loop
    year := CASEmod(i, 3)
             WHEN 0 THEN
              '2012-01-14 12:00:00'
             WHEN 1 THEN
              '2013-01-14 12:00:00'
             ELSE
              '2014-01-14 12:00:00'
            END;
           insert into t_test values(i, to_date(year, 'yyyy-mm-dd hh24:mi:ss'));
    exit when i= 1000000;
    i := i + 1;
  end loop;
end;
Salin selepas log masuk

查看分区表的分区的详细信息

Select table_name,partition_name,high_value fromdba_tab_partitions where table_name='T_TEST';
Salin selepas log masuk

2、分区表修改

2.1增加一个分区

分两种情况:1.没有maxvalue分区。2.有maxvalue分区。我们创建的分区就是没有maxValue的分区

1.没有maxvalue分区添加新分区:

alter table t_test add partition t_test_2015 VALUESLESS THAN (TO_DATE('2015-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) TABLESPACETS_MISPS ;
Salin selepas log masuk

2、有maxvalue分区添加新分区:

有了maxvalue,就不能直接add partition,而是需要max分区split。例如我们将创建的分区的语句修改下:

create table t_test (
   pk_id                number(30)                      not null,
  add_date_time        DATE,
   constraintPK_T_TEST primary key (pk_id)
)
PARTITION BY RANGE (add_date_time)
(
  PARTITIONt_test_2013_less VALUES LESS THAN (TO_DATE('2013-01-01 00:00:00','yyyy-mm-ddhh24:mi:ss')) TABLESPACE TS_MISPS,
  PARTITIONt_test_2013 VALUES LESS THAN (TO_DATE('2014-01-01 00:00:00','yyyy-mm-ddhh24:mi:ss')) TABLESPACE TS_MISPS,
  PARTITIONt_test_2014 VALUES LESS THAN (TO_DATE('2015-01-01 00:00:00','yyyy-mm-ddhh24:mi:ss')) TABLESPACE TS_MISPS,
    PARTITION t_test_maxVALUES LESS THAN (MAXVALUE)
)
Salin selepas log masuk

增加一个2016年的分区语句为:

alter table t_test split partition t_test_max at(TO_DATE('2016-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) into (partitiont_test_2015,partition t_test_max);
Salin selepas log masuk

2.2删除一个分区

alter table t_test drop partition t_test_2014
Salin selepas log masuk

注:droppartition时,该分区内存储的数据也将同时删除,你的本意是希望删除掉指定的分区但保留数据,你应该使用merge partition,执行该语句会导致glocal索引的失效需要重建全局索引

2.3合并分区

相邻的分区可以merge为一个分区,新分区的下边界为原来边界值较低的分区,上边界为原来边界值较高的分区,原先的局部索引相应也会合并,全局索引会失效,需要rebuild。

Alter  table t_test  merge partitions t_test_2013  ,t_Test_2014 into partition t_Test_2013_to_2014
Salin selepas log masuk

二、对分区表进行查询

2.1查询

不使用分区查询:默认查询所有分区数据

select * from t_test
Salin selepas log masuk

使用分区查询:只查询该分区数据

select * from t_testpartition(t_test_2014) where add_date_time >=TO_DATE('2014-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss');
Salin selepas log masuk

2.1插入

insert into t_test values(i, to_date(year,'yyyy-mm-dd hh24:mi:ss'));
Salin selepas log masuk

2.1删除

使用分区删除

更新的时候指定了分区,而根据查询的记录不在该分区中时,将不会删除数据

delete t_test partition(t_test_2013) where id=1;
Salin selepas log masuk

不使用分区删除

delete t_test  whereid=1;
Salin selepas log masuk

2.1修改

使用分区更新

更新的时候指定了分区,而根据查询的记录不在该分区中时,将不会更新数据

delete t_test where id=1;
update t_test partition(t_test)  set id=1 where id=2;
Salin selepas log masuk

不使用分区

delete t_test where id=1;
update t_test  set id=1 where id=2;
Salin selepas log masuk

三、普通表和分区表互转

普通表—>分区表

1、新建一个字段一样的中间的分区表(T_NEW)

2、将T数据导入到T_NEW中

INSERT INTO T SELECT field1,filed2, …from T
Salin selepas log masuk

将老表重命名

RENAME T TO T_OLD;
Salin selepas log masuk

将新表重命名

RENAME T_NEW TO T;
Salin selepas log masuk

这种适合静态操作,不保证数据一致性。如果在生产环境切换,利用利用在线重定义功能

 

 

 

 



Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Urutan langkah permulaan pangkalan data oracle ialah Urutan langkah permulaan pangkalan data oracle ialah May 10, 2024 am 01:48 AM

Urutan permulaan pangkalan data Oracle ialah: 1. Semak prasyarat 2. Mulakan pendengar 3. Mulakan contoh pangkalan data 5. Sambungkan ke pangkalan data; . Dayakan perkhidmatan (jika perlu );

Berapa lama log pangkalan data Oracle akan disimpan? Berapa lama log pangkalan data Oracle akan disimpan? May 10, 2024 am 03:27 AM

Tempoh pengekalan log pangkalan data Oracle bergantung pada jenis log dan konfigurasi, termasuk: Buat semula log: ditentukan oleh saiz maksimum yang dikonfigurasikan dengan parameter "LOG_ARCHIVE_DEST". Log buat semula yang diarkibkan: Ditentukan oleh saiz maksimum yang dikonfigurasikan oleh parameter "DB_RECOVERY_FILE_DEST_SIZE". Log buat semula dalam talian: tidak diarkibkan, hilang apabila pangkalan data dimulakan semula dan tempoh pengekalan adalah konsisten dengan masa berjalan contoh. Log audit: Dikonfigurasikan oleh parameter "AUDIT_TRAIL", dikekalkan selama 30 hari secara lalai.

Berapa banyak memori yang diperlukan oleh oracle? Berapa banyak memori yang diperlukan oleh oracle? May 10, 2024 am 04:12 AM

Jumlah memori yang diperlukan oleh Oracle bergantung pada saiz pangkalan data, tahap aktiviti dan tahap prestasi yang diperlukan: untuk menyimpan penimbal data, penimbal indeks, melaksanakan pernyataan SQL dan mengurus cache kamus data. Jumlah yang tepat dipengaruhi oleh saiz pangkalan data, tahap aktiviti dan tahap prestasi yang diperlukan. Amalan terbaik termasuk menetapkan saiz SGA yang sesuai, saiz komponen SGA, menggunakan AMM dan memantau penggunaan memori.

Bagaimana untuk membaca fail dbf dalam oracle Bagaimana untuk membaca fail dbf dalam oracle May 10, 2024 am 01:27 AM

Oracle boleh membaca fail dbf melalui langkah-langkah berikut: buat jadual luaran dan rujuk fail dbf untuk mendapatkan semula data yang diimport ke dalam jadual Oracle;

Keperluan konfigurasi perkakasan pelayan pangkalan data Oracle Keperluan konfigurasi perkakasan pelayan pangkalan data Oracle May 10, 2024 am 04:00 AM

Keperluan konfigurasi perkakasan pelayan pangkalan data Oracle: Pemproses: berbilang teras, dengan frekuensi utama sekurang-kurangnya 2.5 GHz Untuk pangkalan data yang besar, 32 teras atau lebih disyorkan. Memori: Sekurang-kurangnya 8GB untuk pangkalan data kecil, 16-64GB untuk saiz sederhana, sehingga 512GB atau lebih untuk pangkalan data yang besar atau beban kerja yang berat. Storan: Cakera SSD atau NVMe, tatasusunan RAID untuk lebihan dan prestasi. Rangkaian: Rangkaian berkelajuan tinggi (10GbE atau lebih tinggi), kad rangkaian khusus, rangkaian kependaman rendah. Lain-lain: Bekalan kuasa yang stabil, komponen berlebihan, sistem pengendalian dan perisian yang serasi, pelesapan haba dan sistem penyejukan.

Berapa banyak memori yang diperlukan untuk menggunakan pangkalan data oracle Berapa banyak memori yang diperlukan untuk menggunakan pangkalan data oracle May 10, 2024 am 03:42 AM

Jumlah memori yang diperlukan untuk pangkalan data Oracle bergantung pada saiz pangkalan data, jenis beban kerja dan bilangan pengguna serentak. Cadangan am: Pangkalan data kecil: 16-32 GB, Pangkalan data sederhana: 32-64 GB, Pangkalan data besar: 64 GB atau lebih. Faktor lain yang perlu dipertimbangkan termasuk versi pangkalan data, pilihan pengoptimuman memori, virtualisasi dan amalan terbaik (pantau penggunaan memori, laraskan peruntukan).

Tugas berjadual Oracle melaksanakan langkah penciptaan sekali sehari Tugas berjadual Oracle melaksanakan langkah penciptaan sekali sehari May 10, 2024 am 03:03 AM

Untuk mencipta tugas berjadual dalam Oracle yang dilaksanakan sekali sehari, anda perlu melakukan tiga langkah berikut: Buat kerja. Tambahkan subkerja pada kerja dan tetapkan ungkapan jadualnya kepada "INTERVAL 1 HARI". Dayakan kerja.

Berapa banyak memori yang diperlukan oleh pangkalan data oracle? Berapa banyak memori yang diperlukan oleh pangkalan data oracle? May 10, 2024 am 02:09 AM

Keperluan memori Pangkalan Data Oracle bergantung pada faktor berikut: saiz pangkalan data, bilangan pengguna aktif, pertanyaan serentak, ciri yang didayakan dan konfigurasi perkakasan sistem. Langkah-langkah untuk menentukan keperluan memori termasuk menentukan saiz pangkalan data, menganggar bilangan pengguna aktif, memahami pertanyaan serentak, mempertimbangkan ciri yang didayakan, dan memeriksa konfigurasi perkakasan sistem.

See all articles