8i | 9i | 10g | 11g | 12c | 13c | 18c | 19c | 21c | Muut | PL / SQL | SQL | RAC | WebLogic | Linux
Etusivu ”Artikkelit” 8i ”täällä
Oracle 8i esitteli mahdollisuuden pudottaa sarake taulukosta. Tätä ennen koko taulukko oli pudotettava. ja rakenna se uudelleen. Nyt voit merkitä sarakkeen käyttämättömäksi (looginen poisto) tai poistaa sen kokonaan (fyysinen poisto).
- Looginen poisto
- Fyysinen poisto
- huomioita
looginen poisto
Suurissa taulukoissa sarakkeen fyysinen poistaminen voi olla hyvin aikaa ja resursseja vievä. Tästä syystä voit päättää poistaa loogisesti se.
alter table table_name set unused (column_name);alter table table_name set unused (column_name1, column_name2);
Kun tämä on tehty, sarakkeet eivät enää näy käyttäjälle. Jos sinulla on myöhemmin aikaa poistaa sarakkeita fyysisesti, se voi Tee seuraavalla tavalla.
alter table table_name drop unused columns;
Suurissa taulukoissa voit vähentää kertyneiden kumoamattomien lokien määrää käyttämällä CHECKPOINT-asetusta, joka pakottaa tarkistusvalinnan määrätyn rivit on käsitelty.
DBA_UNUSED_COL_TABS
-näkymää voidaan käyttää käyttämättömien sarakkeiden määrän näyttämiseen taulukossa.
Fyysinen poisto
Sarakkeen pudottamiseksi fyysisesti voit käyttää yhtä seuraavista syntaksista sen mukaan, haluatko pudottaa yhden tai useita sarakkeita.
alter table table_name drop column column_name;alter table table_name drop (column_name1, column_name2);
pudottamalla Taulukon sarake pudottaa kaikki taulukon käyttämättömät sarakkeet samanaikaisesti.
Huomioita
Sarakkeen pudottaminen ei välttämättä lisää ylimääräistä käytettävissä olevaa vapaata tilaa lohkossa. Jos sarake on pieni, kustakin lohkosta saa vain pieniä palasia, joita ei ehkä voida käyttää uudelleen. Ainoa tapa vapauttaa se uudelleenkäyttöä varten on pöydän uudelleenrakentaminen / siirtäminen. On tehokkaampaa merkitä sarake käyttökelvottomaksi ja rakentaa sitten taulukko uudelleen. Oletusarvoisesti siirto ei ole online-toiminto.
alter table table_name set unused (column_name);alter table table_name move;
Myöhemmissä tietokantaversioissa siirto voidaan suorittaa verkossa.
alter table table_name set unused (column_name);alter table table_name move online;
Toivottavasti tämä auttaa. Terveisin Tim …
Takaisin alkuun.