成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle 9i全索引掃描和函數索引一起工作的原理

數據庫 Oracle
以下的文章主要是介紹如何用Oracle 9i全索引掃描快速訪問相關數據的實際操作步驟,以及如何用函數索引來調用全索引掃描的相關實際操作。

如果你度數據庫的相關實際操作很感興趣的話沒那么你肯定會知道在Oracle9i之前,Oracle 9i全索引掃描只有再創建相關索引時,沒有空值的時候才可以進行使用,也就是說,Oracle建立索引時必須用一個NOT NULL子句才可以使用該索引。由于Oracle9i支持用函數(function-based)索引實現的唯索索引掃描,這種情況大大改觀。

簡單回歸一下,函數索引是Oracle8的一個重要改進,因為它提供了一種有效的消除無必要長表全掃描的機制,由于函數索引可以在任何查詢語句中的WHERE子句中精確復制,Oracle總會用一個索引來匹配上SQL查詢的WHERE子句。

現在,我要會用一個student表來舉一個簡單的例子來解釋Oracle 9i全索引掃描如何與函數索引一起工作的過程。

創建student表

  1. (student_name varchar2(40), date_of_birth date);  

使用這個表,創建與表中所有列相關聯的函數索引。在本例中,該函數為initcap(即大寫每個單詞的首字母)和to_char(即把一個數字變成字符):

  1. create index whole_student  
  2. on student  
  3. (initcap(student_name), to_char(date_of_birth,’MM-DD-YY’));  

定義完函數索引后,Oracle9i中任何可以引用這些列(column)的SQL語句都可以使用Oracle 9i全索引掃描。下面是SQL匹配函數索引的查詢例子:

  1. select * from student  
  2. where initcap(student_name) = ‘Jones’;  
  3. select * from student  
  4. where to_char(date_of_birth,’MM-DD=YY’) = ’04-07-85’;  

用函數索引來調用全索引掃描

Oracle9i只要可能就會使用函數索引并在函數索引的基礎上調用全索引掃描。如果SQL優化器統計結果表明使用全索引掃描的速度將會超過通過索引的b-樹訪問的速度,那么Oracle9i就會這么做。

下面是用函數索引調用唯索掃描的準則。所有的SQL謂詞匹配索引中的列,查詢必須從表中返回足夠多的行,這樣做的目的是為了讓代價優化器(cost-based optimizer)來判斷全索引掃描是否要比傳統的索引訪問方法要快。是否調用全索引掃描的決定取決于下面幾個參數設置:

代價優化器的適當統計數字——這個計劃(schema)最近已經分析過了,而且optimizer_mode參數不能設置為RULE。

索引的并行程度——注意索引的并行程度是獨立設置的;索引并沒有繼承表的并行程度。

optimizer_index_cost_adj的設置——它控制代價優化器是否傾向于Oracle 9i全索引掃描。

db_file_multiblock_read_count的設置——這個參數影響到全索引掃描的代價。這個值越高,全索引掃描的代價也就會越“便宜”。

索引的直方圖表示——對偏移(skewed)索引,它幫助代價優化器評估查詢返回的行數。

Oracle的一個重要提高

在函數索引基礎上的快速全索引掃描是Oracle9i的另一個提高性能的途徑。當數據庫遷移到Oracle9i時,許多數據庫自動開始使用這個新的執行計劃。不過,當SQL代價優化器決定是否選擇全索引掃描時,還要考慮幾個因素。Oracle專業人員需要適當設置參數,以確保代價優化器不會用不合適的方式使用快速Oracle 9i全索引掃描——這一點需要特別注意。

【編輯推薦】

  1. Oracle細粒度如何進行訪問
  2. Oracle數據庫的異構服務原理描述
  3. Oracle性能優化的要點
  4. Oracle使用hints的調整機制實操
  5. Oracle移植到mysql中,應注意的事項
責任編輯:佚名 來源: 博客園
相關推薦

2010-04-14 16:22:42

Oracle 9i

2009-06-19 15:11:34

DWR和Spring

2011-01-20 11:42:49

同事

2011-05-17 15:41:51

oracle 9i卸載

2022-06-06 09:00:00

Kubernete容器虛擬機

2020-10-12 08:02:04

開發人員開發編碼

2010-04-27 17:58:17

Oracle 9i

2009-03-17 13:59:26

ORA-01578壞塊Oracle

2010-04-13 10:29:12

Oracle 9i

2010-04-14 09:25:08

Oracle 9i創建

2013-07-29 14:15:07

職場痛并快樂團隊協作

2013-08-19 11:31:43

2010-04-16 14:30:13

Oracle 9i

2021-12-08 07:06:54

命令 Fastapi Celery

2009-11-11 09:13:11

Oracle索引掃描

2009-11-03 14:22:07

Oracle密碼

2010-04-13 11:31:02

Oracle 9i e

2009-01-06 09:14:08

8i9ioracle

2024-01-03 09:03:40

MySQL索引數據庫

2010-04-14 09:16:39

Oracle 9i
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品1区2区 | 四季久久免费一区二区三区四区 | 国产成人精品久久 | 综合国产| av色站 | 亚洲在线一区 | 欧美性另类 | 黄色福利 | av看片网| 成人在线观看网址 | 国产成人精品999在线观看 | 欧美成人精品二区三区99精品 | 888久久久 | 国产免费观看一级国产 | 亚洲一区精品在线 | 中文字幕成人av | 亚洲欧美日韩久久久 | 成人国产精品久久 | 欧美舔穴 | 中文字幕在线第一页 | 一区二区三区精品视频 | 国产精品一区二区免费看 | 成人精品鲁一区一区二区 | 人人干人人干人人干 | 亚洲国产成人精品女人久久久 | 国产一区在线免费观看 | 中文字幕免费在线 | 最新国产福利在线 | 中文字幕第一页在线 | 福利片一区二区 | 欧美黑人国产人伦爽爽爽 | 视频在线一区二区 | 理论片免费在线观看 | av免费网址| 亚洲欧洲成人 | 久久久观看| 亚洲第一女人av | 91久久精品一区二区二区 | 欧美专区在线 | 国产一区二区在线播放视频 | 久久99精品久久久久蜜桃tv |