【SQL開發實戰技巧】系列(四十八):Oracle12C常用新特性?多分區操作和管理

系列文章目錄

【SQL開發實戰技巧】系列(一):關于SQL不得不說的那些事
【SQL開發實戰技巧】系列(二):簡單單表查詢
【SQL開發實戰技巧】系列(三):SQL排序的那些事
【SQL開發實戰技巧】系列(四):從執行計劃討論UNION ALL與空字符串&UNION與OR的使用注意事項
【SQL開發實戰技巧】系列(五):從執行計劃看IN、EXISTS 和 INNER JOIN效率,我們要分場景不要死記網上結論
【SQL開發實戰技巧】系列(六):從執行計劃看NOT IN、NOT EXISTS 和 LEFT JOIN效率,記住內外關聯條件不要亂放
【SQL開發實戰技巧】系列(七):從有重復數據前提下如何比較出兩個表中的差異數據及對應條數聊起
【SQL開發實戰技巧】系列(八):聊聊如何插入數據時比約束更靈活的限制數據插入以及怎么一個insert語句同時插入多張表
【SQL開發實戰技巧】系列(九):一個update誤把其他列數據更新成空了?Merge改寫update!給你五種刪除重復數據的寫法!
【SQL開發實戰技巧】系列(十):從拆分字符串、替換字符串以及統計字符串出現次數說起
【SQL開發實戰技巧】系列(十一):拿幾個案例講講translate|regexp_replace|listagg|wmsys.wm_concat|substr|regexp_substr常用函數
【SQL開發實戰技巧】系列(十二):三問(如何對字符串字母去重后按字母順序排列字符串?如何識別哪些字符串中包含數字?如何將分隔數據轉換為多值IN列表?)
【SQL開發實戰技巧】系列(十三):討論一下常用聚集函數&通過執行計劃看sum()over()對員工工資進行累加
【SQL開發實戰技巧】系列(十四):計算消費后的余額&計算銀行流水累計和&計算各部門工資排名前三位的員工
【SQL開發實戰技巧】系列(十五):查找最值所在行數據信息及快速計算總和百之max/min() keep() over()、fisrt_value、last_value、ratio_to_report
【SQL開發實戰技巧】系列(十六):數據倉庫中時間類型操作(初級)日、月、年、時、分、秒之差及時間間隔計算
【SQL開發實戰技巧】系列(十七):數據倉庫中時間類型操作(初級)確定兩個日期之間的工作天數、計算—年中周內各日期出現次數、確定當前記錄和下一條記錄之間相差的天數
【SQL開發實戰技巧】系列(十八):數據倉庫中時間類型操作(進階)INTERVAL、EXTRACT以及如何確定一年是否為閏年及周的計算
【SQL開發實戰技巧】系列(十九):數據倉庫中時間類型操作(進階)如何一個SQL打印當月或一年的日歷?如何確定某月內第一個和最后—個周內某天的日期?
【SQL開發實戰技巧】系列(二十):數據倉庫中時間類型操作(進階)獲取季度開始結束時間以及如何統計非連續性時間的數據
【SQL開發實戰技巧】系列(二十一):數據倉庫中時間類型操作(進階)識別重疊的日期范圍,按指定10分鐘時間間隔匯總數據
【SQL開發實戰技巧】系列(二十二):數倉報表場景? 從分析函數效率一定快嗎聊一聊結果集分頁和隔行抽樣實現方式
【SQL開發實戰技巧】系列(二十三):數倉報表場景? 如何對數據排列組合去重以及通過如何找到包含最大值和最小值的記錄這個問題再次用執行計劃給你證明分析函數性能不一定高
【SQL開發實戰技巧】系列(二十四):數倉報表場景?通過案例執行計劃詳解”行轉列”,”列轉行”是如何實現的
【SQL開發實戰技巧】系列(二十五):數倉報表場景?結果集中的重復數據只顯示一次以及計算部門薪資差異高效的寫法以及如何對數據進行快速分組
【SQL開發實戰技巧】系列(二十六):數倉報表場景?聊聊ROLLUP、UNION ALL是如何分別做分組合計的以及如何識別哪些行是做匯總的結果行
【SQL開發實戰技巧】系列(二十七):數倉報表場景?通過對移動范圍進行聚集來詳解分析函數開窗原理以及如何一個SQL打印九九乘法表
【SQL開發實戰技巧】系列(二十八):數倉報表場景?人員分布問題以及不同組(分區)同時聚集如何實現
【SQL開發實戰技巧】系列(二十九):數倉報表場景?簡單的樹形(分層)查詢以及如何確定根節點、分支節點和葉子節點
【SQL開發實戰技巧】系列(三十):數倉報表場景?樹形(分層)查詢如何排序?以及如何在樹形查詢中正確的使用where條件
【SQL開發實戰技巧】系列(三十一):數倉報表場景?分層查詢如何只查詢樹形結構某一個分支?如何剪掉一個分支?
【SQL開發實戰技巧】系列(三十二):數倉報表場景?對表中某個字段內的值去重
【SQL開發實戰技巧】系列(三十三):數倉報表場景?從不固定位置提取字符串的元素以及搜索滿足字母在前數字在后等條件的數據
【SQL開發實戰技巧】系列(三十四):數倉報表場景?如何對數據分級并行轉為列
【SQL開發實戰技巧】系列(三十五):數倉報表場景?根據條件返回不同列的數據以及Left /Full Join注意事項
【SQL開發實戰技巧】系列(三十六):數倉報表場景?整理垃圾數據:查找數據的連續性時間和重疊時間的關系,初始化開始結束時間
【SQL開發實戰技巧】系列(三十七):數倉報表場景?從表內始終只有近兩年的數據,要求用兩列分別顯示其中一年的數據聊行轉列隱含信息的重要性
【SQL開發實戰技巧】系列(三十八):數倉報表場景?拆分字符串進行連接
【SQL開發實戰技巧】系列(三十九):Oracle12C常用新特性?新增分頁查詢
【SQL開發實戰技巧】系列(四十):Oracle12C常用新特性?可以在同樣的列(列組合)上創建多個索引以及可以對DDL操作進行日志記錄
【SQL開發實戰技巧】系列(四十一):Oracle12C常用新特性?APPROX_COUNT_DISTINCT以及TEMP UNDO(臨時undo記錄可以存儲在一個臨時表中)
【SQL開發實戰技巧】系列(四十二):Oracle12C常用新特性?With FUNCTION新特性
【SQL開發實戰技巧】系列(四十三):Oracle12C常用新特性?轉換函數的增強和不可見字段
【SQL開發實戰技巧】系列(四十四):Oracle12C常用新特性?你知道嗎Oralcle新增了類似Mysql的自增列(Identity Columns)功能
【SQL開發實戰技巧】系列(四十五):Oracle12C常用新特性?varchar2/nvarchar2類型最大長度由4000字節擴展到32767字節
【SQL開發實戰技巧】系列(四十六):Oracle12C常用新特性?會話級序列及數據泵(DataPump增強)支持像表一樣導出視圖
【SQL開發實戰技巧】系列(四十七):Oracle12C常用新特性?非分區表在線轉分區表online clause(不停業務+索引有效)
【SQL開發實戰技巧】系列(四十八):Oracle12C常用新特性?多分區操作和管理


文章目錄

  • 系列文章目錄
  • 前言
  • 【SQL開發實戰技巧】系列(四十八):Oracle12C常用新特性?多分區操作和管理
  • 一、增加多個新分區
  • 二、同時截斷/刪除多個分區
  • 三、同時拆分多個分區
  • 四、同時合并多個分區
  • 總結


前言

本篇文章主要給講解的Oracle12C+的新特性是:*** 多分區操作和管理:通過ALTER TABLE ADD PARTITION增加多個新分區、 通過ALTER TABLE table_name {DROP|TRUNCATE}PARTITIONS 同時截斷/刪除多個分區、通過SPLIT PARTITION同時拆分多個分區、通過ALTER TBALE MERGE PARTITIONS合并多個分區***

【SQL開發實戰技巧】這一系列博主當作復習舊知識來進行寫作,畢竟SQL開發在數據分析場景非常重要且基礎,面試也會經常問SQL開發和調優經驗,相信當我寫完這一系列文章,也能再有所收獲,未來面對SQL面試也能游刃有余~。


【SQL開發實戰技巧】系列(四十八):Oracle12C常用新特性?多分區操作和管理

一、增加多個新分區

在Oracle 12c R1之前,一次只可能添加一個新分區到一個已存在的分區表。要添加一個以上的新分區,需要對每個新分區都單獨執行一次ALTER TABLE ADD PARTITION語句。而Oracle 12c只需要使用一條單獨的ALTER TABLE ADD PARTITION 命令就可以添加多個新分區,這增加了數據庫靈活性。
案例:
創建測試用表:

CREATE TABLE  t1_part (eno number(8), ename varchar2(40), sal number (6))PARTITION BY RANGE (sal)
(PARTITION p1 VALUES LESS THAN (10000),
PARTITION p2 VALUES LESS THAN (20000),
PARTITION p3 VALUES LESS THAN (30000));

插入一條數據:

insert into t1_part values(1,'a',1);
insert into t1_part values(2,'a',10001);
insert into t1_part values(3,'a',20001);
select segment_name,segment_type,PARTITION_NAME,TABLESPACE_NAME from user_segments where segment_name = 'T1_PART';

在這里插入圖片描述

ALTER TABLE t1_part ADD PARTITION p4 VALUES LESS THAN (35000),PARTITION p5 VALUES LESS THAN (40000);
insert into t1_part values(4,'a',34000);
insert into t1_part values(5,'a',35001);
select segment_name,segment_type,PARTITION_NAME,TABLESPACE_NAME from user_segments where segment_name = 'T1_PART';

在這里插入圖片描述

二、同時截斷/刪除多個分區

作為數據維護的一部分,DBA通常會在一個分區表上進行刪除或截斷分區的維護任務。在12c R1之前,對于一個已存在的分區表一次只可能刪除或截斷一個分區。而對于Oracle12c, 可以用單條ALTER TABLE table_name {DROP|TRUNCATE}PARTITIONS 命令來撤銷或合并多個分區和子分區。
案例:

alter table t1_part drop partitions p4,p5;
ALTER TABLE t1_part TRUNCATE partitions p2,p3;
select segment_name,segment_type,PARTITION_NAME,TABLESPACE_NAME from user_segments where segment_name = 'T1_PART';

在這里插入圖片描述

select * from t1_part partition(p2)
union all
select * from t1_part partition(p3);
no rows.

三、同時拆分多個分區

在12c中新增強的SPLIT PARTITION 語句可以只使用一個單獨命令將一個特定分區或子分區分割為多個新分區。
案例:

創建測試用表:
CREATE TABLE t2_part (eno number(8), ename varchar2(40), sal number(6))
PARTITION BY RANGE (sal)
(PARTITION p1 VALUES LESS THAN (10000),
PARTITION p2 VALUES LESS THAN (20000),
PARTITION p_max VALUES LESS THAN (MAXVALUE) );
insert into t2_part values(1,'a',1);
insert into t2_part values(2,'a',10009);
insert into t2_part values(2,'a',20000);
select segment_name,segment_type,PARTITION_NAME,TABLESPACE_NAME from user_segments where segment_name = 'T2_PART';

在這里插入圖片描述

ALTER TABLE t2_part
SPLIT PARTITION p_max INTO
(PARTITION p3 VALUES LESS THAN (25000),
PARTITION p4 VALUES LESS THAN (30000),
PARTITION p_max);
insert into t2_part values(4,'a',24000);
insert into t2_part values(5,'a',26000);
insert into t2_part values(6,'a',29000);
select segment_name,segment_type,PARTITION_NAME,TABLESPACE_NAME from user_segments where segment_name = 'T2_PART';

在這里插入圖片描述

四、同時合并多個分區

在12C中可以使用單條ALTER TBALE MERGE PARTITIONS 語句將多個分區合并為一個單獨分區。
案例:

alter table t2_part merge partitions p2 to p3 into partition p_m23;
select segment_name,segment_type,PARTITION_NAME,TABLESPACE_NAME from user_segments where segment_name = 'T2_PART';

在這里插入圖片描述


總結

以上是總結的Oracle12C+對于分區表的一些實用的新特性實戰。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/210805.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/210805.shtml
英文地址,請注明出處:http://en.pswp.cn/news/210805.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

K8s構建的mysql無法遠程連接

最近在寫一個老師布置的大作業,都是老師寫好的yaml文件,都是沒問題的,但是構建的mysql無法遠程連接。 嘗試了網上的很多方法,都失敗了,我的構建過程應該是沒什么錯誤的,所以網上的方法并不奏效&#xff0c…

【小白專用】Sql Server 連接Mysql 更新23.12.09

目標 已知mysql連接參數(地址和用戶),期望通過Microsoft Sql Server Management Studio (以下簡稱MSSSMS)連接Mysql,在MSSSMS中直接查詢或修改Mysql中的數據。 一般是選最新的版本下載。 選64位還是32位&a…

C++ 對象的初始化和清理:構造函數和析構函數

目錄 構造函數和析構函數 構造函數 析構函數 構造函數的分類及調用 括號法 顯示法 隱式轉換法 拷貝構造函數的調用時機 使用一個已經創建完畢的對象來初始化一個新對象 值傳遞的方式給函數參數傳值 以值方式返回局部對象 構造函數調用規則 初始化列表 類對象作…

【Java 基礎】27 XML 解析

文章目錄 1.SAX 解析器1)什么是 SAX2)SAX 工作流程初始化實現事件處理類解析 3)示例代碼 2.DOM 解析器1)什么是 DOM2)DOM 工作流程初始化解析 XML 文檔操作 DOM 樹 3)示例代碼 總結 在項目開發中&#xff0…

Jupyter notebook修改背景主題

打開Anaconda Prompt,輸入以下內容 1. pip install --upgrade jupyterthemes 下載對應背景主題包 出現Successfully installed jupyterthemes-0.20.0 lesscpy-0.15.1時,說明已經下載安裝完成 2. jt -l 查看背景主題列表 3. jt -t 主題名稱(…

【LeeCode】18.四數之和

給你一個由 n 個整數組成的數組 nums &#xff0c;和一個目標值 target 。請你找出并返回滿足下述全部條件且不重復的四元組 [nums[a], nums[b], nums[c], nums[d]] &#xff08;若兩個四元組元素一一對應&#xff0c;則認為兩個四元組重復&#xff09;&#xff1a; 0 < a, …

mysql的BIT數值類型

MySQL :: MySQL 8.2 Reference Manual :: 11.1.5 Bit-Value Type - BIT MySQL :: MySQL 8.2 Reference Manual :: 9.1.5 Bit-Value Literals BIT類型用來存放bit值&#xff0c;每一位是0或者1&#xff0c;允許1-64位。 例如&#xff0c;下面表定義了new這列的類型為8位的BIT…

NestJS的微服務實現

1.1 基本概念 微服務基本概念&#xff1a;微服務就是將一個項目拆分成多個服務。舉個簡單的例子&#xff1a;將網站的登錄功能可以拆分出來做成一個服務。 微服務分為提供者和消費者&#xff0c;如上“登錄服務”就是一個服務提供者&#xff0c;“網站服務器”就是一個服務消…

Python如何實現數據驅動的接口自動化測試

大家在接口測試的過程中&#xff0c;很多時候會用到對CSV的讀取操作&#xff0c;本文主要說明Python3對CSV的寫入和讀取。下面話不多說了&#xff0c;來一起看看詳細的介紹吧。 1、需求 某API&#xff0c;GET方法&#xff0c;token,mobile,email三個參數 token為必填項mobil…

python在線讀取傳奇列表,并解析為需要的JSON格式

python在線讀取傳奇列表,并解析為需要的JSON格式,以下為傳奇中使用的TXT列表格式, [Server] ; 使用“/”字符分開顏色,也可以不使用顏色,支持以前的舊格式,只有標題和服務器標題支持顏色 ; 標題/顏色代碼(0-255)|服務器標題/顏色代碼(0-255)|服務器名稱|服務器IP|服務器端…

探索人工智能領域——每日20個名詞詳解【day13】

目錄 前言 正文 總結 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高興與大家相識&#xff0c;希望我的博客能對你有所幫助。 &#x1f4a1;本文由Filotimo__??原創&#xff0c;首發于CSDN&#x1f4da;。 &#x1f4e3;如需轉載&#xff0c;請事先與我聯系以…

Axure網頁端高交互組件庫, 下拉菜單文件上傳穿梭框日期城市選擇器

作品說明 組件數量&#xff1a;共 11 套 兼容軟件&#xff1a;Axure RP 9/10&#xff0c;不支持低版本 應用領域&#xff1a;web端原型設計、桌面端原型設計 作品特色 本作品為「web端組件庫」&#xff0c;高保真高交互 (帶仿真功能效果)&#xff1b;運用了動態面板、中繼…

UniGui使用CSSUniTreeMenu滾動條

有些人反應UniTreeMenu當菜單項目比較多的時候會超出但是沒有出滾動條&#xff0c;只需要添加如下CSS 老規矩&#xff0c;unitreemeu的layout的componentcls里添加bbtreemenu&#xff0c;然后在css里添加 .bbtreemenu .x-box-item{ overflow-y: auto; } 然后當內容超出后就會…

【數據結構第 6 章 ②】- 用 C 語言實現鄰接矩陣

目錄 一、鄰接矩陣表示法 二、AMGraph.h 三、AMGraph.c 四、Test.c 【數據結構第 6 章 ① 】- 圖的定義和基本術語-CSDN博客 由于圖的結構比較復雜&#xff0c;任意兩個頂點之間都可能存在聯系&#xff0c;因此無法以數據元素在存儲區中的物理位置來表示元素之間的關系&…

SpringCloud網關介紹

一、Gateway簡介 1、官網 上一代zuul 1.X&#xff1a;https://github.com/Netflix/zuul/wiki 當前gateway&#xff1a;https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/ 2、是什么 SpringCloud Gateway是SpringCloud的一個全…

.NET Core 依賴注入 Microsoft.Extensions.DependencyInjection

文章目錄 前言什么是依賴注入C# 使用依賴注入框架介紹 Microsoft.Extensions.DependencyInjectionNuget安裝簡單單例使用打印結果 自動裝配舉例自動裝配測試用例打印結果自動裝配執行順序測試用例有歧義構造函數漸進式構造函數循環依賴 自動裝配結論 手動裝配手動注入別名注入 …

Git:版本控制的藝術與實踐

引言&#xff1a; 在軟件開發領域&#xff0c;版本控制是至關重要的一環。它幫助我們跟蹤代碼的變化、管理團隊協作、回溯歷史記錄以及解決沖突等。而Git作為目前最流行的分布式版本控制系統&#xff0c;已經成為了開發者們的必備工具。本文將深入探討Git的核心概念、常用命令以…

使用Docker安裝Superset并設置Oracle訪問和使用PG作Meta數據庫

一、安裝 Docker 安裝一個linux&#xff0c;可以是Centos或Ubuntu&#xff0c;如果是Centos 7.X&#xff0c;那么要注意先將系統自帶的docker先刪除。下文以Centos7.9為例 #刪除自帶的不完整版本 yum remove docker docker-client docker-client-latest \docker-common docker-…

調用win32 api獲取電腦名字和系統目錄

學習一下幾個函數的功能&#xff0c;和調用方式&#xff1b; void CBasenameView::OnDraw(CDC* pDC) {CBasenameDoc* pDoc GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereCString str1;TCHAR myname1[50], myname2[50], mydirname1[50], myd…

常見的Linux系統版本

在介紹常見的Linux系統版本之前&#xff0c;首先需要區分Linux系統內核與Linux發行套件系統的不同。Linux系統內核指的是一個由Linus Torvalds負責維護&#xff0c;提供硬件抽象層、硬盤及文件系統控制及多任務功能的系統核心程序。而Linux發行套件系統是我們常說的Linux操作系…