查詢當前連線數:
select count(*) from v$session
select username, machine, program, status, count (machine) as
連線數量
from v$session where username = 'cotsdev'
group by username, machine, program, status
order by machine;
查詢表空間使用情況
select a.tablespace_name,a.bytes/1024/1024 "sum mb",
(a.bytes-b.bytes)/1024/1024 "used mb",b.bytes/1024/1024 "free mb",
round (((a.bytes-b.bytes)/a.bytes)*100,2) "used%" from
(select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a,
(select tablespace_name,sum(bytes) bytes,max (bytes) largest from dba_free_space group by tablespace_name)b
where a.tablespace_name=b.tablespace_name
order by ((a.bytes-b.bytes)/a.bytes) desc;
oracle使用者資源配額
第一步: -- 在建立使用者的時候,就指定使用者在特定表空間上的配額
create user user_name_*** identified by pwd_***xx default tablespace users(表空間) temporary tablespace temp(臨時表空間) quota 200g on users;
第二步:/* 檢視使用者表空間的限額 max_bytes欄位就是了 */
select * from user_ts_quotas;
select tablespace_name,username,bytes/1024,max_bytes/1024/1024 from dba_ts_quotas;
select * from dba_ts_quotas;
(其他輔助操作)
--不對使用者做表空間限額控制(全域性性的. 即修改使用者多所有表空間的配額):
grant unlimited tablespace to ***x;
--針對使用者的某個特定的表空間
alter user *** quota unlimited on ***;
--**使用者對錶空間的配額(全域性):
revoke unlimited tablespace from ***;
--**特定表空間的配額
alter user ***xx quota 0 on ******;
--oracle怎麼查詢表空間所在的路徑
select
max(b.file_id) id,
b.tablespace_name 表空間,
b.file_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_name, b.bytes
order by b.tablespace_name;
--查詢表空間
select
max(b.file_id) id,
b.tablespace_name 表空間,
b.file_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_name, b.bytes
order by b.tablespace_name;
鎖表查詢 kill
select s.sid,
s.serial#,
s.username,
decode(l.type, 'tm', 'table lock', 'tx', 'row lock', null) lock_level,
o.owner,
o.object_name,
o.object_type,
s.terminal,
s.machine,
s.logon_time,
s.program,
s.osuser
from v$session s, v$lock l, dba_objects o
where l.sid = s.sid
and l.id1 = o.object_id(+)
and s.username is not null;
alter system kill session '96,1903';
oracle 常用指令碼
substr 取得字串中指定起始位置和長度的字串 instr 判斷其是否含有指定的字元 replace 替換字元 create table table 1 as select from table 2 where 1 0 建表只複製表結構 表新增預設值 alter table table 1 mod...
ORACLE 常用指令碼
ifelse declare v num number begin v num 100 if v num 100 then elsif v num 50 then else end if end 帶引數儲存過程 create or replace procedure delete subscribe...
ORACLE 常用管理指令碼
1 表空間統計 a 指令碼說明 這是我最常用的乙個指令碼,用它可以顯示出資料庫中所有表空間的狀態,如表空間的大小 已使用空間 使用的百分比 空閒空間數及現在表空間的最大塊是多大。b 指令碼原文 select upper f.tablespace name 表空間名 d.tot grootte mb ...