第1章 Oracle 索引 1
1.1 用索引提高性能 2
1.2 確定使用哪種類型的索引 4
1.2.1 B樹索引 5
1.2.2 特定的索引類型 7
1.3 確定需要建立索引的列 10
1.3.1 主鍵列和唯一鍵列的索引 11
1.3.2 外鍵列的索引 11
1.3.3 其他適閤創建索引的列 12
1.4 索引指南 12
1.5 小結 13
第2章 B樹索引 15
2.1 Oracle如何使用B樹索引 15
2.1.1 場景一:所有的數據位於索引塊 17
2.1.2 場景二:索引中不包含所有信息 19
2.1.3?場景三:隻有錶塊被訪問 20
2.2 準備創建B樹索引 21
2.2.1 在創建前估計索引的大小 21
2.2.2 為索引創建單獨的錶空間 22
2.2.3 從錶空間繼承存儲參數 23
2.2.4 命名標準 24
2.3 實現B樹索引 24
2.3.1 創建B樹索引 24
2.3.2 報告索引 25
2.3.3 顯示創建索引的代碼 26
2.3.4 刪除B樹索引 27
2.4 管理帶約束的B樹索引 28
2.4.1 在主鍵列上創建B樹索引 29
2.4.2 在唯一鍵列上創建B樹索引 33
2.4.3 索引外鍵列 36
2.5 小結 39
第3章 位圖索引 40
3.1 位圖索引 41
3.2 創建位圖索引 44
3.3 創建分區的位圖索引 45
3.4 在索引組織錶上創建位圖索引 45
3.5 位圖索引對查詢性能的影響 46
3.6 位圖索引對數據載入性能的影響 50
3.7 瞭解位圖連接索引 53
3.8 創建位圖連接索引 54
3.9 報告位圖索引 55
3.10 小結 55
第4章 索引組織錶 56
4.1 索引組織錶的結構 56
4.2 索引組織錶的優勢 57
4.3 創建索引組織錶 58
4.4 添加溢齣段 60
4.5 壓縮索引組織錶 62
4.6 構建二級索引 63
4.7 重建索引組織錶 66
4.8 索引組織錶報告 67
4.9 小結 68
第5章 專門索引 69
5.1 不可見索引 69
5.1.1 不可見索引的用途 69
5.1.2 創建不可見索引 70
5.1.3 在數據庫中查找不可見索引 71
5.1.4 讓優化器使用不可見索引 71
5.1.5 維護不可見索引 72
5.2 基於函數的索引 72
5.2.1 創建基於函數的索引 73
5.2.2 基於函數的索引的限製 76
5.2.3 收集基於函數的索引的統計信息 77
5.3 虛擬列上的索引 78
5.4 鍵壓縮索引 80
5.4.1 鍵壓縮的用途 81
5.4.2 創建壓縮索引 82
5.4.3 鍵壓縮和存儲 84
5.5 復閤索引 85
5.5.1 瞭解索引跳躍式掃描和復閤索引 85
5.5.2 在復閤索引中對列進行排列 86
5.5.3 為復閤索引選擇鍵 87
5.6 創建虛擬索引 89
5.7 反嚮鍵索引 91
5.7.1 反嚮鍵索引的缺點 92
5.7.2 反嚮鍵索引的用途 94
5.7.3 創建反嚮鍵索引 94
5.8 應用程序域索引 94
5.9 小結 95
第6章 分區索引 96
6.1 分區索引 96
6.2 創建本地分區索引 97
6.2.1 最簡單的形式 97
6.2.2 分區級的需求 98
6.2.3 前綴和非前綴選項 99
6.3 管理主鍵和唯一索引 99
6.4 創建全局分區索引 101
6.5 為應用程序選擇索引 105
6.6 維護分區錶的索引 106
6.6.1 添加分區 106
6.6.2 截斷分區 107
6.6.3 移動分區 108
6.6.4 拆分分區 108
6.6.5 交換分區 110
6.6.6 刪除分區 111
6.6.7 閤並分區 111
6.7 重建全局分區索引和非分區索引 112
6.8 把索引分區設置為不可用後重建 113
6.9 索引對間隔分區的影響 115
6.10 使舊的數據隻讀 116
6.11 報告分區索引 116
6.12 小結 118
第7章 索引使用調優 119
7.1 優化器訪問路徑 119
7.2 索引掃描 120
7.2.1 索引唯一掃描 120
7.2.2 索引範圍掃描 121
7.2.3 索引跳躍式掃描 123
7.2.4 全索引掃描 124
7.2.5 索引快速全掃描 125
7.3 確定查詢是否使用瞭索引 125
7.4 避免使用索引 127
7.4.1 在任何情況下都不使用某個索引 127
7.4.2 隻避免快速掃描 128
7.4.3 強製錶掃描 128
7.5 在索引和錶掃描之間選擇 128
7.6 優化器忽略索引的原因 129
7.6.1 不同的行數 129
7.6.2 索引聚簇因子 130
7.7 索引訪問路徑因沒有新的統計信息而改變 131
7.7.1 使用不等條件 131
7.7.2 使用通配符查詢 133
7.7.3 在謂詞中引用空值 134
7.7.4 在查詢中包含函數 135
7.7.5 跳過索引的前導部分 136
7.8 強製優化器使用索引 136
7.8.1 應用INDEX提示 137
7.8.2 應用相關的提示 138
7.8.3 對失敗的索引提示進行診斷 139
7.8.4 調整optimizer_index_cost_adj參數 140
7.8.5 為索引收集準確的統計信息 142
7.9 並行化索引訪問 143
7.10 小結 144
第8章 維護索引 145
8.1 收集索引統計信息 145
8.1.1 DBMS_STATS包 145
8.1.2 METHOD_OPT參數 147
8.2 處理不可用索引 148
8.2.1 使索引不可用 149
8.2.2 指定SKIP_UNUSABLE_INDEXES參數 150
8.3 管理索引使用的空間 153
8.3.1 重建索引以減少碎片 153
8.3.2 重建反嚮鍵索引 154
8.3.3 迴收未使用的空間 154
8.3.4 重建分區索引 154
8.3.5 頻繁重建索引 157
8.4 INDEX_STATS視圖在重建索引時的作用 157
8.4.1 INDEX_STATS視圖的優點 158
8.4.2 INDEX_STATS視圖的問題 160
8.5 關於重建索引的爭論 162
8.5.1 重建索引的理由 162
8.5.2 反對重建的理由 163
8.5.3 關於重建索引的建議 163
8.6 閤並索引來減少碎片 164
8.7 收縮索引以減少碎片 165
8.8 移動錶和索引 166
8.9 提高創建索引的效率 167
8.9.1 並行創建索引 167
8.9.2 避免在索引創建期間生成重做 168
8.9.3 使用較大的塊 169
8.9.4 壓縮索引 169
8.9.5 同時使用多個選項 170
8.10 生成DDL從而創建索引 170
8.10.1 使用DBMS_METADATA包 170
8.10.2 使用SESSION_TRANSFORM存儲過程 171
8.10.3 使用SET_FILTER存儲過程 172
8.10.4 使用數據泵 173
8.11 刪除索引 173
8.12 小結 174
第9章 SQL調優顧問 176
9.1 工具之間的聯係 176
9.2 自動SQL調優作業 178
9.2.1 驗證自動作業在運行 178
9.2.2 查看自動SQL調優作業中的建議 179
9.2.3 生成SQL腳本來實施自動調優建議 181
9.2.4 禁用和啓用自動SQL調優 182
9.3 管理SQL調優集 183
9.3.1 在AWR中查看占用大量資源的SQL 184
9.3.2 查看內存中使用大量資源的SQL 186
9.3.3 用AWR中占用大量資源的SQL填充SQL調優集 187
9.3.4 用內存中占用大量資源的SQL填充SQL調優集 188
9.3.5 用內存中所有的SQL來填充SQL調優集 189
9.3.6 顯示SQL調優集的內容 190
9.3.7 選擇性刪除SQL調優集中的語句 192
9.3.8 將語句添加到現有的SQL調優集 193
9.3.9 刪除SQL調優集 193
9.4 運行SQL調優顧問 193
9.4.1 創建調優任務 195
9.4.2 執行DBMS_SQLTUNE並查看建議 197
9.4.3 查看和刪除調優任務 197
9.4.4 從SQL Developer中運行SQL調優顧問 197
9.4.5 從企業管理器運行SQL調優顧問 198
9.5 小結 199
第10章 SQL訪問顧問 200
10.1 為單個SQL語句生成的建議 201
10.2 獲得一組SQL語句的建議 203
10.3 查詢顧問視圖 209
10.4 小結 210
· · · · · · (
收起)