Oralce水平分表
工作中遇到一张表每天都插入很多数据,随着时间的推移数据量会变的很大上百万条甚至上千万条记录。这样我们能不能把表进行拆分呢,答案是肯定的Oracle 很早就考虑到这个问题提供了水平拆分。 Oracle 10 g 中提供下面三中分区: 1)范围分区(Range partition)
工作中遇到一张表每天都插入很多数据,随着时间的推移数据量会变的很大上百万条甚至上千万条记录。这样我们能不能把表进行拆分呢,答案是肯定的Oracle 很早就考虑到这个问题提供了水平拆分。Oracle 10 g 中提供下面三中分区:
1)范围分区(Range partition)
2) 哈希分区(Hash partition)
-
3)列表分区(List partition)
由于水平有限下面重点介绍范围分区
范围分区,顾名思义,就是根据表的某个字段的值,以固定的一个范围作为一个分区来划分数据
1.1可以根据序号分区建表
create table test1
1.(
2. ID NUMBER not null, 3. JQBH VARCHAR2(20),
4. FJH VARCHAR2(20)
5.)
6.partition by range (ID) 7.(
8. partition part_01 values less than(30000000) tablespace WLKP_FP_DATA_2011, 9. partition part_02 values less than(60000000) tablespace WLKP_FP_DATA_2012, 10. partition part_03 values less than(maxvalue) tablespace WLKP_FP_DATA_2013 11. );
从上面我们看出按照序号分区1-30000000数据存储在part_01分区表中,30000000-60000000数据存储在第part_02分区表中。这样就达到水平拆分表的目的
1.2可以根据日期分区建表
create table test2
1.(
2. ID NUMBER not null, 3. JQBH VARCHAR2(20),
4. FJH VARCHAR2(20),
5. KPRQ DATE 6.)
7.partition by range (KPRQ) 8.(
9. partition part_01 values less than(TO_DATE('2012-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) tablespace WLKP_FP_DATA_2011, 10. partition part_02 values less than(TO_DATE('2013-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) tablespace WLKP_FP_DATA_2012, 11. partition part_03 values less than(MAXVALUE) tablespace WLKP_FP_DATA_2013 12. );
从上面建表语句我们可以看到通过时间按照年存储数据表。
通过以上方式以上方式我们可以将数据比较大的表根据ID 时间自动拆分的其他分区表中。
以上方式在系统设计表结构的时候就考虑到分表情况,实际工作中由于对系统数据量的遇见不足,没有在设计表的时候考虑的表水平切分情况。那么我们有没有办法对现有表进行拆分和改造呢。答案是肯定的。
现在对表WLKP_FP_KJ进行扩展改造
1.创建新表空间
CREATE TABLESPACE "WLKP_FP_DATA_2010"
表空间创建代码
1.LOGGING
2.DATAFILE 'E:\Oracle\product\10.2.0\oradata\wlkp\WLKP_FP_DATA_2010.ORA' 3.SIZE 5M REUSE AUTOEXTEND
4.ON NEXT 1024K MAXSIZE 32767M EXTENT MANAGEMENT LOCAL
5.SEGMENT SPACE MANAGEMENT AUTO ;
6.commit;
这里我们新建WLKP_FP_DATA_2010表空间,按照年来存储扩展WLKP_FP_KJ表当然也可以建立2011、2012、2013...表空间存储未来的数据
2创建新表WLKP_FP_KJ_TEST
表结构按照1.2日期分区建表
3.新表建立后,复制老表数据
insert into wlkp_fp_kj_test select* from wlkp_fp_kj
4.将老表wlkp_fp_kj 删除
5.重命名wlkp_fp_kj_test 为wlkp_fp_kj
这样通过以上方式我们可以讲原来wlkp_fp_kj 按照时间水平分割存储到不同的表空间了.
通过分区表查询数据分别存储在哪个分区表中.
select * from WLKP_FP_KJ partition(WLKP_FP_DATA_2011) ;

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

SQL での MINUS の使用法と具体的なコード例 SQL では、MINUS は 2 つの結果セット間の差分演算を実行するために使用される演算子です。これは、2 番目の結果セットと同じ行を最初の結果セットから削除するために使用されます。 MINUS 演算子によって返される結果セットには、最初の結果セットにのみ存在する行が含まれます。以下では、特定のコード例を使用して MINUS の使用法を示します。 「table1」と「table2」という 2 つのテーブルがあると仮定します。それらの構造は次のとおりです。 テーブル名: table1 フィールド

解決策はい、add() メソッドを使用して簡単に null 値をリストに挿入できます。List 実装の場合、null はサポートされていないため、NullPointerException がスローされます。Syntaxbooleanadd(Ee) 指定された要素をこのリストの末尾に追加します。型パラメーター E -要素の実行時の型。パラメータ e −このリストに追加される要素

多くのゲーマーはグラフィックス カード 3060 に非常に興味があり、3060 ディスプレイを購入したいと考えていますが、RTX3060 がどのレベルにあるのか知りません。実際、このグラフィックス カードも比較的主流のレベルにあります。 3060 グラフィックス カードのレベルは何ですか: 回答: メインストリーム レベル。この RTX3060 グラフィックス カードは、プレイヤーの間で非常に人気があり、セールも行われており、RTX30 シリーズの独自の利点を備え、非常にコスト効率が高く、ゲーム グラフィックスに対する要求が高いプレイヤーはこのグラフィックス カードを選択できます。 3060 グラフィックス カード拡張の紹介: フレーム レート: ほとんどのプレイヤーに愛されており、12 GB の大容量ビデオ メモリを備えており、非常に人気があります。 12 GB の大容量ビデオ メモリを搭載し、AAA の傑作を遅延なくスムーズに実行でき、フレーム レートは 60 に達することもあります。お金の価値: それ

1. wps ソフトウェアを開き、wps テキスト操作インターフェイスに入ります。 2. このインターフェースで挿入オプションを見つけます。 3. [挿入] オプションをクリックし、編集領域で [形状] オプションを見つけます。 4. 形状オプションをクリックし、そのサブメニューで推奨オプションを見つけます。 5. 推奨オプションで中国マップ オプションを見つけます。 6. [中国地図] オプションをクリックし、編集入力領域でマウスの左ボタンでドラッグして、必要な中国地図を取得します。

今年の携帯電話市場の新星として、Kirin 9000s が大きな注目を集めています。スマートフォン市場の競争が激化する中、ファーウェイのフラッグシッププロセッサとして常に注目を集めてきたKirinシリーズ。最新のプロセッサーである Kirin 9000 はどのようなパフォーマンスを発揮するのでしょうか?そのパフォーマンスとレベルはどのようなものですか?以下では、Kirin 9000 を評価し、その長所と短所をさまざまな側面から分析します。まずパフォーマンスの観点から見ると、Kirin 9000 は高度な 5nm プロセスを使用して製造され、ARM の最新の Co

リンクされたリストを形成するために使用される整数値を取得します。このタスクは、最初に単一リンク リストを挿入し、次に再帰的方法を使用して走査することです。 head が NULL の場合、最後にノードを再帰的に追加します。 → head にノードを追加します。それ以外の場合、head に追加します (head → next) head が NULL の場合、ノードを再帰的に走査します。 → それ以外の場合は終了します。 print (head → next) 入力例 −1-2-7-9 -10 出力 出力強>- リンク リスト: 1→2→7→9→10→NULL 入力-12-21-17-94-18 出力- リンク リスト: 12→21→17→94→18→NULL以下のプログラム メソッドは次のとおりです。 このメソッドでは、関数を使用してノードを追加し、単一リンクされたリストを走査して渡します。

MySQL に複数行のデータを挿入するステートメントを実装するにはどうすればよいですか? MySQL では、一度に複数行のデータをテーブルに挿入する必要がある場合がありますが、この場合、INSERINTO ステートメントを使用してこれを実現できます。ここでは、INSERTINTO ステートメントを使用して複数行のデータを挿入する方法と、具体的なコード例を紹介します。 id、名前、および年齢フィールドを含むstudentsという名前のテーブルがあるとします。複数の学生情報を一度に挿入したいとします。これを実現するには、次の手順に従います。

1. ファイルを追加する PPT を開きます。 2. ppt ドキュメントを挿入するページに移動します。 3. メニューバーの[挿入]→[オブジェクト]を選択します。 4. [オブジェクトの挿入]ダイアログボックスが表示されます。操作方法 1: 新規作成を選択し、ダイアログ ボックスで [Microsoft Office PowerPoint プレゼンテーション] を選択し、[OK] をクリックすると、新しい空のドキュメント ボックスにコンテンツを追加できます 操作方法 2: ファイルから作成を選択し、ダイアログ ボックスで [参照] をクリックします]ダイアログボックスで、挿入する必要があるファイルを見つけて[OK]をクリックします。
