oracle常用的幾個資料庫資訊查詢

2021-06-13 11:07:39 字數 3620 閱讀 6879

oracle常用的幾個資料庫資訊查詢,包括表空間、表大小、索引、分割槽、使用者、字段、連線數等資料庫資訊。

--修改表所在表空間 

select

t.owner,  t.segment_name, t.tablespace_name , 

sum(t.blocks)   

from

dba_segments t   

where

t.owner = 'user_name'   

order

byt.owner   

select

'alter

table

' || t.table_name || ' 

move

tablespace bip_ts;' 

from

user_all_tables t   

select

'alter

index

'|| index_name ||' rebuild tablespace bip_ts;' 

from

user_indexes;    

--查詢表的大小 

select

t.owner,   

t.segment_name,   

(sum

(t.blocks) * 8) / 1024 || 'm' 

ass,   

t.segment_type   

from

dba_segments t   

where

t.owner = 'user_name'   

group

byt.owner, t.segment_name, t.segment_type   

order

byt.owner, s 

desc

--檢視索引是否生效 

select

index_name, index_type, tablespace_name, table_type, status   

from

user_indexes t   

where

t.tablespace_name = 'tablespacename'   

andstatus = 'unusable'   

--查詢建表語句 

select

dbms_metadata.get_ddl('

table

','unieap_report_category') 

from

dual   

select

dbms_metadata.get_ddl('tablespace','bip_ts') 

from

dual   

--獲取授權資訊 

select

dbms_metadata.get_granted_ddl('system_grant') 

from

dual;   

--查詢表空間使用率的語句 

select

a.a1 表空間名稱,   

c.c2 型別,   

c.c3 區管理,   

b.b2 / 1024 / 1024 表空間大小m,   

(b.b2 - a.a2) / 1024 / 1024 已使用m,   

substr((b.b2 - a.a2) / b.b2 * 100, 1, 5) 利用率   

from

(select

tablespace_name a1, 

sum(nvl(bytes, 0)) a2   

from

dba_free_space   

group

bytablespace_name) a,   

(select

tablespace_name b1, 

sum(bytes) b2   

from

dba_data_files   

group

bytablespace_name) b,   

(select

tablespace_name c1, contents c2, extent_management c3   

from

dba_tablespaces) c   

where

a.a1 = b.b1   

andc.c1 = b.b1;   

--修改分割槽名 

alter

table

table_name rename partition old_partition_name 

tonew_partition_name;   

--查詢分割槽指令碼 

select

table_name ,partition_name 

from

user_tab_partitions 

where

table_name 

like

'%'   

select

table_name ,partition_name 

from

user_tab_partitions 

where

table_name 

like

'%'   

--查詢索引指令碼 

select

index_name,table_name 

from

user_indexes 

where

index_name 

like

'%'   

--檢視oracle連線使用者 

select

s.username,s.machine 

from

v$session s 

where

s.status = 'active'   

--檢視oracle最大連線數 

select

value 

from

v$parameter 

where

name

= 'processes'    

--修改最大連線數: 

alter

system 

setprocesses = 300 scope = spfile;   

--修改表字段 

alter

table

table_name 

modify

(col_name  datatype [

default

value][

null

/not

null

]);   

--給表新增字段 

alter

table

table_name 

add(col_name varchar2(32));   

--刪除表字段 

alter

table

table_name 

drop

(col_name);   

-- 清空**站 

purge recyclebin;  

oracle 資料庫幾個技巧

從 站內恢復表 flashback table 表名 to before drop 檢視表空間中各對像占用空間情況 select tablespace name 表空間,segment name 表名稱,bytes 1024 1024 mb 表大小from user segments a where...

匯出oracle整個資料庫

1 將資料庫baitest完全匯出,使用者名稱system 密碼manager 匯出du到d daochu.dmp中zhi exp system manager test file d daochu.dmp full y 2 將資料庫dao中system使用者與sys使用者的表匯出 exp syst...

Oracle資料庫常用的語法

oracle資料庫的入門 oracle的簡介 oracle資料庫基於客戶端 伺服器技術 資料庫伺服器對資料表進行最佳管理,處理多個客戶端的同一資料的併發訪問。全面地保持完整性,並控制資料庫訪問許可權等安全性要求 oracle資料庫的主要特點 支援多使用者 大事務量的事務處理 資料安全性和完整性控制 ...