Heim  >  Artikel  >  Datenbank  >  Sortier-, Recycling- und Freigabevorgänge für Oracle-Datenbanktabellenbereiche

Sortier-, Recycling- und Freigabevorgänge für Oracle-Datenbanktabellenbereiche

WBOY
WBOYnach vorne
2022-07-18 14:16:505675Durchsuche

Dieser Artikel vermittelt Ihnen relevantes Wissen über „Oracle“ und stellt hauptsächlich Probleme im Zusammenhang mit Sortier-, Recycling- und Freigabevorgängen für Datenbanktabellenbereiche vor, einschließlich der Senkung des hohen Wasserstands des Tabellenbereichs, der Freigabe beim Löschen usw. Werfen wir einen Blick darauf Gemeinsam hoffe ich, dass es für alle hilfreich sein wird.

Sortier-, Recycling- und Freigabevorgänge für Oracle-DatenbanktabellenbereicheEmpfohlenes Tutorial: „

Oracle-Video-Tutorial

Wenn wir Oracle für Eingabetests verwenden, erstellen wir viele Testdaten, und nach dem Löschen kann der hohe Wasserstand des Tabellenbereichs immer noch nicht automatisch gesenkt werden , was zum Vorkommen von Tabellenbereichen führt. Das Vorkommen leerer Daten beeinträchtigt die Leistung des Tabellenbereichs und beansprucht außerdem zu viel Speicherplatz.

1. Reduzieren Sie den hohen Wasserstand des Tabellenbereichs.

1. Zeigen Sie den Tabellenbereich und den entsprechenden physischen Dateinamen an freigelassen werden.

2. Leeren Sie den Papierkorb

Der Code lautet wie folgt:

select 
b.file_id 物理文件号,
b.file_name 物理文件名,
b.tablespace_name 表空间,
b.bytes/1024/1024 大小M,
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024  已使用M,
substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5)  利用率 
from dba_free_space a,dba_data_files b 
where a.file_id=b.file_id 
group by b.tablespace_name,b.file_id,b.file_name,b.bytes 
order by b.tablespace_name

Löschen Sie die während des Löschvorgangs verbleibenden Daten.

3. Organisieren Sie den Tabellenbereich

Der Code lautet wie folgt:

-- 清除用户回收站
purge recyclebin;
-- 清除全库回收站
purge dba_recyclebin;

Integrieren Sie die Fragmente des Tabellenbereichs, um die Kontinuität des Tabellenbereichs zu erhöhen

4. Generieren Sie den RESIZE-Code

Der Code lautet wie folgt:

alter tablespace tablespace_name coalesce;

Nachdem der obige Code ausgeführt wurde, ein entsprechender SQL-Code für die Größenänderung des Tabellenbereichs, führen Sie zu diesem Zeitpunkt einfach den entsprechenden SQL-Code aus.

2. Beim Löschen löschen

1. Der Code lautet wie folgt:

select a.file#,a.name,a.bytes/1024/1024 CurrentMB,
ceil(HWM * a.block_size)/1024/1024 ResizeTo,
(a.bytes - HWM * a.block_size)/1024/1024 ReleaseMB,
'alter database datafile '''||a.name||''' resize '||
ceil(HWM * a.block_size/1024/1024) || 'M;' ResizeCMD
from v$datafile a,
(select file_id,max(block_id+blocks-1) HWM
from dba_extents where file_id in
(select b.file# From v$tablespace a ,v$datafile b
where a.ts#=b.ts# and a.name='tablespace_name')
group by file_id) b
where a.file# = b.file_id(+)
and (a.bytes - HWM *block_size)>0
order by 5

Zu diesem Zeitpunkt ist die Tabelle noch nicht vorhanden Rollback und ein Band kann nicht abgeschnitten werden. Wenn Sie eine Tabelle mit einem Fremdschlüssel löschen möchten, müssen Sie zuerst den Fremdschlüssel abbrechen und ihn dann löschen.

Beachten Sie, dass der Tabellenbereich nicht freigegeben wird.

2. Tabellendaten migrieren

Wenn die folgenden Fehler auftreten, können wir sie nicht nur durch die Organisation des Tabellenbereichs oder das Leeren des Papierkorbs beheben, sondern wir können den Speicherplatz auch freigeben, indem wir alle Tabellendaten im Tabellenbereich migrieren Um es in andere Tabellenbereiche freizugeben, migrieren Sie es dann zurück in den ursprünglichen Tabellenbereich.

-- 清空表数据
truncate table table_name;
-- 释放表空间
alter table table_name deallocate UNUSED KEEP 0;
Die Datei-ID im obigen Code kann durch Anzeigen des Tabellenbereichs verglichen und geändert werden. Nachdem der obige Code ausgeführt wurde, kann der entsprechende automatisch generierte SQL-Code zur Migration ausgeführt werden die Tabellendaten


Empfohlenes Tutorial: „

Oracle Video Tutorial

Das obige ist der detaillierte Inhalt vonSortier-, Recycling- und Freigabevorgänge für Oracle-Datenbanktabellenbereiche. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen