批量更改ORACLE中表 索引的表空間

2021-09-26 15:07:14 字數 1480 閱讀 3646

oracle中表、索引的表空間的批量更改方法

1、查詢當前使用者下的所有表

select 'alter table '|| table_name ||' move tablespace tablespacename;' from user_all_tables;

select 'alter table '|| table_name ||' move tablespace tablespacename;' from user_tables;

2、查詢當前使用者下的所有索引

select 'alter index '|| index_name ||' rebuild tablespace tablespacename;' from user_indexes;

3、在當前使用者下將查詢結果批處理執行即可!

簡單來說,操作以下幾步:

--查詢所有的表,然後複製查詢出來的結果,執行sql

select 'alter table '||table_name||' move tablespace 表空間名;' from user_all_tables 

--查詢所有的索引,然後複製查詢出來的結果,執行sql

select 'alter index '||index_name||' rebuild tablespace 表空間名;' from user_indexes

--處理lob型別

alter table 表名 move tablespace 表空間名 lob(欄位1) store as (tablespace 表空間名)

--修改分割槽表的表空間

alter table 表名 move partition 分割槽名1 tablespace 表空間名;

alter table 表名 move partition 分割槽名2 tablespace 表空間名;

檢視所有的unusable索引

select *

from   user_indexes

where  status not in ('valid', 'n/a')

order by index_name;

-- description  : displays unusable indexes for the specified schema or all schemas.

-- requirements : access to the dba views.

-- call syntax  : @unusable_indexes (schema-name or all)

set verify off

select owner,

index_name

from   dba_indexes

where  owner = decode(upper('&1'), 'all', owner, upper('&1'))

and    status not in ('valid', 'n/a')

order by owner, index_name;

ORACLE 索引批量重建

按使用者批量重建索引 按使用者將此使用者下面非臨時表上面的索引全部重建,此過程建議在 sys使用者下面執行 create or replace procedure batch rebuild index user name in varchar2 is s sql varchar2 500 acco...

批量修改全文索引的更改跟蹤狀態

use databasename go declare sql2 nvarchar max set sql2 select sql2 sql2 n alter fulltext index on t.name set change tracking auto from sys.tables t in...

oracle中表的鎖定

鎖的概念 鎖出現在資料共享的場合,用來保證資料的一致性。當多個會話同時修改乙個表時,需要對資料進行相應的鎖定。鎖有 唯讀鎖 排它鎖 共享排它鎖 等多種型別,而且每種型別又有 行級鎖 一次鎖住一條記錄 頁級鎖 一次鎖住一頁,即資料庫中儲存記錄的最小可分配單元 表級鎖 鎖住整個表 若為 行級排它鎖 則除...