當前位置:編程學習大全網 - 網站源碼 - oracle ,IN的改寫

oracle ,IN的改寫

1、增加索引,對c.NO、y.NO和t.NO字段都增加索引。

2、不要用IN,用EXITS :

update y set y.zt=(select c.zt from c where c.NO=y.NO) where exits (select 1 from t where t.NO = y.NO );

效率會比用IN的語句高。如果例子中C表和T表是同壹個表,建議增加篩選之更新那些ZT字段不相同的數據,這樣會提高壹些效率。

3、使用遊標分批次的修改數據,因為壹個UPDATE更新的數據量過大,會導致大量的回滾段占用,分批次更新可以更好的利用資源。而且可以控制在壹次更新中斷後從中斷的位置繼續向下更新。避免更新失敗等問題發生;

4、使用臨時表,把需要更新的數據篩選出來,再編寫更新語句,這只是3或者4的壹種變化而已。看個人習慣,這麽做的優點是可以把臨時表的數據作為壹個備份,避免以後數據變化後無法得知當初的更新結果。

  • 上一篇:為什麽我手機上的GAE代理和我在教程裏說的不壹樣!!!!
  • 下一篇:hadoop 1.0.3 啟動時讓輸入密碼的問題
  • copyright 2024編程學習大全網