㈠ 函數索引的陷阱 使用函數索引一定要注意在函數代碼變更後重建函數索引、否則、Oracle將返回錯誤結果但不給提示 測試如下: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
先瞧一個大家習以為常的現象: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
規則如下: 測試如下:hr@ORCL> drop table t purge;Table dropped. hr@ORCL> create table t as select * from dba_objects;Table created.hr@ORCL> alter table t add (object_id_1 number);Table altered.hr@ORCL> update t set
表是段,但段不一定是表,段還有index段、undo段、分區之類的 具體如下: 首先,要清楚它們的概念:表是邏輯對象;段是實體儲存體對象 然後,再看它們之間的關係: ① 段的存在,並不是依賴於表的。建立一些其它邏輯對象也會會建立段,如索引、物化視圖 ② 一張普通表(堆組織表)對應一個段 ③ 表的建立,並不意味著段的建立,如暫存資料表(Global Temporary Table) ④
從Oracle9i開始,就可以使用DBMS_FGA可以對指定的表的select語句進行審計 但是在9i中只能對select語句進行審計,在10g中可以實現對DML的審計功能 下面用DBMS_FGA來展示select語句的審計功能 ① 假定我們存在表t,包含記錄為sys@ORCL> select * from hr.t; ID NAME---------- -------------------- 1