我需要做的是插入記錄表TAB_B它來作爲從選擇到餐桌TAB_A結果(表結構相同),這樣的:平原插入VS PLSQL插入 - 利弊
INSERT /*+ APPEND */ INTO TAB_B SELECT * FROM TAB_A WHERE [CONDITION]
的事情是,我需要知道有多少記錄被插入,那麼最簡單的方法是插入後算來:反正
SELECT COUNT(*) FROM TAB_A WHERE [CONDITION]
,這將是巨大的,如果我可以省略與相同條件下執行查詢兩次,所以我可以這樣做:
BEGIN
INSERT /*+ APPEND */ INTO TAB_B SELECT * FROM TAB_A WHERE [CONDITION];
DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT);
END;
現在的問題是: 「plsql解決方案有沒有什麼缺點 - 尤其是PERFORMANCE?我應該堅持插入物,隨後計數或不?」
編輯 紳士,我想我的問題不能被更清晰地問,這是關於性能差異以及最終的缺點,而不是方法本身(我試着在標題和問題本身中說明它更好)你標記爲重複的問題是關於如何對行進行計數,無論我的問題是哪種方法在性能方面更好,以及在使用上述任何方法時是否存在任何缺點。
在pl/sql塊中運行插入與在塊外運行沒有任何不利之處。 – 2013-04-12 09:36:28
對上下文沒有把握,但是如果你是從代碼中調用它,你通常會做'command.ExecuteNonQuery()',它通常有一個int作爲返回類型,告訴你受影響的行數。不知道這是否會有所幫助,因爲您沒有提及數據庫本身以外的其他上下文。 –