Time of Update: 2018-12-05
索引都會包含rowid來定位到具體的位置,但是唯一索引不會用rowid來作為“索引鍵”的一部分 比如在列col1上建立非唯一索引,則其索引鍵是col1| rowid,這樣索引鍵就唯一了,但唯一索引不會在列上加上rowid構成索引鍵 測試:SQL> conn / as sysdba已串連。SQL> create table t as select * from dba_objects;表已建立。SQL> create
Time of Update: 2018-12-05
很多應用開發人員、特別是技術大拿、喜歡通過 HINT 強制Oracle CBO按自己的意志選擇執行計畫 Rocky 竊以為、這種策略在某種程度上其實是把雙刃劍 使用 Hint 指定 Index 的時候需要謹慎、如果不合適或者無效、可能畫蛇添足、效率更低 摘自官方文檔:If the INDEX hint specifies no indexes, then the optimizer considers the cost of a scan on each
Time of Update: 2018-12-05
如果哪天你遇到特殊的情況,比如系統資料字典的索引壞了,但是你去沒有辦法去修改這個索引,因為有些系統內部的東西你是動不了的 你就會說“我要是能繞過這個索引,全部走全表掃描,把庫裡的資料全部匯出來該多好啊” 那麼,這個時候,optimizer_index_cost_adj就很有用了 該參數表示全表掃描和索引掃描的百分比,取值範圍∈[1,10000],預設為100
Time of Update: 2018-12-05
㈠ 定義 建立一個反向索引將把每個列的索引值(each column key value)按位元組反向過來,對於按鍵組合,列的順序被保留,但每個列的位元組都作了反向 例如: 表的某一列內容 …… 1234 1235 1236 1237 …… 建立正向索引
Time of Update: 2018-12-05
㈠ 某表的一列重複值很多,基數很小時,應該建立什麼索引? --建立Bitmap Index,具體原理參見:B-Tree索引與Bitmap索引的鎖代價的比較 例如: create bitmap index idx_bm_product on products(list_price) tablespace users; ㈡ 某表的一列的數值一直在增大,不是隨機的數,應該建什麼索引?
Time of Update: 2018-12-05
① 配置listener.ora 參考文檔b14213(Net service reference) 141頁 靜態註冊的那個example 第139頁 第一段 案例:think = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS=(PROTOCOL = tcp)(HOST= 192.168.227.128)(PORT= 1521)
Time of Update: 2018-12-05
本博文Think主要從兩個問題著手: ① 在哪些情況下某種類型的表比其他表類型更適用? ② 不同類型的表其資料是如何組織和儲存的? 閑言少敘,一家之言,歡迎拍磚: ㈠ 堆組織表 ⑴ 資料存放區 如果把一個區當作一個箱子,那麼一個表就是一組無序的箱子堆在一起 只要有可用的空間,資料可以放在任何地方
Time of Update: 2018-12-05
環境: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
Time of Update: 2018-12-05
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
Time of Update: 2018-12-05
本案例以建設銀行為例 請將建行的交易明細表載下,並命名為ccb.txt 此時,你有兩種選擇:sqlldr or external table ㈠ sqlldr 因為網銀只有在win上才能用,所以如果你的os是linux/unix,那麼在ctl中必須指定字元集 讓UTF-8可以顯示GB18030 ① 建表create table t_bank_invoice (
Time of Update: 2018-12-05
以一個比較兩本字典來做例子: 一本字典有索引目錄(dict a), 一本沒有(dict b) 現在要找出所有a開頭的單詞的異同 那麼比較的時候,你會怎麼比較? 合理的做法應該是以沒有索引的字典dict b開始, 找到a開頭的那一頁, 然後對於每個單詞, 通過使用索引在dict a中找到相應的條目 如果反過來, 效率會相同嗎? 驅動表,通俗的講就是先從哪個表開始檢索,良好的驅動表是成功最佳化的一半
Time of Update: 2018-12-05
作為一名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;
Time of Update: 2018-12-05
㈠ 選用合適的Oracle 最佳化器 預設值: 9i預設是choose 10g預設是all_rows sys@EMREP> show parameter optimizer_mode NAME TYPE VALUE ------------------------------------ --
Time of Update: 2018-12-05
環境: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-
Time of Update: 2018-12-05
關係數據庫技術的精髓就是通過關係表進行正常化的資料存放區 並通過各種表串連技術和各種類型的索引技術來進行資訊的檢索和處理 這裡Think願意和大家一起來學習分享Oracle的三大表串連技術 在早期版本,Oracle提供的是nested-loop join,兩表串連就相當於二重迴圈,假定兩表分別有m行和n行 如果內迴圈是全表掃描,時間複雜度就是O(m*n) 如果內迴圈是索引掃描,時間複雜度就是O(m*㏒n)
Time of Update: 2018-12-05
1 oradebug介紹 oradebug主要是給oracle技術服務人員使用的,儘管很早便有,但oracle官網很少有記載。他是個sql*plus命令列工具,有sysdba的許可權就可以登入,無需特別設定。他可以被用於: 1)追蹤進程,或者是你的,或者是外部的 2)確定進程往哪個trc檔案寫 3)轉儲:
Time of Update: 2018-12-05
㈠ INDEX UNIQUE SCAN 如果表上有唯一索引, 搜尋索引列時會用上INDEX UNIQUE SCAN 原來Index Unique Scan和Index Range Scan在B Tree上的搜尋路徑是一樣的 只是Index Unique Scan在找到應該含有要找的Index Key的block後便停止了搜尋,因為該鍵是唯一的 而Index Range
Time of Update: 2018-12-05
細粒度審計(FGA),是在Oracle 9i中引入的,能夠記錄SCN號和行級的更改以重建舊的資料, 但是它們只能用於select語句,而不能用於DML,如update、insert和delete語句. 因此,對於Oracle資料庫10g之前的版本,使用觸發器雖然對於以行級跟蹤使用者初始的更改是沒有吸引力的選擇,但它也是唯一可靠的方法 進行Database Audit時會記錄已發生的操作,但是不會捕獲關於導致操作的語句的資訊
Time of Update: 2018-12-05
環境: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 參數檔案的根本作用就是“覆蓋參數的預設值”,
Time of Update: 2018-12-05
索引與表一樣,也屬於段(segment)的一種。裡面存放了使用者的資料,跟表一樣需要佔用磁碟空間。只不過,在索引裡的資料存放形式與表裡的資料存放形式非常的不一樣。在理解索引時,可以想象一本書,其中書的內容就相當於表裡的資料,而書前面的目錄就相當於該表的索引。同時,通常情況下,索引所佔用的磁碟空間要比表要小的多,其主要作用是為了加快對資料的搜尋速度。