select username,sid || ',' || serial# "ID",status ,last_call_et "Last Activity"
from v$session
where username is not null
order by status desc,last_call_et desc;
الزمن من آخر اتصال للمستخدم محسوب بالدقائق :
select username,floor(last_call_et / 60) "Minutes",status
from v$session
where username is not null
order by last_call_et;
كل ال sessions مرتبة حسب زمن logon
select username
, osuser
, sid || ',' || serial# "ID"
, status
, to_char(logon_time, 'hh24:mi dd/mm/yy') login_time
, last_call_et
from v$session
where username is not null
order by login_time;
استعراض المستخدمين مع معرف نظام التشتغيل OS SID :
select s.sid || ',' || s.serial# "SID/SERIAL"
, s.username
, s.osuser
, p.spid "OS PID"
, s.program
from v$session s
, v$process p
Where s.paddr = p.addr
order by to_number(p.spid);
استعراض تعليمة SQl الحالية التي ينفذها مستخدم محدد (لا تنسى ان تكتب اسم المستخدم) :
Select sql_text
from v$sqlarea
where (address, hash_value) in
(select sql_address, sql_hash_value
from v$session
where username like '&username');
استعراض حالة ال session المرتبطة مع OS SID محدد (لاتنسى أن تحدده) وقد عرفنا سابقا كيف نستعرض OS SID
select s.username
, s.sid
, s.serial#
, p.spid
, last_call_et
, status
from V$SESSION s
, V$PROCESS p
where s.PADDR = p.ADDR
and p.spid='&pid';
استعراض open Cursor لكل مستخدم :
select sess.username
, sess.sid
, sess.serial#
, stat.value cursors
from v$sesstat stat
, v$statname sn
, v$session sess
where sess.username is not null
and sess.sid = stat.sid
and stat.statistic# = sn.statistic#
and sn.name = 'opened cursors current'
order by value;
أو
select count(hash_value) cursors
, sid
, user_name
from v$open_cursor
group by
sid
, user_name
order by
cursors;
استعراض وقت وزمن تشغيل قاعدة البيانات :
select to_char(startup_time, 'HH24:MI DD-MON-YY') "Startup time"
from v$instance;
لمعرفة حجم قاعدة البيانات (الكلي و المستخدم والمتبقي)
select round(sum(used.bytes) / 1024 / 1024 / 1024 ) || ' GB' "Database Size"
, round(sum(used.bytes) / 1024 / 1024 / 1024 ) -
round(free.p / 1024 / 1024 / 1024) || ' GB' "Used space"
, round(free.p / 1024 / 1024 / 1024) || ' GB' "Free space"
from (select bytes
from v$datafile
union all
select bytes
from v$tempfile
union all
select bytes
from v$log) used
, (select sum(bytes) as p
from dba_free_space) free
group by free.p;
استعراض توزع المعطيات والأغراض (أي المستخدمين يأخذ أعلى مساحة) :
select obj.owner "Owner"
, obj_cnt "Objects"
, decode(seg_size, NULL, 0, seg_size) "size MB"
from (select owner, count(*) obj_cnt from dba_objects group by owner) obj
, (select owner, ceil(sum(bytes)/1024/1024) seg_size
from dba_segments group by owner) seg
where obj.owner = seg.owner(+)
order by 3 desc ,2 desc, 1;
إستعراض أكبر عشرة أغراض في قاعدة البيانات :
select owner
, segment_name
, segment_type
, mb
from (
select owner
, segment_name
, segment_type
, bytes / 1024 / 1024 "MB"
from dba_segments
order by bytes desc
)
where rownum <>
لمعرفة فيما إذا كانت الجافا مثبتة في قاعدة البيانات(إذا كانت مثبتة فالنتيجة 9000'ish)
select count(*)
from all_objects
where object_type like '%JAVA%'
and owner = 'SYS';
استعراض tablespace usage :
select tsu.tablespace_name, ceil(tsu.used_mb) "size MB"
, decode(ceil(tsf.free_mb), NULL,0,ceil(tsf.free_mb)) "free MB"
, decode(100 - ceil(tsf.free_mb/tsu.used_mb*100), NULL, 100,
100 - ceil(tsf.free_mb/tsu.used_mb*100)) "% used"
from (select tablespace_name, sum(bytes)/1024/1024 used_mb
from dba_data_files group by tablespace_name union all
select tablespace_name || ' **TEMP**'
, sum(bytes)/1024/1024 used_mb
from dba_temp_files group by tablespace_name) tsu
, (select tablespace_name, sum(bytes)/1024/1024 free_mb
from dba_free_space group by tablespace_name) tsf
where tsu.tablespace_name = tsf.tablespace_name (+);
استعراض data files المحتواة في tablespace محدد (لا تنسى ان تكتب اسم tablespace) :
select file_name
, ceil(bytes / 1024 / 1024) "size MB"
from dba_data_files
where tablespace_name like '&TSNAME;
User quotas on all tablespaces
select username
, tablespace_name
, decode(max_bytes, -1, 'unlimited'
, ceil(max_bytes / 1024 / 1024) || 'M' ) "QUOTA"
from dba_ts_quotas
where tablespace_name not in ('TEMP');
استعراض جميع الاغراض في فضاء معين :
select owner
, segment_name
, segment_type
from dba_segments
where lower(tablespace_name) like lower('%&tablespace%')
order by owner, segment_name;
استعراض كل tablespace المستخدمة بواسطة مستخدم محدد :
select tablespace_name
, ceil(sum(bytes) / 1024 / 1024) "MB"
from dba_extents
where owner like '&user_id'
group by tablespace_name
order by tablespace_name;
استعراض ال segments التي اقتربت من max_extent :
select owner
, segment_type
, segment_name
, max_extents - extents as "spare"
, max_extents
from dba_segments
where owner not in ('SYS','SYSTEM')
and (max_extents - extents) <>
order by 4;
استعراض محتويات temporary tablespace(S)
select su.username
, ses.sid
, ses.serial#
, su.tablespace
, ceil((su.blocks * dt.block_size) / 1048576) MB
from v$sort_usage su
, dba_tablespaces dt
, v$session ses
where su.tablespace = dt.tablespace_name
and su.session_addr = ses.saddr
للبحث عن غرض ما (حدد الغرض ) :
select owner
, object_name
, object_type
from dba_objects
where lower(object_name) like lower('%&object%')
order by owner, object_type, object_name;
استعراض invalid objects
select owner || '.' || object_name "obj",
object_type
from dba_objects
where status = 'INVALID';
استعرض حجم غرض محدد :
select segment_name
, bytes "SIZE_BYTES"
, ceil(bytes / 1024 / 1024) "SIZE_MB"
from dba_segments
where segment_name like '&obj_name'
كل الأغراض التابعة لمستخدم محدد :
select object_name
, object_type
from dba_objects
where owner = '&user'
order by object_type, object_name
استعرض كل الجداول التي تحتوي على عمود محدد :
elect owner || '.' || table_name as tab
, column_name
from dba_tab_columns
where column_name like upper('&col')
استعراض جميع الاغراض المملوكة لمستخدم محدد مرتبة حسب الحجم :
select segment_name
, ceil(sum(bytes) / 1024 / 1024) "MB"
from dba_segments
where owner like '&user'
and segment_type = 'TABLE'
group by segment_name
order by ceil(sum(bytes) / 1024 / 1024) desc
عرض الجلسات التي تعيق كل منها الأخرى :
select 'SID ' || l1.sid ||' is blocking ' || l2.sid blocking
from v$lock l1, v$lock l2
where l1.block =1 and l2.request > 0
and l1.id1=l2.id1
and l1.id2=l2.id2;
استعراض المستخدمين :
select username
, account_status status
, created
, default_tablespace tablespace
, temporary_tablespace temp_ts
from dba_users
order by username;
فتح أو إغلاق مستخدم :
alter user
alter user
استعراض datafiles,tempfiles,logfiles وأحجامهم :
select name, bytes
from (select name, bytes
from v$datafile
union all
select name, bytes
from v$tempfile
union all
select lf.member "name", l.bytes
from v$logfile lf
, v$log l
where lf.group# = l.group#
union all
select name, 0
from v$controlfile) used
, (select sum(bytes) as p
from dba_free_space) free;
الفحص السريع لحالة datafiles :
select distinct status from v$datafile
إظهار المجلدات التي تحوي ال datafiles في UNIX:
select distinct substr(name, 1, instr(name, '/', -1)) DIR
from v$datafile
order by 1;
إظهار المجلدات التي تحوي ال datafiles في windows:
select distinct substr(name, 1, instr(name, '\', -1)) DIR
from v$datafile
order by 1;
استعراض ال datafiles القابلة للتوسع الآلي :
select file_name
from dba_data_files
where autoextensible = 'YES';
استعراض control files :
select name
from v$controlfile
استعراض جميع الملفات التي في حالة hot-backup :
select df.name
, b.status
, to_char(time, 'hh24:mi:ss dd/mm/yyyy') time
from v$datafile df
, v$backup b
where df.file# = b.file#
and b.status = 'ACTIVE'
order by b.file#;
لمعرفة السنة الكبيسة (LEAP)
select &year,decode( mod(&year, 4), 0,
decode( mod(&year, 400), 0, 'Leap Year',
decode( mod(&year, 100), 0, 'Not a Leap Year', 'Leap Year')
), 'Not a Leap Year'
) as leap_year_indicator
from DUAL;
لتحويل الرقم إلى كلمه
select decode( sign( &num ), -1, 'Negative ', 0, 'Zero', NULL ) ||decode( sign( abs(&num) ), +1, to_char( to_date( abs(&num),'J'),'Jsp') )
from dual;
لمعرفة معلومات حول قاعدة البيانات الحالية زالمستخدم الحالي
select 'User: '|| user || ' on database ' || global_name,
' (term='||USERENV('TERMINAL')||
', audsid='||USERENV('SESSIONID')||')' as MYCONTEXT
from global_name;
لمعرفة إصدار قاعدة البيانات مع الخيارات المثبتة :
select bannerfrom sys.v_$version;
select ' With the '||parameter||' option'
from sys.v_$option
where value = 'TRUE';
select ' The '||parameter||' option is not installed'
from sys.v_$option
where value <> 'TRUE';
begindbms_output.put_line('Port String: '||dbms_utility.port_string);
end;/
ليست هناك تعليقات:
إرسال تعليق