关于锁表查询的部分SQL
2013-03-14 23:18
369 查看
查询表空间名称和大小
SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
D.TOT_GROOTTE_MB "表空间大小(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,
2),
'990.99') "使用比",
F.TOTAL_BYTES "空闲空间(M)",
F.MAX_BYTES "最大块(M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 4 DESC;
查看数据库引起锁表的SQL语句:
SELECT a.username,
a.machine,
a.program,
a.sid,
a.serial#,
a.status,
c.piece,
c.sql_text
FROM v$session a,
v$sqltext c
WHERE a.sid in
(
select distinct t2.sid
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid
)
and a.sql_address=c.address(+)
ORDER BY c.piece
查看数据库锁的情况必须要有DBA权限,可以使用一下SQL 语句:
select object_id,session_id,locked_mode from v$locked_object;
select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time;
查看被锁的表
select p.spid,a.serial#, c.object_name,b.session_id,b.oracle_username,b.os_user_name from v$process p,v$session a, v$locked_object b,all_objects c where p.addr=a.paddr and a.process=b.process and c.object_id=b.object_id ;
杀掉进程
alter system kill session 'sid,serial#';
查看连接数
select count(*) from v$session;
查看并发连接数
Select count(*) from v$session where status='ACTIVE';
查看连接的进程
SELECT sid, serial#, username, osuser FROM v$session;
查看数据库使用的裸设备
select * from dba_data_files order by file_name;
select * from dba_temp_files order by file_name;
select * from v$controlfile order by file_name;
select * from v$logfile order by file_name;
具体的方法是查询dba_data_files,dba_temp_files,v$controlfile和v$logfile看这四类文件具体占用的裸设备
查询所有用户表使用大小的前三十名
select * from (select segment_name,bytes from dba_segments where owner = USER order by bytes desc ) where rownum <= 30
以下的SQL语句列出当前数据库建立的会话情况:
select sid,serial#,username,program,machine,status
如果DBA要手工断开某个会话,则执行:
alter system kill session \’SID,SERIAL#\’;
注意,上例中SID为1到7(USERNAME列为空)的会话,是Oracle的后台进程,不要对这些会话进行任何操作。
查询表空间有那些表:
select table_name from all_tables where tablespace_name= 'TEMP';
SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
D.TOT_GROOTTE_MB "表空间大小(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,
2),
'990.99') "使用比",
F.TOTAL_BYTES "空闲空间(M)",
F.MAX_BYTES "最大块(M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 4 DESC;
查看数据库引起锁表的SQL语句:
SELECT a.username,
a.machine,
a.program,
a.sid,
a.serial#,
a.status,
c.piece,
c.sql_text
FROM v$session a,
v$sqltext c
WHERE a.sid in
(
select distinct t2.sid
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid
)
and a.sql_address=c.address(+)
ORDER BY c.piece
查看数据库锁的情况必须要有DBA权限,可以使用一下SQL 语句:
select object_id,session_id,locked_mode from v$locked_object;
select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time;
查看被锁的表
select p.spid,a.serial#, c.object_name,b.session_id,b.oracle_username,b.os_user_name from v$process p,v$session a, v$locked_object b,all_objects c where p.addr=a.paddr and a.process=b.process and c.object_id=b.object_id ;
杀掉进程
alter system kill session 'sid,serial#';
查看连接数
select count(*) from v$session;
查看并发连接数
Select count(*) from v$session where status='ACTIVE';
查看连接的进程
SELECT sid, serial#, username, osuser FROM v$session;
查看数据库使用的裸设备
select * from dba_data_files order by file_name;
select * from dba_temp_files order by file_name;
select * from v$controlfile order by file_name;
select * from v$logfile order by file_name;
具体的方法是查询dba_data_files,dba_temp_files,v$controlfile和v$logfile看这四类文件具体占用的裸设备
查询所有用户表使用大小的前三十名
select * from (select segment_name,bytes from dba_segments where owner = USER order by bytes desc ) where rownum <= 30
以下的SQL语句列出当前数据库建立的会话情况:
select sid,serial#,username,program,machine,status
如果DBA要手工断开某个会话,则执行:
alter system kill session \’SID,SERIAL#\’;
注意,上例中SID为1到7(USERNAME列为空)的会话,是Oracle的后台进程,不要对这些会话进行任何操作。
查询表空间有那些表:
select table_name from all_tables where tablespace_name= 'TEMP';
相关文章推荐
- 关于sql字符串字段的模糊查询与字符串字段里筛选部分值的记录的解决办法
- ORACLE关于锁表查询的部分SQL
- ORACLE关于锁表查询的部分SQL
- ORACLE关于锁表查询的部分SQL
- ORACLE关于锁表查询的部分SQL
- ORACLE关于锁表查询的部分SQL
- ORACLE关于锁表查询的部分SQL
- 关于SQL模糊查询
- 关于“怎么比较两个SQL查询语句产生的结果集是否相同”搜集到的一些资料
- 关于SQL Server SQL语句查询分页数据的解决方案
- 关于PL/SQL的查询Mybatis的xml设置
- ScottGu之博客翻译-LINQ to SQL第三部分,查询数据库 (Part 3 - Querying our Database)
- pl/sql developer遇到关于查询显示的问题
- SQL Server 2012:SQL Server体系结构——一个查询的生命周期(第1部分)
- 关于sql 几种分页查询效率的存储过程
- 营配数据质量核查,关于营销mis系统与配电gis系统里面的sql语句查询,做为积累使用,下次就不用重复写同样的语句了。
- 关于Column '*' not found 解决方案 Hibernate使用SQL查询返回实体类型,即返回某个类,或实体类
- 关于SQL 分页的查询
- oracle常用sql查询语句部分集合(图文)
- 关于ms sql server 2000中的日期查询