一. 先來看一下建立索引要做哪些操作:
1. 把index key的data 讀到記憶體
==>如果data 沒在db_cache 中,這時候很容易有大量的db file scatter read wait
2. 對index key的data 作排序
==>sort_area_size 或者pga_aggregate_target 不夠大的情況下,需要做 disk sort, 會有大量的driect path read/write , 另外,消耗大量cpu time
3. 建立新的index segment , 把排過序的index data 寫到所建立的index segment 裡面
==>如果index 很大,那麼,有時也會有redo log 相關等待,如:
log buffer space ,log file sync , log file parallel write 等
所以,在建大表索引時,可以增大pga,增大temp tablepace,並且用nologging或並行選項。
如:create index idx_logs on logs(time) nologging parallel 4;
並行度一般看cpu 個數。當然在cpu 比較空閒的情況下可以多並行幾個。對於單cpu 不建議用並行,這樣反而會增加建立時間。也可以根據v$ses
如何加快Oracle建立索引的速度
如何加快建立索引的速度 總結一下 1。使用並行引數,8個cpu,可以用parallel 6 最多占用6個cpu,正常情況下沒問題 前提是其他應用沒有佔超過2個cpu的資源 2。nologging,絕對應該使用,會使速度大幅上公升。減少大量redo log 3。pga,普通的auto pga最大才10...
MySQL的索引(Index)詳解
索引分類 1 普通索引 key indexes 2 唯一索引 unique indexes 3 主鍵索引 primary key indexes 4 組合索引 composite index 5 字首索引 prefix indexes 6 全文索引 full text indexes 7 雜湊索引 ...
如何加快Python 應用的啟動時間
我聽說pipenv9.0.2已經發布,啟動時間有了很大的改進。我很快就試了一下,但我覺得並不快。所以我用python3.7的新特性來研究它。在本文中,我將介紹該特性以及如何使用它。啟動時間 匯入時間 例如,pipenv h 的執行時間比顯示幫助訊息的時間長得多。一般來說,當應用程式啟動時,會有一些啟...