oracle表碎片以及整理是怎樣的,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)專注于巴彥淖爾企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),成都做商城網(wǎng)站。巴彥淖爾網(wǎng)站建設(shè)公司,為巴彥淖爾等地區(qū)提供建站服務(wù)。全流程按需定制,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
確定碎片程度
SELECT table_name,
ROUND ( (blocks * 8), 2) "高水位空間 k",
ROUND ( (num_rows * avg_row_len / 1024), 2) "真實(shí)使用空間 k",
ROUND ( (blocks * 10 / 100) * 8, 2) "預(yù)留空間(pctfree) k",
ROUND (
( blocks * 8
- (num_rows * avg_row_len / 1024)
- blocks * 8 * 10 / 100),
2)
"浪費(fèi)空間 k"
FROM user_tables
WHERE temporary = 'N'
ORDER BY 5 DESC;
查看表上次收集統(tǒng)計(jì)信息時(shí)間
select table_name,last_analyzed from dba_tables where owner = 'SCHEMA_NAME';
收集整個(gè) Schema 中對(duì)象的統(tǒng)計(jì)信息
SQL> exec dbms_stats.gather_schema_stats(ownname=>'SCHEMA_NAME');
-- 整理表,不影響DML操作
SQL> alter table TABLE_NAME enable ROW MOVEMENT;--啟動(dòng)行移動(dòng)功能
SQL> alter table TABLE_NAME shrink space compact; --只整理碎片 不回收空間
-- 重置高水位,此時(shí)不能有DML操作
SQL> alter table TABLE_NAME shrink space; --整理碎片并回收空間,并調(diào)整水位線。業(yè)務(wù)少時(shí)執(zhí)行
SQL> alter table TABLE_NAME disable ROW MOVEMENT;--關(guān)閉行移動(dòng)
shrink 的優(yōu)勢(shì):
不需要重建索引。
可以在線操作。
如果系統(tǒng)業(yè)務(wù)比較繁忙,
可以先執(zhí)行shrink space compact重組數(shù)據(jù),然后在業(yè)務(wù)不忙的時(shí)候再執(zhí)行shrink space降低HWM釋放空閑數(shù)據(jù)塊。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。