對資料庫失效物件的編譯

2021-05-23 13:40:56 字數 1182 閱讀 7085

如何檢視oracle資料庫的失效物件

select object_name,status from dba_objects where owner = 'username'

手動編譯執行

sql> alter function func_name compile;

函式已更改。

sql> alter procedure procedure_name compile;

過程已更改。

sql> alter package package_name compile body;

程式包主體已變更。

也可以使用dbms_ddl包來編譯,但只用於pl/sql物件,不能用來編譯檢視

使用dbms_utility.compile_schema

使用這個包將會編譯指定schema下的所有procedures, functions, packages, and triggers.

你可以在sqlplus 下使用它,如:

exec dbms_utility.compile_schema(schema => 『scott』);

使用utl_recomp

utl_recomp包有兩個儲存過程:recomp_serial和recpmp_parallel

從儲存過程的名字可以看出乙個是非並行,乙個是並行方式.

使用並行方式會加快編譯速度,包的定義如下:

procedure recomp_serial(

schema in varchar2 default null,

flags in pls_integer default 0);

procedure recomp_parallel(

threads in pls_integer default null,

schema in varchar2 default null,

flags in pls_integer default 0);

引數使用方法:

schema

- 想編譯的模式,如果為null,將編譯資料庫的所有無效物件.

threads

- 並行度,如果為null,會使用引數job_queue_processes的值.

通常threads的值最好和cpu的數量想匹配,以發揮並行的最大優勢.

flags -

oracle內部使用的診斷測試引數.

對資料庫的操作

資料庫的檔案 資料檔案 包含資料和物件,主資料檔案建議副檔名.mdf,其餘.ndf 事務日誌檔案 包含恢復資料庫中的所有事物所需的資訊,建議副檔名.ldf 至少包含乙個資料檔案和乙個日誌檔案 對資料庫的操作 選其中乙個,可以選 選其中乙個,必選 分割,表示多個選項 表示說明 建立create dat...

linux對資料庫的

yum y install mariadb server yum y install mariadb client 開啟服務 systemctl start mariadb 配置檔案的設定 vi etc my.cnf.d server.cnf 新增 mysqld init connect set c...

資料庫索引失效

索引失效 1 沒有查詢條件,或者查詢條件沒有建立索引 2 在查詢條件上沒有使用引導列 3 查詢的數量是大表的大部分,應該是30 以上。4 索引本身失效 5 查詢條件使用函式在索引列上 見12 6 對小表查詢 7 提示不使用索引 8 統計資料不真實 9 cbo計算走索引花費過大的情況。其實也包含了上面...