培訓(xùn)啦 IT技術(shù)

表空間是什么

教培參考

教育培訓(xùn)行業(yè)知識型媒體

發(fā)布時間: 2025年05月18日 22:58

2025年【IT技術(shù)】報考條件/培訓(xùn)費用/專業(yè)咨詢 >>

IT技術(shù)報考條件是什么?IT技術(shù)培訓(xùn)費用是多少?IT技術(shù)專業(yè)課程都有哪些?

點擊咨詢
表空間是什么?表空間是數(shù)據(jù)庫的一種邏輯結(jié)構(gòu),它在物理上對應(yīng)著一個或多個數(shù)據(jù)文件。平常所講的表空間管理實際上指的是對表空間所對應(yīng)的數(shù)據(jù)文件的空間管理。

Oracle支持兩種管理方式,一種是字典管理(簡稱DMT),一種是本地管理(簡稱LMT)。這里所說的管理方式是指針對extent的管理方式。

extent也是數(shù)據(jù)庫的一種邏輯結(jié)構(gòu),它包含一定數(shù)量的、連續(xù)的Oracle塊。它是Oracle的空間分配的最小單位。針對它的管理方式就是指表空間中的extent是如何被管理的(記錄extent的free、used使用情況)。

在這兩種管理方式中,字典管理方式是Oracle遺留的一種空間管理方式,它采用數(shù)據(jù)字典表UET$、FET$來記錄表空間中extent的使用情況。

每次進(jìn)行涉及空間管理的操作時,都必須對這兩個表進(jìn)行維護(hù),其影響是顯而易見的。當(dāng)并發(fā)提高時,該表上的爭用將無法避免被提高,同時將產(chǎn)生大量的undo占用大量系統(tǒng)回滾段,而且在字典管理方式下將產(chǎn)生令人頭痛的碎片問題。

本地管理方式是從Oracle 8i開始支持的一種管理方式,也是目前Oracle強(qiáng)烈建議采用的一種方式。它不再利用數(shù)據(jù)字典表來記錄空間使用情況,取而代之的是在數(shù)據(jù)文件頭部增加一個位圖區(qū),用位圖來記錄空間的使用情況,每一個bit都代表著一個extent的使用情況。

數(shù)據(jù)庫中如果不存在dmt類型的表空間,則UET$和FET$中不再有信息。

表空間本身是和SQL語句運行效率相關(guān)的,主要包括以下幾個方面:

對于DML語句來說,如果涉及空間的擴(kuò)展,需要有個分配的過程此時,給用戶的體驗就是SQL執(zhí)行速度很慢。

從Oracle 10g開始,引入了一個等待事件“data fileinit write”來表示表空間擴(kuò)展時發(fā)生的等待。為Oracle需要將系統(tǒng)塊格式化為Oracle數(shù)據(jù)塊,然后才能提供數(shù)據(jù)庫使用。常見的優(yōu)化策略是在大規(guī)模的DML操作之前提前預(yù)分配空間的,這樣可避免臨時的空間擴(kuò)展導(dǎo)致的效率低下。

對于排序等操作,如果空間消耗較大,需要用到TEMP表空間。如果TEMP空間不足,會導(dǎo)致SQL語句執(zhí)行失敗。因此,對于TEMP表空間的使用要進(jìn)行監(jiān)控,對于耗費TEMP較大的SQL需要重點關(guān)注,并進(jìn)行重點優(yōu)化。
溫馨提示:
本文【表空間是什么】由作者教培參考提供。該文觀點僅代表作者本人,培訓(xùn)啦系信息發(fā)布平臺,僅提供信息存儲空間服務(wù),若存在侵權(quán)問題,請及時聯(lián)系管理員或作者進(jìn)行刪除。
我們采用的作品包括內(nèi)容和圖片部分來源于網(wǎng)絡(luò)用戶投稿,我們不確定投稿用戶享有完全著作權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果侵犯了您的權(quán)利,請聯(lián)系我站將及時刪除。
內(nèi)容侵權(quán)、違法和不良信息舉報
Copyright @ 2025 培訓(xùn)啦 All Rights Reserved 版權(quán)所有.