資料庫中提供了兩種欄位類型 Blob 和 Clob 用於儲存大型字串或位元據(片)。Blob 採用單位元組儲存,適合儲存位元據,片檔案。Clob 採用多位元組儲存,適合儲存大型文本資料。Oracle中處理BLOB/CLOB欄位的方式比較特別,所以需要特別注意下面兩點:1. 在Oracle JDBC中採用流機制對 BLOB/CLOB 進行讀寫操作,所以要注意不能在批處理中讀寫 BLOB/CLOB欄位,否則將出現Stream type cannot be used in batching 異常。2.
我們先用一個小表來,來說明一下,oracle執行計畫該注意哪些地方。hr@ORCL> set autotrace traceonlyhr@ORCL> select * from t;模糊比較兩條sql的優劣時,建議先查看以下兩個值:Cost (%CPU):cpu代價,這個值要代數和。比如,這裡是3+3=6consistent gets:這個值一般要多執行幾次!讓他穩定下來,才有比較的意義。Execution Plan :----------------------------
之前也寫過一篇10046的文章:10046簡介 今天,Think想和大家一起共同深入去理解一下Oracle的這些調試事件 10046事件是SQL_TRACE的擴充,被戲稱為"吃了興奮劑的SQL_TRACE" 有效追蹤層級: ① 0級:SQL_TRACE=FASLE ② 1級:SQL_TRACE=TRUE,這是預設層級 ③ 4級:1級+綁定變數 ④ 8級:4級+等待事件
先瞧一個大家習以為常的現象:hr@ORCL> drop table t purge;Table dropped.hr@ORCL> create table t (x number,y varchar2(30));Table created.hr@ORCL> insert into t select rownum,rownum||'a' from dual connect by rownum<1000000;999999 rows
㈠ 合作的基礎⑴ /* 全為 NULL 的列是無法儲存到B*Tree裡面的 */hr@ORCL> create table t (x number,y number);hr@ORCL> create index idx_t on t(x,y);hr@ORCL> insert into t values(1,1);hr@ORCL> insert into t values(1,null);hr@ORCL> insert into t values(null,
先表明我的立場、我是絕對支援外鍵一定要加索引! 雖然在高版本的Oracle裡、對這個要求有所降低、但依然有如下原因: ① 死結 外鍵未加索引是導致死結的最主要原因、因為 無論更新父表主鍵、或者刪除一個父表記錄、都會在子表加一個表鎖 這就會不必要的鎖定更多的行、從而影響並發性 ② ON DELETE CASCADE
無論我們是用dbca建庫,還是手工建。在完成了建庫的任務後,有三個參數在以後的生產運用中非常重要,通常,我們是需要將其開啟的。 第一個是log_checkpoints_to_alert。 SQL> show parameter checkpoint NAME TYPE VALUE ------------------------------------ ----------- -----------
為了減少串連Oracle資料庫的數量,需要將多條資料作為變數一次傳入Oracle的預存程序中。方法如下:步驟一:定義物件類型。 CREATE TYPE department_type AS OBJECT (DNO NUMBER (10),NAME VARCHAR2 (50),LOCATION VARCHAR2 (50));步驟二:定義一個物件類型的數組對象。CREATE TYPE dept_array AS TABLE OF department_type;步驟三:定義預存程序來插入資料。CRE