深入理解Oracle索引(3):唯一索引和ROWID

       索引都會包含rowid來定位到具體的位置,但是唯一索引不會用rowid來作為“索引鍵”的一部分       比如在列col1上建立非唯一索引,則其索引鍵是col1| rowid,這樣索引鍵就唯一了,但唯一索引不會在列上加上rowid構成索引鍵              測試:SQL> conn / as sysdba已串連。SQL> create table t as select * from dba_objects;表已建立。SQL> create

深入理解Oracle索引(9):不要過分依賴 HINT

   很多應用開發人員、特別是技術大拿、喜歡通過 HINT 強制Oracle CBO按自己的意志選擇執行計畫   Rocky 竊以為、這種策略在某種程度上其實是把雙刃劍   使用 Hint 指定 Index 的時候需要謹慎、如果不合適或者無效、可能畫蛇添足、效率更低      摘自官方文檔:If the INDEX hint specifies no indexes, then the optimizer considers the cost of a scan on each

深入理解Oracle索引(4):optimizer_index_cost_adj詳解

       如果哪天你遇到特殊的情況,比如系統資料字典的索引壞了,但是你去沒有辦法去修改這個索引,因為有些系統內部的東西你是動不了的       你就會說“我要是能繞過這個索引,全部走全表掃描,把庫裡的資料全部匯出來該多好啊”       那麼,這個時候,optimizer_index_cost_adj就很有用了                                  該參數表示全表掃描和索引掃描的百分比,取值範圍∈[1,10000],預設為100         

深入理解Oracle索引(5):反向索引的定義、缺點和適用情境

       ㈠ 定義                    建立一個反向索引將把每個列的索引值(each column key value)按位元組反向過來,對於按鍵組合,列的順序被保留,但每個列的位元組都作了反向          例如:          表的某一列內容          ……          1234          1235          1236          1237          ……                    建立正向索引     

深入理解Oracle索引(6):在實踐中初步認識3大索引的使用情境

       ㈠ 某表的一列重複值很多,基數很小時,應該建立什麼索引?                    --建立Bitmap Index,具體原理參見:B-Tree索引與Bitmap索引的鎖代價的比較          例如:          create bitmap index idx_bm_product on products(list_price) tablespace users;                 ㈡ 某表的一列的數值一直在增大,不是隨機的數,應該建什麼索引?

一步一步學習oracle手工建庫(beta版)

          ① 配置listener.ora             參考文檔b14213(Net service reference)             141頁 靜態註冊的那個example             第139頁 第一段             案例:think = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS=(PROTOCOL = tcp)(HOST= 192.168.227.128)(PORT= 1521)

深入理解Oracle表(7):10種表類型的資料存放區和適用情境淺析

       本博文Think主要從兩個問題著手:       ① 在哪些情況下某種類型的表比其他表類型更適用?       ② 不同類型的表其資料是如何組織和儲存的?              閑言少敘,一家之言,歡迎拍磚:              ㈠ 堆組織表                    ⑴ 資料存放區                          如果把一個區當作一個箱子,那麼一個表就是一組無序的箱子堆在一起             只要有可用的空間,資料可以放在任何地方 

深入理解Oracle索引(7):用實驗資料觀察從B-tree索引→複合索引→Bitmap索引所消費的CPU和I/O

環境:sys@ORCL> !sqlplus -vSQL*Plus: Release 10.2.0.1.0 - Productionsys@ORCL> !uname -aLinux Think 2.6.18-308.el5xen #1 SMP Fri Jan 27 17:59:00 EST 2012 i686 i686 i386 GNU/Linuxhr@ORCL> conn sh/shConnected.sh@ORCL> select index_name from

深入理解Oracle表(1):ORDERED和USE_NL

       ORDERED好理解,就是表示根據 from 後面表的順序join,從左至右,左邊的表做驅動表       use_nl(t1,t2):表示對錶t1、t2關聯時採用嵌套迴圈串連,其並不能讓最佳化器確定誰是驅動表或誰是被驅動的表       USE_NL(),先看看oracle doc怎麼說:              In this statement, the USE_NL hint explicitly chooses a nested loops join with the

讓oracle幫你理財

          本案例以建設銀行為例          請將建行的交易明細表載下,並命名為ccb.txt          此時,你有兩種選擇:sqlldr or external table           ㈠ sqlldr          因為網銀只有在win上才能用,所以如果你的os是linux/unix,那麼在ctl中必須指定字元集          讓UTF-8可以顯示GB18030             ① 建表create table t_bank_invoice (

深入理解Oracle表(2):驅動表的那些事兒

       以一個比較兩本字典來做例子:       一本字典有索引目錄(dict a), 一本沒有(dict b)       現在要找出所有a開頭的單詞的異同       那麼比較的時候,你會怎麼比較?       合理的做法應該是以沒有索引的字典dict b開始, 找到a開頭的那一頁, 然後對於每個單詞, 通過使用索引在dict a中找到相應的條目       如果反過來, 效率會相同嗎?              驅動表,通俗的講就是先從哪個表開始檢索,良好的驅動表是成功最佳化的一半 

oracle 區管理和段空間管理小結

        作為一名DBA,常見的一個情境之一:        建立資料表空間: create tablespace Think datafile '/u01/app/oracle/oradata/orcl/think.dbf' size 100M autoextend on next 10M maxsize 4096M extent management local uniform size 256K segment space management auto;       

Oracle SQL編寫最佳化總結《一》

       ㈠ 選用合適的Oracle 最佳化器                    預設值:          9i預設是choose          10g預設是all_rows sys@EMREP> show parameter optimizer_mode NAME TYPE VALUE ------------------------------------ --

動手操作oracle細粒度存取控制(FGAC)一則

    環境:sys@ORCL> select * from v$version where rownum=1;BANNER----------------------------------------------------------------Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prodsys@ORCL> !uname -aLinux localhost.localdomain 2.6.18-

深入理解Oracle表(3):三大表串連方式詳解之Nested loop join和 Sort merge join

       關係數據庫技術的精髓就是通過關係表進行正常化的資料存放區       並通過各種表串連技術和各種類型的索引技術來進行資訊的檢索和處理       這裡Think願意和大家一起來學習分享Oracle的三大表串連技術              在早期版本,Oracle提供的是nested-loop join,兩表串連就相當於二重迴圈,假定兩表分別有m行和n行       如果內迴圈是全表掃描,時間複雜度就是O(m*n)       如果內迴圈是索引掃描,時間複雜度就是O(m*㏒n) 

oracle工具 + 生產力:oradebug

    1 oradebug介紹                oradebug主要是給oracle技術服務人員使用的,儘管很早便有,但oracle官網很少有記載。他是個sql*plus命令列工具,有sysdba的許可權就可以登入,無需特別設定。他可以被用於:                           1)追蹤進程,或者是你的,或者是外部的                           2)確定進程往哪個trc檔案寫                           3)轉儲:

深入理解Oracle索引(2):INDEX UNIQUE SCAN,INDEX FULL SCAN和INDEX FAST FULL SCAN

       ㈠ INDEX UNIQUE SCAN              如果表上有唯一索引, 搜尋索引列時會用上INDEX UNIQUE SCAN              原來Index Unique Scan和Index Range Scan在B Tree上的搜尋路徑是一樣的       只是Index Unique Scan在找到應該含有要找的Index Key的block後便停止了搜尋,因為該鍵是唯一的       而Index Range

Oracle 細粒度審計(FGA)初步

         細粒度審計(FGA),是在Oracle 9i中引入的,能夠記錄SCN號和行級的更改以重建舊的資料,         但是它們只能用於select語句,而不能用於DML,如update、insert和delete語句.         因此,對於Oracle資料庫10g之前的版本,使用觸發器雖然對於以行級跟蹤使用者初始的更改是沒有吸引力的選擇,但它也是唯一可靠的方法          進行Database Audit時會記錄已發生的操作,但是不會捕獲關於導致操作的語句的資訊   

oracle參數檔案的本質

環境:SQL> select * from v$version where rownum=1;BANNER----------------------------------------------------------------Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProdSQL> !uname -r2.6.18-308.el5xen          參數檔案的根本作用就是“覆蓋參數的預設值”,

淺析oracle b-tree index搜尋原理

    索引與表一樣,也屬於段(segment)的一種。裡面存放了使用者的資料,跟表一樣需要佔用磁碟空間。只不過,在索引裡的資料存放形式與表裡的資料存放形式非常的不一樣。在理解索引時,可以想象一本書,其中書的內容就相當於表裡的資料,而書前面的目錄就相當於該表的索引。同時,通常情況下,索引所佔用的磁碟空間要比表要小的多,其主要作用是為了加快對資料的搜尋速度。    

總頁數: 1509 1 .... 364 365 366 367 368 .... 1509 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.