Oracle Database 12c DBA文官手册(第8版)——第5章 开发和实现应用程序
1 調(diào)整設計:最佳實踐
????????1.1做盡可能 少的工作
????????????應該簡化應用程序每個步驟所涉及的過程。強調(diào)應用程序的功能和滿足業(yè)務性能需求的能力。
????????????1、應用程序設計中努力消除邏輯讀
??????????????????如果多個用戶需要讀取相同的數(shù)據(jù),應將其存儲在表中或程序包變量中。
??????????????????修改應用程序設計,以消除不必要的命令執(zhí)行。
??????????????????緩沖區(qū)極高命中率可標識為執(zhí)行過多的邏輯讀。
??????????????????在11g和12c中最好使用基于等待的調(diào)整。
????????????2、?應用程序設計中努力避免對數(shù)據(jù)庫的往返訪問
???????????????????在數(shù)據(jù)庫服務器、應用服務器和終端計算機之間的來回通信是應該調(diào)整的目標。
???????????????????在本地變量中存儲經(jīng)常需要的值避免重復查詢數(shù)據(jù)庫。
????????????3、對于報告系統(tǒng),按照用戶的查詢方式存儲數(shù)據(jù)
??????????????????創(chuàng)建維護物化視圖或報告表避免為用戶作數(shù)據(jù)格式的轉(zhuǎn)換。
????????????4、避免重復的連接到數(shù)據(jù)庫
????????????????? 保持數(shù)據(jù)庫連接為打開狀態(tài)并重復使用
????????????5、正確使用索引
????????????????? 在OLTP應用程序中不應該使用位圖索引
????????????????? 如果某列具有非常少的不同值勿建索引
????????1.2 做盡可能 簡單的工作
????????????? 1、在原子級執(zhí)行
????????????????????對于執(zhí)行批處理操作應創(chuàng)建臨時表存儲每個步驟的數(shù)據(jù)
????????????????????將操作分解為較小的組成部分能解決性能問題
???????????????2、消除不必要的排序
????????????????????SORT ORDER BY是集合操作完成前不會返回數(shù)據(jù)
????????????????????UNION也執(zhí)行排序建議以UNION?ALL代替之
??????????????3、消除使用撤消操作的需求
???????????????????? 應用程序設計應避免頻繁查詢其它人可能會同時改變的數(shù)據(jù)
????????1.3 告訴數(shù)據(jù)庫需要知道的內(nèi)容
????????????????1、保持更新統(tǒng)計
????????????????????默認情況下ASG在(維護窗口)每晚10點至6點及周末全天收集統(tǒng)計信息
????????????????????批量加載的表大小增加了10%以上時可手動收集
????????????????????12c允許在模式表或表的分區(qū)中并行收集統(tǒng)計信息
????????????????????手動收集前的會話級或系統(tǒng)及參數(shù)的使用以優(yōu)化性能
????????????????2、在需要的地方使用提示
??????????????????????基于成本優(yōu)化器(CBO)選擇最有效的查詢執(zhí)行路徑
????????1.4 最大化環(huán)境中的吞吐量
????????????????1、使用適當?shù)臄?shù)據(jù)庫塊大小8KB
????????????????2、設計吞吐量而非磁盤容量
????????????????3、避免使用臨時段
??????????????????????盡可能 在內(nèi)存中執(zhí)行所有排序
?????????1.5 分開處理數(shù)據(jù)
????????????????1、使用分區(qū)
????????????????2、使用物化視圖
????????????????3、使用并行化
?????????1.6 正確測試
????????????????1、使用大量數(shù)據(jù)測試
??????????????????????拆分葉塊和維護索引時可能引發(fā)爭用
????????????????2、使用許多并發(fā)用戶測試
??????????????????????確認并發(fā)用戶是否引起死鎖、數(shù)據(jù)一致性和性能問題
????????????????3、測試索引對加載次數(shù)的影響
??????????????????????添加一個索引會帶來DML操作的開銷
????????????????4、所有的測試可重復
??????????????????????必須能重建使用的數(shù)據(jù)集、執(zhí)行動作、預期結(jié)果和記錄的結(jié)果
????????????????????? 未遵循測試的標準常見原因是時間和成本
????????1.7 標準的可交付成果
????????????????1、實體關系圖
????????????????????表明組成應用程序的實體之間的標識關系
????????????????2、物理數(shù)據(jù)庫圖
????????????????????從實體中生成的物理表及其屬性生成的列
????????????????3、空間需求初始值
????????????????4、查詢和事務處理的調(diào)整目標
????????????????????必須定義和批準應用程序中使用最多的每個操作的響應時間
????????????????????建立合理目標和伸展目標
????????????????????根據(jù)不同目標建立查詢和事務性能的控制邊界
????????????????5、安全需求
????????????????????指定應用程序使用的賬戶結(jié)構(gòu)及相關授權
????????????????6、數(shù)據(jù)需求
?????????????????????定義數(shù)據(jù)輸入和檢索方法
????????????????????描述應用程序的備份和恢復需求并與企業(yè)數(shù)據(jù)庫備份計劃比較
????????????????7、查詢執(zhí)行計劃
????????????????????數(shù)據(jù)庫執(zhí)行查詢所需要完成的步驟
????????????????8、驗收測試過程
????????????????
????????????
轉(zhuǎn)載于:https://blog.51cto.com/551173/2318258
總結(jié)
以上是生活随笔為你收集整理的Oracle Database 12c DBA文官手册(第8版)——第5章 开发和实现应用程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: laravel5.7的redis配置,一
- 下一篇: Scrum立会报告+燃尽图(十一月十八日