請教oracle db問題

我有個特別complex的SQL query cursor, takes a long time (a few hours)to complete. And very often it failed with oracle error "snapshot too old rollback segment too small". 原因是我用的table data 都是changing frequently的。我就決定把裏麵的每個subquery 都分別寫到temp table裏,然後在main cursor 裏在join these temp tables. 我覺得這樣應該能work的。可是reviewer讓我證明這樣能解決問題。煩死了,query那麽大又不是我的錯。db 高手們有什麽好主意? 除了加 table index外,query還能怎麽optimize? 

所有跟帖: 

打出來看看? -slow_quick- 給 slow_quick 發送悄悄話 slow_quick 的博客首頁 (0 bytes) () 06/23/2014 postreply 10:48:54

太長了 -simplylove- 給 simplylove 發送悄悄話 simplylove 的博客首頁 (9 bytes) () 06/23/2014 postreply 19:02:13

加點log語句看看到底那步最耗時,再加以改進 -Guoluke2- 給 Guoluke2 發送悄悄話 Guoluke2 的博客首頁 (0 bytes) () 06/23/2014 postreply 11:27:19

最大的table至少有幾百個million rows -simplylove- 給 simplylove 發送悄悄話 simplylove 的博客首頁 (48 bytes) () 06/23/2014 postreply 19:06:40

這就是database本身的問題了,找dba解決 -GuoLuke2- 給 GuoLuke2 發送悄悄話 GuoLuke2 的博客首頁 (0 bytes) () 06/24/2014 postreply 18:52:05

回複:請教oracle db問題 -lidongmei- 給 lidongmei 發送悄悄話 lidongmei 的博客首頁 (299 bytes) () 06/23/2014 postreply 12:49:56

已經有index了。我們雖然不是data warehouse數據,但數據量很大。再加additional index -simplylove- 給 simplylove 發送悄悄話 simplylove 的博客首頁 (224 bytes) () 06/23/2014 postreply 19:16:51

我覺得隻能用temp table了。問DBA也不做聲 -simplylove- 給 simplylove 發送悄悄話 simplylove 的博客首頁 (12 bytes) () 06/23/2014 postreply 19:22:21

回複:已經有index了。我們雖然不是data warehouse數據,但數據量很大。再加additional index -lidongmei- 給 lidongmei 發送悄悄話 lidongmei 的博客首頁 (17866 bytes) () 06/24/2014 postreply 09:02:52

Well it is a real time system and the response time is critical. -simplylove- 給 simplylove 發送悄悄話 simplylove 的博客首頁 (0 bytes) () 07/07/2014 postreply 20:25:25

Adding additional index will probably have negative impact on ou -simplylove- 給 simplylove 發送悄悄話 simplylove 的博客首頁 (0 bytes) () 07/07/2014 postreply 20:26:52

這還不簡單,弄不出來就別弄了,省事兒了 -南城胡同串子- 給 南城胡同串子 發送悄悄話 (66 bytes) () 06/23/2014 postreply 16:53:28

我也想不弄啊,成天串胡同兒多悠閑。可是得養家糊口啊 -simplylove- 給 simplylove 發送悄悄話 simplylove 的博客首頁 (9 bytes) () 06/23/2014 postreply 19:26:49

Using cursor might not be a good idea. -chirolike- 給 chirolike 發送悄悄話 chirolike 的博客首頁 (0 bytes) () 06/24/2014 postreply 16:10:27

回複:請教oracle db問題 -種豆的gua- 給 種豆的gua 發送悄悄話 (128 bytes) () 06/24/2014 postreply 20:02:30

這些都已經相當大了,DBA不給增加了。我試了temp table solution and seems it is workin -simplylove- 給 simplylove 發送悄悄話 simplylove 的博客首頁 (0 bytes) () 07/07/2014 postreply 20:30:19

請您先登陸,再發跟帖!