![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 studycode ![]()
![]() |
例如DB1.prod有變更,要同步DB2.prod, DB1.prod的資料經常在變動,且有可能同時新增幾百筆。 有想過兩種方式,請問: 一、寫trigger,會不會loading很大? 二、用sql的排程,每秒檢查尚未同步的資料,但發現排程最短只能10秒,想設定1秒,存檔後會被改回10秒!為何最小單位只能10秒呀? 還有沒有其他方式呢?? 謝謝。 |
別忘捐VP感謝幫助你的人 | 新手會員瞧一瞧 |
1樓
最有價值解答
QOO ![]() ![]() |
個人覺得1是比較適當的方法
若是設定排程的話,DB是一直在詢問(10秒問一次),trigger的話,是有異動才動作 loading會不會很大,要看你trigger後執行的sql語法 如果你的語法很複雜,加上異動的頻率高,一定是很吃資源的 比方說,你的trigger裡面包含了大量資料撈取,然後還要運算,統計,最後再大量的寫入,那肯定運作不來的 盡量將你的作業單純化,有助於你DB的效率 另外有關於排程小於10秒的設定,有查到這樣的解,你可以參考看看 How to schedule jobs in Sql server 2008 for less than 10 sec
本篇文章回覆於2017-02-24 18:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓 |
用複寫 設定一下就好 不過也是10秒 還OK的
不然 就 select into 也不賴
本篇文章回覆於2017-03-02 05:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓
作者回應
studycode ![]() |
*我這個資料表的異動有熱門和冷門的時間,設定排程,DB會一直詢問好像也不太好,那看來用trigger還是比較適合~
*複寫有試一下,但是不知是不是我不會用,它只能選固定的欄位,我兩個table的欄位名稱是不一樣的,且資料型態也不完全相同,必須處理過後才同步另一個table,用複寫好像不能讓我處理資料再存到另一個table的特定欄位 > < 感謝兩位!!
本篇文章回覆於2017-03-02 10:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |