Oracle 維護小技巧

2021-08-31 02:40:58 字數 2661 閱讀 7398

1.重新編譯有錯誤的函式,儲存過程,包

select 'alter ' || object_type || ' ' || owner || '.' || object_name ||

' compile;'

from all_objects

where status = 'invalid'

and object_type in ('package', 'function', 'procedure', 'table', 'view',

'sequence', 'trigger');

select 'alter package ' || owner || '.' || object_name || ' compile body;'

from all_objects

where status = 'invalid'

and object_type in ('package body');

2.檢視沒有關閉的游標

[url]

-----檢視沒有關閉的游標數

select kgllk***,kglnaobj from x$kgllk where kgllk***=8;

-----檢視session占用的游標數目

select * from v$open_cursor

-------檢視表的底層結構

select * from v$fixed_view_definition where view_name ='gv$open_cursor';

3.設定使用者的最大連線數

--先建立乙個profile

create profile ses_conn limit

sessions_per_user n; ----- n為最大連線數。

-----oracle 最大連線數的引數

show parameter process

------然後將該profile付給需要限制的使用者。

alter user *** profile ses_conn;

-------最後別忘了確認resource_limit引數已設為true。如果沒有,用

alter system set recource_limit=true;

4.一行變多列

sql> select * from a3;

id id1 id2

---------- ---------- ----------

1 2 3

sql>

sql> select decode(column_name,column_name,column_name) name,

2 decode(column_name,'id',id,'id1',id1,'id2',id2) value

3 from user_tab_columns u,a3 t

4 where u.table_name='a3';

name value

------------------------------ ----------

id 1

id1 2

id2 3

3.2句話搞定客戶端和伺服器字符集不一致

a.查詢伺服器端配置的字符集。在sqlplus中以dba使用者執行:

select tab1.aa||'_'||tab2.bb||'.'||tab3.cc from (select value$ aa from sys.props$ where name='nls_language')tab1,(select value$ bb from sys.props$ where name='nls_iso_currency')tab2,(select value$ cc from sys.props$ where name='nls_characterset')tab3;

b.在客戶端的登錄檔hkey_local_machine->software->oracle->home0中,如無系統變數nls_lang,則「新建」->「字串」,重新命名為「nls_lang」,並賦值為上述查詢變數的值(注意引號內的字元應大寫),再檢視時不需要重啟oracle。

4.觸發器和儲存過程的優缺點彙總*** 缺點:

1、可移植性是儲存過程和觸發器最大的缺點。

2、占用伺服器端太多的資源,對伺服器造成很大的壓力

3、不能做ddl。

4、觸發器排錯困難,而且資料容易造成不一致,後期維護不方便。

優點:1、預編譯,已優化,效率較高。避免了sql語句在網路傳輸然後再解釋的低效率。

2、儲存過程可以重複使用,減少開發人員的工作量。

3、業務邏輯封裝性好,修改方便。

4、安全。不會有sql語句注入問題存在。

oracle 使用者, 小技巧

select from user sys privs select from dba roles select from role sys privs select from all users select username,default tablespace from dba users se...

sort 的小技巧和 set的維護

list.sort 乙個包含list元素的list,按照各元素的第一位數字排序 list.sort key lambda x x 0 把某些數字n提前 list.sort key lambda x x n,reverse true sort原地排序,sorted傳遞排序結果 字典dir.keys d...

Oracle資料庫的安全維護技巧

這是保護資料庫系統安全的重要手段之一。它通過建立不同的使用者組和使用者口令驗證,可以有效地防止非法的oracle使用者進入資料庫系統,造成不必要的麻煩和損壞 另外在oracle資料庫中,可以通過授權來對oracle使用者的操作進行限制,即允許一些使用者可以對oracle伺服器進行訪問,也就是說對整個...