弱弱的問題,臨時表空間的管理是如何實現的呢?我們如何控制它的增長?


這個也是個老問題,看過這里的一些文章,但是還是不明白,oracle是如何控制臨時表空間的大小的。
為什么我的數據庫temp表空間總是不夠,自己增長得非常嚴重,上幾十G!!!!
好像有個語句可以收縮表空間?請問是什么語句?
我在oracle方面是白痴,基本什么不懂,希望大蝦支招。

8 个解决方案

#1


你是不是用臨時表或者排序之類特別厲害?temp表空間oracle自己管理,當不夠就自己擴展。你可以修改表空間里面數據文件的屬性,將autoextend去掉。用Oracle Enterprise Management就可以了。
但是修改后可能會遇到temp段無法擴展的錯誤,所以從根本上來說你要找到究竟是什么事務需要消耗這么多temp空間。檢查是否有建索引、排序等操作,把不必要的操作省去。
重啟數據庫可以晴空temp

#2


我知道重新啟動服務器可以,但是對於企業來講,不能隨便重啟,甚至一跑就是成年累月。現在的情況是一個多星期就可盛滿上10G。關鍵是為什么不能自己縮短?這個不能去掉autoextend,因為,如果這個表空間不能擴展以后,相應服務程序就會停止。
我想知道,是否有什么命令讓系統清空一下這個表空間,而不是重啟服務器!謝謝
如果我自己建立一個臨時表空間去處理的話,是否可以人工操作呢?

#3


呵呵,我都說過了,最重要的是,你必須找到究竟為什么一周就要10g的temp空間。是否可以從應用方面來調優,是否有不必要的排序操作

#4


因為程序本來的基本表都因為程序的合並,變成了現在的視圖,這樣造成了很多視圖操作的存在,是否oracle的排序機制非常差?造成占用大量臨時空間呢?
反正我不怎么喜歡雖然功能強大,卻極其難以實用的oracle。當時,有個項目,就是安裝一個oracle產品,關於數據備份的產品。找了oracle的技術人員安裝3天,竟然沒有安裝上。
已經復雜到自己的技術人員都不能控制的程序了,基本上沒有什么前途。
個人觀點,哈哈。
PS :也不是那個技術人員的問題,因為,當時整個武漢的好多大牛都參加了那次安裝,結果都不行,才找的oracle(他們基本可以接受,oracle人員沒有安裝成功的結果哈哈)

是不是我們要盡量把不必要的排序,用戶函數,都去掉呢?

我只想知道,如果他不用這些空間了,是否會自己釋放?

#5


暈,排序排序,排序需要內存,內存不夠就寫硬盤,就是temp空間了
你們那的環境這么復雜?裝都裝不上?什么OS啊,怕怕
我不知道你們平時用什么數據庫,但是如果是真的企業級應用,不用oracle db2之類,難道用sql server?企業級的東西從來沒有多少好用的^_^ 如果oracle沒有前途,你認為什么有?DB2還是Sybase?
空間會自己釋放,應該是Oracle的SMON進程管理的吧。擴展就是因為空間無法釋放而又不夠用了。正如你所說,不必要的排序、函數當然應該都去掉。先在應用級調優吧

#6


當時是武漢一個什么系統我不熟悉,跟我沒有什么關系,是我們公司大牛當時設計過的,系統使用的是大機,不是中機小機哦:)
哈哈 懷疑oracle打擊方面能不能干過DB2,sybase的輝煌好像也不行了吧。DB2根本我沒有用過,哈哈,我是比較弱了,只用過sqlserver一類的。
我的系統主要是一級試圖調用一級試圖,結果來回調用了5,6次,可能就搞不定了吧!唉,關鍵最早的數據庫不是我設計的,否則我也不會允許搞這么表面復雜,內部也復雜的破機制。
嘿嘿,謝謝。知道他可以自己釋放,我就清楚了,肯定是程序或者服務連接的問題造就了這個結果。

#7


對了,不知道lotus的DECS和代理是否用過。我們的程序是使用代理跟oracle連接,讀取oracle的新數據的。由於oracle的數據並非由lotus本身生成,靠DECS根本不能達到數據一致。所以只好用代理,是否有可能是因為lotus的服務一直開着,讓oracle本身無法釋放空間呢?
還是一條語句就可以讓oracle弄滿?
既然他可以自動釋放,我們一條數據在大,也不可能有幾十個G那么多吧,因為我們開頭幾天是根本不怎么占用temp表空間的啦?
不知道我問題是否說在點上?如果有什么新的亮點可以照亮偶,偶求之不得:)

#8


歡迎大家討論

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com