关于分区技术的索引index
分区系列篇: 关于oracle分区技术--初了解 http://blog.csdn.net/wanghui5767260/article/details/39158873 关于分区技术的索引: http://blog.csdn.net/wanghui5767260/article/details/39181027 关于分区技术---索引 Index 一、 分区索引分类: 本地前缀分
分区系列篇:
关于oracle分区技术--初了解 http://blog.csdn.net/wanghui5767260/article/details/39158873
关于分区技术的索引: http://blog.csdn.net/wanghui5767260/article/details/39181027
关于分区技术---索引 Index
一、 分区索引分类:
本地前缀分区索引(local prefixedpartitioned index)
全局分区索引(global partitionedindex)
本地非前缀分区索引(localnon-prefixed partitioned index)
1.1 表和索引的组合:
第一种:表和索引都不分区
最简单的方式 就是常见的索引
第二种:表分区了,但索引没分区
这导致了:“我们已经做了分区表了,怎么性能没有提高?”的主要原因之一。
在很多系统中,特别是交易系统里面,是通过索引访问数据库的。如果索引没有分区,索引树的高度没有变,因此访问性能当然没有提高。如果按索引访问表,与表是否分区关系不大。
第三种:表没有分区,但索引分区了
索引只能是全局分区索引。
第四种:表分区了,索引也分区了(重点!!!)
全局分区索引
本地前缀分区索引
二、 具体介绍分区索引
本地分区索引
是指索引的分区方法与对应表的分区方法一样。
2.1本地前缀分区索引(local prefixed partitioned index)
是指分区字段是索引字段的前缀。
一张交易流水表(TXN_CURRENT),并且以交易日期字段(TXN_DATE)按年度进行了范围分区。在TXN_DATE 字段创建索引。
Createindex idx_txn_current_1 on txn_current(txn_date) local;
或者复合分区索引
Createindex idx_txn_current_2 on txn_current(txn_date,area) local;
好处:
a. 由于分区索引和表分区对应,因此查询数据直接到对应的索引分区去查询,索引树的高度肯定低于非分区情况下的那棵大索引树了,也就是说性能更高了。
b. 当某个分区进行删除(DROP)或合并(MERGE)操作之后,oracle自动对所对应的索引分区进行相同的操作,整个本地前缀索引依然有效,不需要重建(rebuild)操作,这样大大保障了表的可用性。
2.2 全局分区索引(global partitioned index)
索引的分区与表分区无关
分区表按年份进行分区,在地区(AREA)字段上建立分区索引,
也就是说:杭州交易数据肯定可分布在各年份,湖州、嘉兴交易数据同样如此。
假如有这样的查询需求:
Select* from TXN_CURRENT where area=’05711001’;
--假设查询杭州西湖区
好处:
a. 此时oracle会很聪明地知道杭州的分区索引树上去检索,索引高度肯定低于非分区情况下的大索引树了,也就是性能更高了。
b. 在分区粒度比较细的情况下,性能甚至高于本地前缀分区索引。
不足:
a. 主要体现在高可用方面。如果该表的03年数据通过分区删除全部删除了。则全局分区索引(包括普通非分区索引)则全部失效(INVALID),这些索引不可用了,除非重建(rebuild)操作。数据量越大,索引量也越大,重建索引时间也越长,无法通过该类索引访问数据的时间也越长。因此,大大降低数据的可访问性。
2.3 本地非前缀分区索引
可能导致性能会下降的情况,本地非前缀分区索引的性能可能还不如不分区。
优点:
a. 提高按索引访问的可用性!我们假设要通过删除分区技术,进行03年数据的清理,如果area字段索引建立成普通索引,或者是全局分区索引,都会面临一个问题:在分区删除(DROP)操作之后,普通索引和全局分区索引都会失效(INVALID),必须重建。而本地非前缀分区索引的好处在于,在分区删除操作后,该本地非前缀分区索引依然有效。
三、 整理思路
理解分区索引藏宝图:

描述藏宝图:找宝藏
(1)如果表分区字段正好是索引字段或者是其前缀。例如:上述TXN_CURRENT 表分区字段是TXN_DATE,则TXN_DATE正好是索引字段(TXN_DATE),或者正好是索引字段(TXN_DATE,AREA)的前缀,则此时应建立local profixedpartitioned index.
(2)否则,如果欲将非分区字段建立为唯一索引,例如:假设在TXN_CURRENT 表的某个字段建立唯一索引,oracle要求必须global prefixed index.
否则报错:
ORA-14039:partitioning columns must form a subset of key columns of a UNIQUE index
(3)流程图再往下,此时要判断“是否性能在可承受范围,而分区的管理性、可用性更重要?”。如果是,就应建立local non-profixed index。也就是上面所描述的:如果历史数据的整理非常频繁,而且不能承受全局分区索引重建的长时间带来的索引不可用,同时日常交易性能尚能接受,则建议设计为本地非前缀分区索引。
(4)流程图再往下,最后判断系统是否为交易系统或者是数据仓库系统。因为通常情况下,数据仓库会有频繁的大批量数据导入(ETL)操作,以及历史数据清理操作,此时分区索引可用性更重要,因此建议设计为Localnon-profixed index 。而在交易系统中,日常查询性能要求更高,历史数据清理操作频度相对较低,因此建议设计为global profixed index。
注:oracle没有global non-profixed index概念。
四、 分区表设计建议 只是建议:更多看实际!!!
(1) 表的大小:当表的大小超过1.5G—2GB时,或对于OLTP系统,表的记录超过1000万条时,都应考虑对表进行分区。
(2) 数据访问特征:基于表的大部分查询应用,只访问表中的少量数据。对于这样的表进行分区,可充分利用分区技术排除无关数据查询的特征。
(3) 数据维护:按时间段删除成批的数据,例如按月删除历史数据。对于这样的表需要考虑进行分区,以满足维护的需求。
(4) 数据备份和恢复:按时间周期进行表空间的备份时,在分区与表空间之间建立起对应关系。
(5) 只读数据:如果一个表中的大部分数据都是只读数据,通过对表进行分区,可将只读数据存储在只读表空间中,对于数据库的备是非常有益的。
(6) 并行数据操作:对于经常执行并行操作(如parallelinsert、parallel update等)的表应考虑进行分区。
(7) 表的可用性:当对表中部分数据的可用性要求很高时,应考虑进行表分区。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

index.html代表網頁的首頁文件,是網站的預設頁面。當使用者造訪一個網站時,通常會先載入index.html頁面。 HTML(HypertextMarkupLanguage)是一種用來建立網頁的標記語言,index.html也是一種HTML檔。它包含網頁的結構和內容,以及用於格式化和佈局的標籤和元素。下面是一個範例的index.html程式碼:<

StableDiffusion3的论文终于来了!这个模型于两周前发布,采用了与Sora相同的DiT(DiffusionTransformer)架构,一经发布就引起了不小的轰动。与之前版本相比,StableDiffusion3生成的图质量有了显著提升,现在支持多主题提示,并且文字书写效果也得到了改善,不再出现乱码情况。StabilityAI指出,StableDiffusion3是一个系列模型,其参数量从800M到8B不等。这一参数范围意味着该模型可以在许多便携设备上直接运行,从而显著降低了使用AI

軌跡預測在自動駕駛中承擔著重要的角色,自動駕駛軌跡預測是指透過分析車輛行駛過程中的各種數據,預測車輛未來的行駛軌跡。作為自動駕駛的核心模組,軌跡預測的品質對於下游的規劃控制至關重要。軌跡預測任務技術堆疊豐富,需熟悉自動駕駛動/靜態感知、高精地圖、車道線、神經網路架構(CNN&GNN&Transformer)技能等,入門難度很高!許多粉絲期望能夠盡快上手軌跡預測,少踩坑,今天就為大家盤點下軌跡預測常見的一些問題和入門學習方法!入門相關知識1.預習的論文有沒有切入順序? A:先看survey,p

這篇論文探討了在自動駕駛中,從不同視角(如透視圖和鳥瞰圖)準確檢測物體的問題,特別是如何有效地從透視圖(PV)到鳥瞰圖(BEV)空間轉換特徵,這一轉換是透過視覺轉換(VT)模組實施的。現有的方法大致分為兩種策略:2D到3D和3D到2D轉換。 2D到3D的方法透過預測深度機率來提升密集的2D特徵,但深度預測的固有不確定性,尤其是在遠處區域,可能會引入不準確性。而3D到2D的方法通常使用3D查詢來採樣2D特徵,並透過Transformer學習3D和2D特徵之間對應關係的注意力權重,這增加了計算和部署的

小米15系列預計10月正式發布,其全系列代號已在外媒MiCode程式碼庫曝光。其中,旗艦級小米15Ultra代號為"Xuanyuan"(意為"軒轅"),此名源自中國神話中的黃帝,象徵尊貴。小米15的代號為"Dada",而小米15Pro則以"Haotian"(意為"昊天")為名。小米15SPro內部代號為"dijun",暗指《山海經》創世神帝俊。小米15Ultra系列涵蓋

fdisk是常用的Linux命令列工具,用於建立、管理和修改磁碟分割區。以下是一些常用的fdisk指令:顯示磁碟分割資訊:fdisk-l此指令將顯示系統中所有磁碟的分割區資訊。選擇要操作的磁碟:fdisk/dev/sdX將/dev/sdX替換為要操作的實際磁碟裝置名稱,如/dev/sda。建立新分割區:n這將引導您建立一個新的分割區。依照指示輸入分割區類型、起始磁區、大小等資訊。刪除分割區:d這將引導您選擇要刪除的分割區。依照提示選擇要刪除的分割區編號。修改分割區類型:t這將引導您選擇要修改類型的分割區。按照提

LinuxOpt分區的設定方法及程式碼範例在Linux系統中,Opt分割區通常用於儲存可選軟體包和應用程式資料。合理設定Opt分割區可以有效管理系統資源,避免磁碟空間不足等問題。本文將詳細介紹如何設定LinuxOpt分區,並提供具體的程式碼範例。 1.確定分割空間大小首先,我們要確定Opt分割區所需的空間大小。一般建議將Opt分區的大小設定為系統總空間的5%-1

自去年华为Mate60系列开售以来,我个人就一直将Mate60Pro作为主力机使用。在将近一年的时间里,华为Mate60Pro经过多次OTA升级,综合体验有了显著提升,给人一种常用常新的感觉。比如近期,华为Mate60系列就再度迎来了影像功能的重磅升级。首先是新增AI消除功能,可以智能消除路人、杂物并对空白部分进行自动补充;其次是主摄色准、长焦清晰度均有明显升级。考虑到现在是开学季,华为Mate60系列还推出了秋日礼遇活动:购机可享至高800元优惠,入手价低至4999元。常用常新的产品力加上超值
