程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle delete數據在釋放表空間出現的問題

Oracle delete數據在釋放表空間出現的問題

編輯:Oracle數據庫基礎

以下的文章主要是介紹Oracle delete數據後的釋放表空間問題以Oracle 9i為實例。以下就是對相關內容的具體介紹,以下就是Oracle delete的相關內容的具體介紹,望你浏覽完以下的內容會有所收獲。

數據表的龐大導致查詢速度降低是必然的,所以常常將數據表的數據移走,但是使用delete後,數據是刪除了,但是速度沒有多大改善,憂悶了。使用備份表再drop掉原表。的確可以解決問題。但是較麻煩,今天請教了一個Oracle高手,解決了問題。 由於delete操作是不釋放表空間的,要想提高查詢速度則必須釋放表空間。

對Oracle 9i而言,釋放表空間則需要重新分析表。

  1. analyze table itemLog compute statistics; 

再進行select ,感覺的確快了很多。

另一種方法:

使用exp將表導出,drop 掉表,再imp回去。先做個簡要筆記今天,幫同事導數據,從開發環境導到測試環境中,發現一個查詢變的很慢。查看執行計劃,發現居然用了全表掃描(表中大約300w條記錄),為啥不用索引呢,查看索引狀態,一切正常。

肯定是索引的問題,先分析一下表再說。

  1. analyze table ysgl_compile_reqsub 
    compute statistics for all indexes; 

正常了。

一個論壇上的帖子:

Analyze table對Oracle性能的提升,大家來討論一下這個優化課題我自己碰到的一個實際情況:

一個sql語句執行要1個小時,有時候還出不了結果,但分析sql涉及的表後,然後重新執行3分鐘搞定!真的有這樣驚人的差異?世事無絕對,有時候你可能發現會變慢,了解了CBO和RBO你就知道區別了。

annlyze表會增加CBO執行的性能?不一定的。我就碰到一個語句分析後要執行30多分鐘,刪除分析後,只要30秒。很多情況下不一定的,最好是自己從執行計劃判斷。

以上的相關內容就是對Oracle delete數據後的釋放表空間問題以Oracle 9i為實例開做以詳細解析,望你能有所收獲。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved