提高對大批量資料時MV的重新整理效率
最近接到一個需求:把某一個表的欄位設一個預設值,並把該欄位當前所有資料都更新為這個預設值。
這個需求做起來不是很難,難在資料的同步上。
我這裡的資料庫環境是這樣的:
外網資料庫:WAI
內網資料庫:NEI
為了開發測試方便、準確,每天會把外網的資料用MV的方式單向同步到內網上。MV的可更新主鍵MV,MV重新整理方式是FAST。
我們知道,可更新MV在資料重新整理後會將資料恢復至上次重新整理的狀態,也就是說丟失所有非重新整理造成的資料變化,為了恢復,可更新MV同時會生成一個USLOG$_XXX表來記錄對MV資料的改動;同時在源庫上會生成一個MLOG$_XXX表來記錄源表記錄的變化,以便MV能使用FAST的方式重新整理資料。
同時,我們還知道,當主表非lob型別資料發生變化時,無論變化的是一個欄位還是多個欄位,在MV重新整理的時候都是把整個記錄都重新整理過來。
回頭看需求,不難得出這樣一個結論:在主表更新資料可能不會很慢,但在重新整理資料時會非常慢,它消耗的資源會比MV做一次全重新整理還要大。(重新整理資料,刪除兩邊對應的LOG)。
其實如果知道原理的話,要提高完成這個工作的效率還是很簡單的。我採取的方法是:先重新整理一下MV,然後分別手工更新主表和MV的欄位,然後刪除由更新產生的MLOG$_XXX和USLOG$_XXX的記錄。
當然這種手段應該儘量少用了,只有在非常情況下采用,否則MV就失去其意義了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/231499/viewspace-63734/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MV快速重新整理時執行的SQLSQL
- mv complate重新整理時使用DELETE OR TRUNCATE!delete
- 深究mv移動資料夾時`/`的用法
- 利用索引提高SQL Server資料處理的效率索引SQLServer
- 提高資料庫系統的執行效率的辦法資料庫
- 華為雲 DAS,大幅提高資料庫開發效率資料庫
- MV (Materialed View) 物化檢視的重新整理組View
- 【MV】group by查詢子句是否包含count(*)對物化檢視重新整理的影響
- 提高codeing執行時間效率
- 用連線池提高Servlet訪問資料庫的效率 (轉)Servlet資料庫
- 資料庫執行效率的對比測試資料庫
- 大資料同步方案怎麼選,才能提高企業的業務效率?大資料
- Oracle中大批量刪除資料的方法Oracle
- 向表中插入大批量資料
- 提高C程式效率的方法C程式
- 即時通訊系統是企業提高辦公效率的利器
- 面對疫情,提高生產力和效率是高管們期望的最理想結果(附原資料表)
- 提高sqlmap爆破效率SQL
- CWCS提高流程效率
- 大資料時代事業單位利用資料分析提高工作效率大資料
- 用prebuild mv 方法遷移資料Rebuild
- ElasticSearch在數十億級別資料下,如何提高查詢效率?Elasticsearch
- Hive 如何快速拉取大批量資料Hive
- 大批量資料處理操作小記
- 快照庫MV不能成功重新整理問題的解決
- 如何提高介面測試的效率
- 如何提高使用Java反射的效率?Java反射
- 如何提高App開發的效率?APP
- 提高採購流程效率的方法
- Oracle提高查詢效率的方法Oracle
- 應用時間管理提高工作效率 (轉)
- RAC的cache fusion對資料塊訪問效率的影響
- Oracle中大批量刪除資料的方法(轉自)Oracle
- 對MV使用價值的重新定位
- iOS 提高開發效率iOS
- VS提高實戰效率
- 生產工時管理系統:提高效率的秘訣
- 由mv命令引發的對inode的思考