成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

不要讓臨時表空間影響Oracle數據庫性能

數據庫 數據庫運維
在Oracle數據庫中進行排序、分組匯總、索引等到作時,會產生很多的臨時數據。本文向您介紹Oracle數據庫臨時表空間的優化,以提高Oracle數據庫性能。

在Oracle數據庫中進行排序、分組匯總、索引等到作時,會產生很多的臨時數據。如有一張員工信息表,數據庫中是安裝記錄建立的時間來保存的。如果用戶查詢時,使用Order BY排序語句指定按員工編號來排序,那么排序后產生的所有記錄就是臨時數據。對于這些臨時數據,Oracle數據庫是如何處理的呢?

通常情況下,Oracle數據庫會先將這些臨時數據存放到內存的PGA(程序全局區)內。在這個程序全局區中有一個叫做排序區的地方,專門用來存放這些因為排序操作而產生的臨時數據。但是這個分區的容量是有限的。當這個分區的大小不足以容納排序后所產生的記錄時,數據庫系統就會將臨時數據存放到臨時表空間中。這就是臨時表空間的來歷。看起來好像這個臨時表空間是個臨時工,對于數據庫的影響不會有多大。其實大家這是誤解這個臨時表空間了。在用戶進行數據庫操作時,排序、分組匯總、索引這些作業是少不了,其會產生大量的臨時數據。為此基本上每個數據庫都需要用到臨時表空間。而如果這個臨時表空間設置不當的話,則會給數據庫性能帶來很大的負面影響。為此管理員在維護這個臨時表空間的時候,不能夠掉以輕心。要避免因為臨時表空間設置不當影響數據庫的性能。具體來說,主要需要注意如下幾個方面的內容。

一、創建用戶時要記得為用戶創建臨時表空間。

最好在創建用戶時為用戶指定臨時表空間。如可以利用語句default temporary table space語句來為數據庫設置默認的臨時表空間。不過在Oracle數據庫中這個不是強制的。但是筆者強烈建議這么做。因為如果沒有為用戶指定默認臨時表空間的話,那么當這個用戶因為排序等操作需要使用到臨時表空間的話,數據庫系統就會“自作聰明”的利用系統表空間SYSTEM來創建臨時段。眾所周知,這是一個系統表空間。由于在這個表空間中存放著系統運行相關的數據,一般的建議是用戶的數據不能夠保存在這個表空間中。那么如果將用戶的臨時表空間防止在這個系統表空間之內,會產生什么負面影響呢?

由于臨時表空間中的數據是臨時的。為此數據庫系統需要頻繁的分配和釋放臨時段。這些頻繁的操作會在系統表空間中產生大量的存儲碎片。當這些存儲碎片比較多時,就會影響系統讀取硬盤的效率,從而影響數據庫的性能。其次系統表空間的大小往往是有限制的。此時臨時段也來插一腳,就會占用系統表空間的大小。

為此數據庫管理員需要注意一點,當沒有為用戶指定臨時表空間時,用戶排序等操作仍然需要用到臨時段。此時數據庫系統就會將臨時段放入到系統表空間中。為此就會對數據庫的性能產生不利的影響。所以筆者建議各位讀者與數據庫管理員,在創建用戶的時候同時為用戶指定一個默認的表空間,以減少臨時段對系統表空間的占用。

二、合理設置PGA,減少臨時表空間使用的幾率。

當排序操作產生臨時數據時,數據庫并不是馬上將其存儲在臨時表空間中。通常情況下,會先將這些臨時數據存儲在內存的PGA程序全局區內。只有當這個程序全局區無法容納全部數據時,數據庫系統才會啟用臨時表空間中的臨時段來保存這些數據。但是眾所周知,操作系統從內存中讀取數據要比從硬盤中讀取數據塊幾千倍。為此比較理想的情況是,這個程序全局區足夠的大,可以容納所有的臨時數據。此時數據庫系統就永遠用不到臨時表空間了。從而可以提高數據庫的性能。

但是這畢竟只是一個理想。由于內存大小等多方面的限制,這個PGA程序區的大小往往是有限制的。所以在進行一些大型的排序操作時,這個臨時表空間仍然少不了。現在數據庫管理員可以做的就是合理設置這個PGA程序全局區的大小,盡量減少臨時表空間使用的幾率。如在實際工作中,數據庫管理員可以根據需要來設置初始化參數SORT_AREA_SIZE參數。這個參數主要控制這個PGA程序全局區內排序區的大小。通常情況下,如果這個數據庫系統主要用來查詢并且需要大量的排序、分組匯總、索引等操作時,那么可以適當調整這個參數,來擴大PGA分區的大小。相反,如果這個系統主要用于更新操作,或者在這個數據庫服務器上還部署由其他的應用程序,那么這個PGA分區就不能夠占用太多的內存,以防止對其他應用程序產生不利的影響。所以說,數據庫官員不能夠一刀切,需要根據實際情況來調整。在必要的情況下,可以增加系統內存來增加PGA分區的大小,從而降低臨時表空間的使用幾率,以提高數據庫的排序、分組匯總等操作的性能。

總之,如果臨時段被頻繁使用的話,由于內存與硬盤在性能上的差異,從而會降低數據庫的性能。為此在平時工作中,數據庫管理員還需要監控臨時表空間的使用情況,以判斷是否需要采取措施來減少臨時表空間的使用來提高數據庫的查詢性能。為了實現這個目的,筆者建議數據庫管理員可以查看v$sort_segment這張動態性能視圖。通過這張動態性能視圖可以查看系統排序段(臨時段的一種)的使用情況。另外通過動態性能視圖v$sort_usage還可以查詢使用排序段的用戶與會話信息。從而為數據庫管理員優化數據庫性能提供數據上的支持。對于這個排序段,筆者還要說明一點。對于排序段來說,同一個例程的所有SQL語句(如果需要排序操作的話)都將共享同一個排序段。并且排序段在第一次需要用到時被創建。排序完成后這個排序段不會被釋放,只有在這個歷程關閉后排序段才會被釋放。為此以上兩張視圖要綜合起來分析,才能夠得到數據庫管理員想要的信息。

三、要為臨時表空間保留足夠的硬盤空間。

其他表空間對應的數據文件,在其創建時就會被完全分配和初始化,即在其創建時就會被分配存儲空間。但是臨時表空間對應的臨時文件則不同。如在Linux操作系統中,臨時表空間創建時系統是不會分配和初始化臨時文件的。也就是說,不會為臨時文件分配存儲空間。只有臨時數據出現需要用到臨時文件的時候,系統才會在硬盤上分配一塊地方用來保存臨時文件。此時就可能會產生一個問題,即當需要用到臨時文件系統為其分配空間的時候,才會先系統分區中沒有足夠的存儲空間了。此時就會產生一些難以預料的后果。

為此對于這些臨時文件,數據庫管理員最好能夠預先為其保留足夠的空間。如在Linux操作系統中,可以將其防止在一個獨立的分區內,不允許其他應用程序使用。如此的話,就不用擔心臨時文件沒有地方存儲了。另外由于臨時表空間主要用來存放一些排序用的臨時文件。為此如果能夠將這個臨時表空間存放在性能比較好的分區中,還可以提高數據庫系統讀取臨時表空間中數據的速度。另外由于系統需要頻繁分配臨時表空間中的數據,為此臨時表空間所在的分區會出現比較多的碎片。此時如果將臨時表空間存放在一個獨立的分區內,那么數據庫管理員就可以單獨對這個分區進行碎片整理,從而提高這個分區的性能。所以無論出于什么原因,將臨時表空間防止在一個獨立的分區內,是一個不錯的想法。不僅可以保證臨時文件有存儲的空間,而且還可以提高數據庫的性能。

對于臨時表空間最后需要說明的是,默認情況下這個臨時表空間對各個用戶都是共享的。也就是說每個連接到數據庫的用戶都可以使用默認的臨時表空間。數據庫管理員可以為其指定其他的臨時表空間。一般來說,只需要一個臨時表空間即可。

【編輯推薦】

  1. 創建Oracle數據庫索引的三個標準
  2. 詳解Oracle數據庫中文全文索引(1)
  3. Oracle數據庫中如何選擇合適的索引類型
  4. Oracle中建立索引并強制優化器使用(1)
  5. Oracle數據庫開發經驗淺談
責任編輯:冰荷 來源: it168
相關推薦

2009-05-14 13:36:11

Oracle表空間優化

2023-12-10 20:37:48

Kafka數據庫工具

2009-06-30 15:02:41

磁盤排序Oracle數據庫性能

2023-04-13 08:25:03

2011-05-26 09:08:31

Oracle數據庫

2010-06-17 12:59:07

Oracle

2022-10-19 21:24:24

臨時表空間Oracle

2011-08-05 12:44:57

Oracle數據庫表空間

2010-03-24 09:42:12

Oracle數據庫

2011-03-25 10:26:34

Oracle數據庫管理表空間

2011-08-23 11:09:36

Oraclerman恢復system表空間恢復

2020-12-10 09:41:15

ZabbixOracle數據庫

2011-07-04 10:33:45

臨時表空間排序

2022-01-26 07:18:57

oracle臨時表空間數據庫

2010-04-02 18:01:39

Oracle清理

2011-05-20 10:30:20

ORACLE數據庫性能優化

2011-05-18 09:39:19

Oracle數據庫性能優化

2019-03-18 13:20:14

多云云平臺云計算

2010-05-10 15:50:39

Oracle數據庫性能

2010-09-08 16:03:57

SQL臨時表數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品久久久久久久久久小网站 | 日本免费一区二区三区四区 | 色偷偷噜噜噜亚洲男人 | 欧美日韩在线看 | 亚洲国产高清高潮精品美女 | 精品无码久久久久久久动漫 | 日日碰狠狠躁久久躁婷婷 | 久久久久久久久毛片 | 精品1区 | 一区二区三区高清 | 日本高清精品 | 九九在线精品视频 | 成人午夜在线视频 | 国产精品久久久久久久7电影 | 国产精品久久av | 中文字幕视频三区 | 国产激情在线 | 另类视频在线 | 天天碰夜夜操 | 欧美在线一区二区三区 | 在线免费看91 | 欧一区| 日韩在线免费视频 | 国产精品视频一区二区三区四蜜臂 | 日韩在线视频免费观看 | 国产日韩欧美精品一区二区三区 | 一区在线视频 | 亚洲欧美日韩在线 | 久久久久久久久国产成人免费 | 欧美精品福利 | 国产丝袜一区二区三区免费视频 | 欧美日韩在线高清 | 免费观看一级特黄欧美大片 | 一区二区三区精品在线 | 亚洲区一 | 精品综合久久 | 国产日韩精品一区二区 | 国产99久久精品一区二区永久免费 | 日操夜操 | www97影院| 中日字幕大片在线播放 |