天天看點

Oracle程式設計藝術學習筆記(2)

1.檢視oracle錯誤詳細資訊:

    [[email protected] bdump]$ oerr ora 07445

07445, 00000, "exception encountered: core dump [%s] [%s] [%s] [%s] [%s] [%s]"

// *Cause: An OS exception occurred which should result in the creation of a

// core file. This is an internal error.

// *Action: Contact your customer support representativ

2.noarchivelog模式的資料庫總有一天會丢失資料

3.如果你想破壞Oracle的共享池,最容易的辦法是不使用綁定變量。

4.連接配接(connection):從用戶端到Oracle執行個體的一條實體路徑,可以從V$process檢視

   會話(session):執行個體中存在的一個邏輯實體,可以從v$session檢視。

   連接配接不是會話的同義詞,在一條連接配接上可以建立0個、一個或多個會話

5.共享伺服器隻适用OLTP的系統

6.RAC(real application clusters):實時應用叢集,RAC是一種Oracle配置,即叢集中的多個執行個體可以裝載和打開一個資料庫,其中每個執行個體在一個單獨的節點上運作(通常節點是一個單獨的實體計算機)。這樣,你就能有多個執行個體通路同樣的一組資料庫檔案

7.鎖分兩種:悲觀鎖(pessimistic locking)和樂觀鎖(optimistic locking)。

  悲觀鎖:查詢資料時就進行鎖定

 樂觀鎖:把所有鎖定都延遲到執行更新那一刻再做。

使用校驗和的樂觀鎖定

  set serveroutput on;

  begin

 for x in (select deptno,dname,loc

          from dept

          where deptno=10 )

 loop

     dbms_output.put_line( 'dname:'||x.dname);

     dbms_output.put_line( 'loc:'||x.loc);

      dbms_output.put_line( 'hash: '||

           dbms_crypto.hash

           (utl_raw.cast_to_raw(x.deptno||'/'||x.dname||'/'||x.loc),

            dbms_crypto.hash_sh1));

  end loop;

 end;

 /

8.表的主鍵不允許更新,外鍵所在的列要加索引

9.手動鎖定和建立自己的鎖

   (1)select ... for update

    (2)dbms_lock包