本週早些時候,我問了一個關於在運行時按順序過濾掉重複值的問題。雖然有一些很好的答案,但是我所經歷的數據量卻很緩慢並且不可行。數據庫重複值問題(基於先前值進行篩選)
當前我們的數據庫中,事件值不會被過濾。產生重複的數據值(具有不同的時間戳)。我們需要處理的數據在運行時,並在數據庫級別它的時間成本(以及不能將它拉成代碼,因爲它使用了很多存儲特效)導致高查詢時間。我們需要一個數據結構,我們可以查詢這個數據存儲已被過濾掉,因此運行時不需要額外的過濾。
目前在我們的數據庫
- 'F07331E4-26EC-41B6-BEC5-002AACA58337', '1', '2008-05-08 04:03:47.000'
- 「F07331E4- 26EC-41B6-BEC5-002AACA58337','0','2008-05-08 10:02:08,000'
- 'F07331E4-26EC-41B6-BEC5-002AACA58337','0','2008-05-09 10:03:24.000'(需要刪除)**
- 'F07331E4-26EC-41B6-BEC5-002AACA58337','1','2008-05-10 04:05:05.000'
我們需要的
- 'F07331E4-26EC-41B6-BEC5-002AACA58337', '1', '2008-05-08 04:03:47.000'
- 「F07331E4- 26EC-41B6-BEC5-002AACA58337' , '0', '10 2008-05-08:02:08.000'
- 'F07331E4-26EC-41B6-BEC5-002AACA58337', '1',「2008-05-10 04:51:05.000'
這看起來微不足道,但我們的問題是,我們得到這些數據從無線設備,從而導致無序的數據包,我們的網關是多線程的,所以我們不能保證我們得到的值是爲了。有些東西可能會在4秒前進入'1',2秒前會進入'0',但我們已經進入'1'了,因爲它是第一次進入。我們一直在關注如何實現這一點。我們無法比較的數據在數據庫中的最新值,因爲最新實際上可能不會來了嗎,所以扔這些數據,我們會被擰緊,我們的順序可能是完全關閉。所以目前我們店周圍基於關閉的時候,進來的每一個值和數據庫本身的洗牌..但是單位可以發送1,1,1,0和有效的,因爲該事件仍然是活動的,但我們只希望存儲開啓和關閉狀態(的狀態1,0,1,0,1,0第一次出現)。我們想過一個觸發器,但我們不得不洗牌每一個新的價值進來,因爲這陣子的數據可能早於最後一條消息,它可以改變整個序列(插入會很慢)。
什麼想法?
詢問您是否需要更多信息。
[編輯] PK不會工作 - 問題是我們的單位實際上發送不同的時間戳。所以PK不會工作,因爲1,1,1是一樣的..但是有不同的時間戳。這就像在活動時間1的推移,事件仍然在時間2,發送回我們既..相同的值不同的時間。
這是什麼RDBMS? – 2008-09-25 17:40:03