a表aid,aname b表bid,bname 現在假設兩張表裡面的資料行數是相等的,現在要更新a表裡面的每一行的anmae,條件是依據b表裡面的bid;
在sql server中好像可以這麼寫:
update a set aname=b.bname from a a,b b where a.aid=b.bid 這個效率應該很會快
而oracle裡面卻只有寫成這樣:
update a a set a.aname=(select b.bname from b b where a.aid=b.bid)
這樣的話,假如a,b兩張裡面各有10000條資料,那麼它要全表掃瞄10000*10000次,就會出現效能問題
那麼在oracle裡面有什麼別的辦法來改善嗎?
恢復oracle中update或delete的資料
問題描述 比如在開發人員對employee表進行乙個update語句,但更新完之後,才發現更新的語句有誤,需要撤銷剛才的update操作。如 update employee e set e.block 0300100011000000248 wheree.block 0300100011000000...
Oracle中執行update語句時卡住的解決方法
解決辦法 1.下面的語句用來查詢哪些物件被鎖 select object name,machine,s.sid,s.serial from v locked object l,dba objects o v session s where l.object id o.object id and l....
Oracle中update執行效率的優化
工作中經常遇到update大表的時候執行效率很低,那麼怎樣才能讓oracle中update資料量比較大的表執行的更快呢?先看個簡單的例子吧 需求是我們要將表intf cms calluser tpye中的lant id更新成cms.serv base msg表中的latn id,關聯條件是intf ...