在oracle中,索引翻轉指的是在建立索引時,針對索引列的索引鍵值進行位元組反轉,進而實現分散存放不同子節點區塊的目的,是“B-tree”索引的一個分支;使用反向索引,能將索引列的鍵值反轉,實現順序的鍵值分散到不同的葉塊中,從而減少索引塊的爭用。
本教學操作環境:windows10系統、Oracle 12c版、Dell G3電腦。
oracle索引反轉是什麼
反向索引作為B-tree索引的⼀個分⽀,主要是在建立索引時,針對索引列的索引鍵值進⾏位元組反轉,進⽽實現分散存放到不同葉
⼦節點塊的⽬的。
反向索引針對的問題
使⽤傳統的B-tree索引,當索引的欄位是依序產⽣時,對應的索引鍵值會基本分佈在同⼀個葉塊中。當⽤戶對該列進⾏操作時,
難免會發⽣索引塊的爭⽤。
使⽤反向索引,將索引列的鍵值進⾏反轉,實現順序的鍵值分散到不同的葉塊中,從⽽減少索引塊的爭⽤。
例如:鍵值1001、1002、1003,反轉後1001、2001、3001,進⽽分散到不⽤的葉⼦節點區塊。
當載入一些有序資料時,索引肯定會碰到與I/O相關的一些瓶頸。在資料載入期間,某部分索引和磁碟肯定會比其他部分使用頻繁得多。為了解決這個問題,可以把索引表空間存放在能夠把檔案實體分割在多個磁碟上的磁碟體系結構上。
為了解決這個問題,Oracle也提供了一種反轉鍵索引的方法。如果資料以反轉鍵索引存儲,這些資料的值就會與原先儲存的數值相反。這樣,資料1234、1235和1236就被儲存成4321、5321和6321。結果就是索引會為每次新插入的行更新不同的索引塊。
不能對點陣圖索引和索引組織表進行反轉鍵處理。
技巧:
如果您的磁碟容量有限,同時也要執行大量的有序載入,就可以使用反轉鍵索引。
不可以將反轉鍵索引與點陣圖索引或索引組織表結合使用。
ORACLE DBA實務:建立反轉關鍵字索引
對於大型線上事務處理系統來說,其中的表格一般都很大,在這些資料表的主鍵是由序號產生的,而且上面是有索引的。因此相鄰的索引記錄就可能存在同一個資料區塊中,這樣會形成資料區塊的競爭。而隨著時間流逝,會不斷在這些表中刪除舊的無用的數據,插入新的有用的數據,很顯然刪除的數據是序號很小的舊數據,而插入的數據序號是剛剛產生的(一定是大號),這就造成了另一個嚴重的問題:即該索引的樹是往序號大的一面偏,因此會使得樹的深度加深從而使系統效率下降。
為了解決上述問題,oracle引入了反轉關鍵字索引。反轉關鍵字索引透過將關鍵字(序號)的每個位元組順序顛倒過來再建立索引的方法實現的。舉例如下:
由上可見,原來相鄰的order#經反轉之後就不再相鄰了,這樣就可以把相鄰的order#分散到不同的資料塊中,上述問題也就迎刃而解。
但事物總是一分為二的,反轉索引關鍵字也有問題。例如在反轉關鍵字索引的表上進行範圍查詢就會遇到麻煩。在正常索引的況下,滿足條件的索引記錄應該放在同一個或相鄰的資料區塊中,速度會很快;而使用反轉關鍵字索引之後,原來相鄰的滿足條件的索引記錄已經被分散到多個資料區塊中,此事要完成查詢操作只能進行全表掃描。因此在決定是否使用反轉關鍵字索引時,要分清是插入操作重要,還是範圍查詢重要。
推薦教學:《Oracle影片教學》
以上是oracle索引反轉是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

方法:1、利用“select*from user_indexes where table_name=表名”语句查询表中索引;2、利用“select*from all_indexes where table_name=表名”语句查询所有索引。

oracle asm指的是“自动存储管理”,是一种卷管理器,可自动管理磁盘组并提供有效的数据冗余功能;它是做为单独的Oracle实例实施和部署。asm的优势:1、配置简单、可最大化推动数据库合并的存储资源利用;2、支持BIGFILE文件等。

在Oracle中,可利用lsnrctl命令查询端口号,该命令是Oracle的监听命令;在启动、关闭或重启oracle监听器之前可使用该命令检查oracle监听器的状态,语法为“lsnrctl status”,结果PORT后的内容就是端口号。

在oracle中,可以利用“TO_SINGLE_BYTE(String)”将全角转换为半角;“TO_SINGLE_BYTE”函数可以将参数中所有多字节字符都替换为等价的单字节字符,只有当数据库字符集同时包含多字节和单字节字符的时候有效。

方法:1、利用“LOWER(字段值)”将字段转为小写,或者利用“UPPER(字段值)”将字段转为大写;2、利用“REGEXP_LIKE(字符串,正则表达式,'i')”,当参数设置为“i”时,说明进行匹配不区分大小写。

在oracle中,可以利用“drop sequence sequence名”来删除sequence;sequence是自动增加数字序列的意思,也就是序列号,序列号自动增加不能重置,因此需要利用drop sequence语句来删除序列。

在oracle中,可以利用“select ... From all_tab_columns where table_name=upper('表名') AND owner=upper('数据库登录用户名');”语句查询数据库表的数据类型。

方法:1、利用“alter system set sessions=修改后的数值 scope=spfile”语句修改session参数;2、修改参数之后利用“shutdown immediate – startup”语句重启服务器即可生效。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

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

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中