《跨 界 之SQL、PL/SQL優化指南》目錄下

 

wKiom1dUJTugNSoOAAA4iHwtFwI605.png-wh_50

目 錄ide

 

三. 常見不合理的語句.........................................................100函數

  3.1). 沒有使用綁定變量....................................................100工具

  3.2). 隱含轉換............................................................101優化

  3.3). 索引列上進行運算....................................................102spa

  3.4). SELECT中使用 *......................................................103設計

  3.5). SQL中調用序列、函數的問題...........................................1043d

  3.6). 聚合操做取了不須要的列,列又做了轉換或排序操做......................105blog

  3.7). SQL語句沒法共享.....................................................107排序

  3.8). 表名書寫順序的問題..................................................108索引

  3.9). SQL中大小寫混寫.....................................................110

  3.10). 表的別名...........................................................110

  3.11). 表的關聯字段設計不合理的問題.......................................112

  3.12). 沒有使用 ORACLE提供的高效函數......................................112

  3.13). 減小表的訪問次數的問題.............................................114

  3.14). 減小數據的查找範圍.................................................115

  3.15). 多此一舉的寫法.....................................................116

  3.16). 子程序缺乏異常處理部分.............................................118

  3.17). 子程序處理邏輯不明確,沒有使用直接賦值,且無異常處理...............119

 

四. SQL優化寫法..............................................................121

  4.1). INSERT語句的優化....................................................121

      4.1.1). 逐條插入改成批處理插入....................................121

      4.1.2). INSERT ... INTO  ... SELECT ... FROM 的優化..............123

  4.2). DELECT 語句的代化...................................................124

      4.2.1). 單表刪除..................................................126

      4.2.2). 多表關聯刪除..............................................126

  4.3). UPDATE 語句的優化...................................................128

      4.3.1). 單表更新優化..............................................128

      4.3.2). 多表關聯更新優化..........................................129

  4.4). SELECT 語句的優化...................................................130

      4.4.1). DISTINCT 的優化案例.......................................131

      4.4.2). 0R的優化案例..............................................132

      4.4.3). EXISTS的優化案例..........................................136

      4.4.4). 0R和EXISTS的混合優化案例..................................137

      4.4.5). MERGE INTO沒有使用索引的案例..............................138

      4.4.6). 25個 UNION語句的優........................................140

      4.4.7). 善於使用 ORACLE函數的案例.................................143

      4.4.8). 消除重複過濾條件的案例....................................145

      4.4.9). 減小中間結果集的反案例....................................147

      4.4.10). 增長冗餘字段使用索引的案例...............................148

      4.4.11). 減小表的掃描次數的案例...................................149

      4.4.12). 使用 ROWID 優化的案例....................................151

      4.4.13). ORDER BY 的優化案例......................................151

      4.4.14). 使用隱含提示的優化案例...................................152

 

五. 分析、監控和調優.........................................................157

  5.1). 如何肯定那些語句須要優化............................................157

      5.1.1). 查詢 V$SQL,V$SQLAREA等視圖...............................157

      5.1.2). 查看 ORACLE的自動調優任務.................................158

  5.2). 如何查看執行計劃....................................................160

      5.2.1). 在 PL/SQL工具中按 EXPLAIN PLAN 按鈕或者F5查看執行計劃.....160

      5.2.2). 使用 EXPLAIN PLAN 語句查看執行計劃........................160

      5.2.3). 在CMD窗口或 SHEEL中使用SET AUTOTRACE TRACEONLY查看........161

      5.2.4). 如何分析執行計劃..........................................162

  5.3). 如何肯定優化點......................................................166

  5.4). 如何使用自動優化建議................................................167

      5.4.1). 使用DBMS_SQLTUNE建立調優任務..............................167

      5.4.2). 經過SQL_ID創調優任務......................................169

      5.4.3). 經過DBA_ADVISOR_ACTIONS視圖查看優化建議...................171

  5.5). 如何使用SQL_TRACE和10046事件進行優化................................172

      5.5.1). 使用SQL_TRACE進行優化.....................................172

      5.5.2). 使用10046事件進行優化.....................................174

  5.6). 如何收集統計信息....................................................176

  5.7). 如何監控索引........................................................178

 

六. 補充部分(報表開發神器)...................................................180

  6.1). 分析函數............................................................180

      a). RANK() / DENSE_RANK()函數.....................................181

      b). 開窗函數(windowing functions)...............................182

      c). 製表函數(reporting functions)...............................183

      d). LAG / LEAD函數 ...............................................184

      e). FIRST / LAST函數..............................................185

      f). LISTAGG 高級分析函數..........................................186

   6.2). 行列轉換..........................................................187

       6.2.1). PIVOT列轉爲行...........................................187

       6.2.2). UNPIVOT 行轉爲列........................................190

   6.3). SQL 模型子句(SQL MODELING)........................................192

       6.3.1). 簡介....................................................192

       6.3.2). 單個單元格引用(SINGLE CELL REFERENCES)..................193

       6.3.3). 位置引用(POSITIONAL REFERENCES).........................194

       6.3.4). 位置引用,既更新現有單元格,又建立新單元格..............195

       6.3.5). 多單元格引用(MULTI-CELL REFERENCES).....................196

       6.3.6). 使用CV函數..............................................197

       6.3.7). 使用F0R循環.............................................198

       6.3.8). 使用ANY通配符...........................................199

相關文章
相關標籤/搜索