是否可以通過JDBC在Oracle中執行直接加載INSERT?我目前使用批處理準備語句(通過Spring JDBC),有沒有辦法讓這些繞過NOLOGGING表上的重做日誌?Oracle通過JDBC直接加載INSERT?
這是Oracle 11g。
是否可以通過JDBC在Oracle中執行直接加載INSERT?我目前使用批處理準備語句(通過Spring JDBC),有沒有辦法讓這些繞過NOLOGGING表上的重做日誌?Oracle通過JDBC直接加載INSERT?
這是Oracle 11g。
在11gR2中引入了APPEND_VALUES提示,用於使用INSERT ... VALUES插入直接路徑。
沒有可用的11gR2實例來測試它是否適用於JDBC batch inserts。不過值得一試。
是否
insert /*+ append */ into desttab select * from srctab
在JDBC不行?
確實如此,但行的源數據庫 – Ronnis 2011-03-04 19:18:55
@Ronnis之外,是啊......我已經按照這個帖子的關注。我在11gr2上,我可能會嘗試一下加里提到的'append_value'提示,但是這對Dmitri無助,(除非他進行升級)。有任何方法可以做很多事情來提高JDBC性能。但那不是問題。乾杯。 – 2011-03-04 20:01:07
直接路徑插入僅在insert into x as select * from y
方案中可能。這可以使用jdbc來完成,沒問題。這不能通過插入和值來完成。當數據庫處於強制日誌記錄模式時,這也無法完成。大多數情況下,當備用數據庫處於連接狀態時,主數據庫將處於強制日誌記錄模式。
正如Gary Myers所說,自11gR2以來,就有了APPEND_VALUES提示。與「舊」附加提示一樣,它只能用於批量插入。
我希望這可以幫助, 羅納德。
啊,我不知道這不適用於單個插入。 – Dmitri 2011-03-03 21:12:01
另外不要忘記,每個塊都寫入插入....它用於BULK插入。 – 2011-03-04 06:28:21
用途:
INSERT /*+ APPEND_VALUES */ INTO table_name (column1, column2) values (?,?);
謝謝,這很有用;不幸的是我在11.1 – Dmitri 2011-03-04 02:11:27