我們有一張關於3M記錄的表格,這些記錄在我們的應用程序中只用於只讀操作。一天一次,我們會收到帶有新版表格的csv文件。大多數記錄沒有更改,但有些記錄是創建,更新或刪除的。總變化量小於整個內容的1%。 用新數據更新表格內容的最佳方式是什麼?表獨家鎖定是不可接受的,該應用程序正在全天候工作。 更新應該在一次提交中完成。對數據庫的訪問是通過JDBC。 謝謝。如何從csv文件/ Oracle的另一個表中更新大表格
0
A
回答
1
我會考慮將您的數據加載到全局臨時表中,然後使用MERGE語句在公共和唯一鍵值上的目標表之間進行連接,從而應用更改。
在SO和文檔中有很多MERGE示例。
https://docs.oracle.com/database/121/SQLRF/statements_9016.htm#SQLRF01606
0
一種選擇是保持在一對錶,並通過使用同義詞切換它們之間的應用程序。
因此,給定table1和table2,您的同義詞在星期一指向table1。通宵加載table2,然後將同義詞切換爲指向它而不是table1。
這樣做的一個間接好處是它可以保留您以前的數據集,以防需要切換回來。
+0
它是否適用於公開交易?我想不是。 – spoonboy
+0
我已經做了一段時間了,但是我記得同義詞定義沒有鎖定問題,因爲一旦查詢運行,您可以對同義詞進行任何操作,因爲底層關係作爲查詢解析的一部分被解析和轉型。測試會很簡單。 –
相關問題
- 1. Python:如何從另一個csv文件更新csv文件
- 2. 從另一個表格更新文本文件中的一行
- 3. 更新另一個表的Oracle表
- 4. 在Oracle中從另一個表更新表上的密鑰
- 5. 慶典更新龐大的CSV文件,從另一家大型csv文件
- 6. 基於另一個列表從csv文件生成子表格
- 7. 如何從另一個表更新MYSQL中的一個表?
- 8. 從另一個表更新多列 - 需要Oracle格式
- 9. 使用另一個表中的數據更新一個表 - Oracle
- 10. Primefaces從另一個表格內更新
- 11. 從另一個表格中更新表格
- 12. 如何更新從另一個表格中選擇字段的表格?
- 13. 如何從另一個表中更新一個表?
- 14. 如何使用另一個表中的數據更新表格
- 15. 更新表中的Oracle與特定的條件從另一個表值
- 16. 從sqlalchemy中的多列更新另一個表的表格
- 17. Oracle SQL使用另一個表的值更新一個表列
- 18. 從pl \ sql或oracle中的另一個表中更新一個表(僅更改從CDC表中的行)
- 19. 如何從另一個表中的另一列更新表中的某一列
- 20. 使用另一個表中的值更新Oracle表
- 21. 使用另一個表中的數據更新一個表格
- 22. 如何在加入另一個表格時更新表格
- 23. 如何從一個表更新一行到另一個表?
- 24. 更新另一個表中的SQL表格單元格
- 25. 從MYSQL的另一個表更新表
- 26. MySQL的更新表,從另一個表
- 27. 如何從另一個表中更新表的總和?
- 28. SQL更新文本從另一個表
- 29. PostgreSQL,需要從CSV文件更新一些表格
- 30. 在Oracle中的另一個架構中複製表格表格
MERGE是否刪除記錄? – spoonboy
它看起來像MERGE不能從目標表中刪除源表中未顯示的記錄。 – spoonboy
我會給出另一個答案,以及... –