Oracle Database 9i/10g/11g程式設計藝術 筆記
Oracle Database 9i/10g/11g程式設計藝術
目錄 |
序言
- 11g r1: SKIP LOCKED特性(用於記錄的序列化處理,不同的事務能夠得到不同的記錄)
- pragma autonomous_transaction; //在大的事務中強制子事務執行,審計?
- 從SQL Server升級的要點:不要開啟多個連線;使用繫結變數(Oracle太自大了,為什麼不能模仿一下SQL Server呢?)
- 用SELECT ... FOR UPDATE鎖定資料,以避免併發問題
- 事務性不表示一致性,因此需要了解‘併發控制’
- Oracle的MVCC:讀一致;查詢不會被寫阻塞
- 9i+:閃回查詢 select ... as of scn :scn;(這相當於把資料庫放到一個版本管理系統下了。。。)
- exec :scn = dbms_flashback.get_system_change_number;
- id:建立trigger?
- 更好的方法:create sequence t_seq; insert into ... values(t_seq.nextval,....)
- 複製絕不簡單(併發的insert from select例子)
- 又:父子表的關聯彙總報表查詢,Oracle提供了:
- 子查詢分解(WITH子句)、內聯檢視(select from select)、標量子查詢
- 不支援這些特性的資料庫,要麼手工迭代每行執行聚集查詢,要麼使用hash join(浪費空間)?
- 每個使用者一個會話?系統設定:
- create profile p_one_user_one_session limit sessions_per_user 1;
- 細粒度訪問控制(FGAC)
體系結構概述
- 一個例項一個資料庫?(授許可權制?)
- ‘專用伺服器’程式?
- TNS連線字串?
- 監聽器:指示埠號,以連線到排程器(有點像ftp?)
檔案
- V$PARAMETER
- show parameter db_block_s #自動字首匹配
- 可供任何使用者用的:dbms_utility.get_parameter_value
- SPFILE:索引init.ora?
- 重做日誌:ARCHIVELOG
- 10g Data Pump:用於取代老的EXP/IMP,--使用XML表示後設資料?
記憶體結構
- SGA PGA UGA
- 行列轉換(pivot)?
Oracle程式
- 11g DRCP
- 會話:可暫時中斷物理連線?
- 。。。
鎖和閂
- 事務是‘核心’
- 要延遲到適當時候提交:不提交不會有壓力。。。
- 只要需要,長期保持鎖(不是稀有資源)
- 不會鎖升級(escalation),但可以轉換(conversion),或提升(promotion)
- 3 types:
- DML鎖:TX TM
- DDL鎖:排他、共享、可中斷
- latch(spin lock?)
併發與MVCC
- 隔離級別:讀未提交,--Oracle中不允許
- 可重複讀:防止‘丟失更新’
- 可序列化:ORA-08177錯誤(試圖更新某行,但它自事務開始後已經被修改--一般因為所在資料塊有其他行被修改)
- READ ONLY事務
- 寫一致:重啟動?
事務
- 可後臺提交,因此不能保證永續性
- 完整性約束:
- IMMDIATE
- DEFERRABLE
- 無法通過頻繁提交來‘節省’undo空間
- !可重啟動:寫操作應該是‘冪等’的?
redo與undo
- 與redo不同,undo內部儲存在特殊的段中(rollback segment)
- undo:邏輯地恢復!
- COMMIT:呼叫LGWR重新整理redo
- 關閉redo:NOLOGGING?
- 塊清除:刪除所修改資料塊上的‘鎖定’相關資訊
- 臨時表(8i 8.1.5+):不會生成redo
- 分析undo
- ORA-01555: snapshot too old
- INSERT生成的undo最少(只需刪除一個rowid),DELETE生成的undo最多(哈)
資料庫表
- 9種表型別:
- 堆組織的、索引組織的(IOT)、聚簇(index clustered)、雜湊聚簇、sorted雜湊聚簇(10g)、巢狀表、臨時表、物件表、外部表
- 列數>254時,使用額外的row piece
- 段(佔用磁碟儲存的物件)
- MSSM、ASSM
- 高水位線(HWM)
- MSSM中的FREELIST --這裡的概念有點類似於‘記憶體管理’?
- PCTFREE和PCTUSED
- IOT:適合於查詢表
- *巢狀表(create type):不支援引用完整性約束,不能引用任何表包括自己 --雞肋?
- *物件表:create table t of Some_Type; //?
索引
- 點陣圖聯合索引(bitmap join index)?
- 函式索引:DETERMINISTIC
- CBO
資料型別
- DATE TIMESTAMP INTERVAL
- LOB(大物件):CLOB(=TEXT?)、NCLOB、BLOB、BFILE
分割槽
- CREATE TABLE emp ... PARTITION BY HASH(empno) ( ... )
- 9i r1:列表分割槽
- 11g r1:間隔分割槽、引用分割槽
- 組合分割槽 ?
並行執行
- 並行查詢是不可擴充套件的 ?
- Oracle Exadata
- 並行DML(PDML)
- PDDL
- DIY
資料載入與解除安裝
- SQL *Loader(SQLLDR)
- 9i+:外部表(直接訪問外部檔案系統)
加密
- 11g r1:Oracle錢夾*
- 透明表空間加密*
相關文章
- 《ORACLE 9i/10g/11g程式設計藝術》學習筆記 配置環境Oracle程式設計筆記
- 《ORACLE 9i/10g/11g程式設計藝術》配置環境Oracle程式設計
- Oracle Database 9i/10g/11g程式設計藝術——深入資料庫體系結構OracleDatabase程式設計資料庫
- oracle程式設計藝術筆記-1Oracle程式設計筆記
- oracle程式設計藝術筆記-2Oracle程式設計筆記
- Oracle Database 9i/10g/11g程式設計藝術:深入資料庫體系結構:第2版OracleDatabase程式設計資料庫
- Oralce 入門教程:Oracle Database 9i 10g 11g程式設計藝術 深入資料庫體系結構 第2版OracleDatabase程式設計資料庫
- Oracle 9i & 10g程式設計藝術資料庫體系結構Oracle程式設計資料庫
- Oracle 讀書 -- Oracle 9i & 10g程式設計藝術資料庫體系結構Oracle程式設計資料庫
- 9i和10g的程式設計藝術裡面的指令碼程式設計指令碼
- JavaScript DOM程式設計藝術筆記1JavaScript程式設計筆記
- R 語言程式設計藝術筆記程式設計筆記
- 《JavaScript Dom程式設計藝術》讀書筆記(一)JavaScript程式設計筆記
- 《Javacript DOM 程式設計藝術》筆記(一)JavaScript Syntax程式設計筆記JavaScript
- JavaScript DOM 程式設計藝術 學習筆記01JavaScript程式設計筆記
- JavaScript DOM 程式設計藝術 學習筆記 02JavaScript程式設計筆記
- JavaScript DOM程式設計藝術筆記2.1準備工作JavaScript程式設計筆記
- 【讀書筆記】Java併發程式設計的藝術筆記Java程式設計
- 《程式設計匠藝》讀書筆記程式設計筆記
- 索引學習筆記-1(Oracle9i/10g程式設計藝術-深入資料庫體系結構)索引筆記Oracle程式設計資料庫
- JavaScript DOM 程式設計藝術(第2版) 讀書筆記JavaScript程式設計筆記
- 《程式設計師程式設計藝術》程式設計師
- 讀《Oracle 9i&10g程式設計藝術》記錄--- spfileOracle程式設計
- 計算機程式設計藝術計算機程式設計
- 程式設計藝術家之路程式設計
- [筆記]Semaphores Tunning on RedHat Linux for Oracle 9i or 10g筆記RedhatLinuxOracle
- 《Oracle Database 10g安全性高效設計》OracleDatabase
- Oracle 補丁全集 (Oracle 9i 10g 11g Path)Oracle
- 程式設計師和程式藝術家程式設計師
- 【Java併發程式設計的藝術】第一章讀書筆記Java程式設計筆記
- 多執行緒知識梳理(1) 併發程式設計的藝術筆記執行緒程式設計筆記
- Oracle Database 11g索引技術OracleDatabase索引
- Java併發程式設計藝術Java程式設計
- Redux中的程式設計藝術Redux程式設計
- 談UIView Animation程式設計藝術UIView程式設計
- 優秀程式設計的“藝術”程式設計
- Oracle9i&10g程式設計藝術總結Oracle程式設計
- Secrets of the Oracle Database筆記OracleDatabase筆記