改進演算法 改進策略 改進效能三位數

2021-08-29 21:06:11 字數 1179 閱讀 7140

原來採用a表與b表的差集進行新增同步, 考慮到有些表的新增時有個字段會在原來的基礎上遞增, 這樣只需比較a表和b表那個欄位的最大值, 就可以進行新增同步, 效能改進明顯.

資料量大的表都是有歷史資料在裡面, 就可以建立兩個檢視, 乙個對應當日資料, 乙個對於歷史資料, 

這些資料有個特點, 歷史資料不變, 當日資料不斷變化.

為此在變更同步是, 只需要考慮當日資料, 不需要考慮歷史資料, 這樣大量減少比較的時間, 效能改進相當明顯.

原來一張表在變更更新時,都》 600秒, 現在全部變更更新時, 只要4.281秒

零, **自動生成

1, 生成檢視建立**

2, etl的sql**

一,處理功能

0, etl.刪除(etl_is_for_delete)

刪除目的表的最新資料, 不包括歸檔的歷史資料

1, etl.初始(etl_is_by_init)

初始化, 全部插入

2, etl.同步.新增.增量(etl_is_by_add_with_increase)

如果源表有新增的,並且新增的行有時間可以標識出來,如id,時間戳, 然後按此字段進行把源表新增的同步到目的表

3, etl.同步.新增.差集(etl_is_by_add_with_diff)

如果源表有新增的,但新增的行不能用時間標識出來, 就只能進行兩筆對比, 找出差集, 然後新增

4, etl.同步.變更.更新(etl_is_by_change_for_update)

如果源表有變更的, 採用每個字段對比的方式判斷, 如果有乙個字段變化,就整行更新

5, etl.同步.變更.刪除(etl_is_by_change_for_delete)

如果源表有變更的, 採用每個字段對比的方式判斷, 如果有乙個字段變化,就整行刪除, 後面採用etl.同步.新增.差集 插入此記錄

6, etl.同步.變更.歸檔(etl_is_by_change_for_archive)

如果源表有變更的, 採用每個字段對比的方式判斷, 如果有乙個字段變化,就將此行歸檔, 即是將此id記錄的所有行年齡+1, 後面採用etl.同步.新增.差集 插入此記錄

二, 日誌記錄

記錄etl的內容

異常處理, 雖然經過多次測試已經排除異常, 但是遇到特殊情況還是不好應付, 遇到最多的麻煩就是命名長度限制

欄位名, 檢視名, 表名等等.

三位數水仙花數的計算與改進

初學python,記錄學習路徑 水仙花數指的是其各位數字的3次方和等於該數本身。三位數的水仙花數 s for i in range 100,1000 t str i 字串就相當於乙個小型的字典型別,位置是建,內容是值 if pow eval t 0 3 pow eval t 1 3 pow eval...

特殊三位數

作 者 李家豪 完成日期 2013 年11月13日 版 本 號 v1.0 問題描述 請輸出滿足條件n a b c 的所有三位數n,其中,a b c分別是n的百 十 個位數。要求用自定義函式實現求階乘。樣例輸入 樣例輸出 145 問題分析 includeusing namespace std int ...

尋找三位數

問題描述 將1,2,9共9個數分成三組,分別組成三個三位數,且使這三個三位數構成 1 2 3的比例,試求出所有滿足條件的三個三位數。例如 三個三位數192,384,576滿足以上條件。輸入格式 無輸入輸出格式 輸出每行有三個數,為滿足題設三位數。各行為滿足要求的不同解。public class ma...