一.查看表空间剩余百分比
SELECT tablespace_name, TO_CHAR
(100*sum_free_blocks/sum_alloc_blocks, '999.99')
AS percent_free
FROM
(SELECT tablespace_name, SUM(blocks)
AS sum_alloc_blocks
FROM dba_data_files
GROUP BY tablespace_name),
(SELECT tablespace_name
AS fs_ts_name,MAX(blocks)
AS max_blocks,
COUNT(blocks)
AS count_blocks, SUM(blocks) AS sum_free_blocks
FROM dba_free_space
GROUP BY tablespace_name)
WHERE tablespace_name = fs_ts_name
ORDER BY percent_free DESC;
涉及的视图有:dba_free_space dba_data_files
二.查看当前sessions的sid,pid,以及serial#等
select p.pid, p.spid, s.sid, s.serial# from v$session s,v$process p
where s.sid = (select sid from v$mystat where rownum = 1) and p.addr = s.paddr
涉及的视图有:v$session v$process v$mystat
三.查看回滚段与数据段信息的一些SQL
1.系统实际UNDO表空间占用率可以使用如下语句来计算。
select ((select (nvl(sum(bytes),0)) from dba_undo_extents where tablespace_name ='UNDOTBS1' and status in ('ACTIVE','UNEXPIRED')) *100) / (select sum(bytes) from dba_data_files where tablespace_name='UNDOTBS1') "PCT_INUSE" from dual;
PCT_INUSE
----------
27.575
将UNEXPIRED,ACTIVE两种状态的回滚段一起算上,实际现场的UNDO占用率为27.575%。
2.查看表空间的使用情况
SELECT A.TABLESPACE_NAME,A.BYTES/1024/1024 TOTAL,B.BYTES/1024/1024 USED, C.BYTES/1024/1024 FREE,
(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;
3.查看回滚段的状况
select rownum, sys.dba_rollback_segs.segment_name Name, v$rollstat.extents
Extents, v$rollstat.rssize Size_in_Bytes, v$rollstat.xacts XActs,
v$rollstat.gets Gets, v$rollstat.waits Waits, v$rollstat.writes Writes,
sys.dba_rollback_segs.status status
from v$rollstat, sys.dba_rollback_segs, v$rollname
where v$rollname.name(+) = sys.dba_rollback_segs.segment_name and
v$rollstat.usn (+) = v$rollname.usn order by rownum;
4.查看数据段的信息
select * from dba_segments where tablespace_name ='UNDOTBS1'
相关视图:
select * from dba_rollback_segs
select * from v$rollstat
select * from v$rollname
select * from dba_undo_extents
select * from dba_segments where tablespace_name ='UNDOTBS1'
涉及的视图有:dba_rollback_segs v$rollstat v$rollname dba_undo_extents dba_segments
4.定位高耗资源的SQL
select sql_text,
sharable_mem,persistent_mem,runtime_mem,
sorts,
users_opening,
executions,
loads,
parse_calls,
disk_reads,buffer_gets,rows_processed,
optimizer_mode,address,hash_value
from v$sql
order by disk_reads desc;
根据上述语句的输出的sql_text定位执行对应sql的Oracle进程ID:
select a.sid,a.osuser "程序用户",a.process "程序ID",
a.username "ORA用户" ,a.terminal "P终端",
b.spid "后台ID",b.username "后台用户",
b.terminal "B终端"
from v$session a,v$process b
where a.paddr = b.addr and (a.sql_address,a.sql_hash_value) in (
select address,hash_value from v$sqltext where
upper(sql_text) like '%ZXDBM_ISMP.SYNC_TASK%'
)
'%ZXDBM_ISMP.SYNC_TASK%' 部分使用第一个sql查询出来的sql_text代替;
查询结果中的spid "后台ID" 就是执行该sql对应的oracle进程的pid(oracle服务器上的oracle进程)。如果确认高耗资源的sql可以中止执行以释放系统资源,需要在数据库服务器上使用oracle用户将查询出来的spid 杀掉(kill -9 spid)。如果高耗资源的sql执行了表的增、删、改操作,也需要kill掉对应的oracle后台进程以释放这些表的锁资源;
涉及的视图有:v$sql v$session v$process v$sqltext
五.修改数据库的连接数
修改Oracle数据库的连接数
1. 查看processes和sessions参数
SQL> show parameter processes
NAME TYPE VALUE
db_writer_processes integer 1
gcs_server_processes integer 0
job_queue_processes integer 10
log_archive_max_processes integer 2
processes integer 50
SQL> show parameter sessions
NAME TYPE VALUE
license_max_sessions integer 0
license_sessions_warning integer 0
logmnr_max_persistent_sessions integer 1
sessions integer 60
shared_server_sessions integer
2. 修改processes和sessions值
SQL> alter system set processes=300 scope=spfile;
系统已更改。
SQL> alter system set sessions=335 scope=spfile;
系统已更改。
3. 修改processes和sessions值必须重启oracle服务器才能生效
ORACLE的连接数(sessions)与其参数文件中的进程数(process)有关,它们的关系如下:
sessions=(1.1*process+5)
查询数据库当前进程的连接数:
select count(*) from v$process;
查看数据库当前会话的连接数:
select count(*) from v$session;
查看数据库的并发连接数:
select count(*) from v$session where status='ACTIVE';
查看当前数据库建立的会话情况:
select sid,serial#,username,program,machine,status from v$session;
查询数据库允许的最大连接数:
select value from v$parameter where name = 'processes';
或者:show parameter processes;
修改数据库允许的最大连接数:
alter system set processes = 300 scope = spfile;
(需要重启数据库才能实现连接数的修改)
重启数据库:
shutdown immediate;
startup;
查看当前有哪些用户正在使用数据:
select osuser,a.username,cpu_time/executions/1000000||'s',sql_fulltext,machine
from v$session a,v$sqlarea b
where a.sql_address = b.address
order by cpu_time/executions desc;
备注:UNIX 1个用户session对应一个操作系统process,而Windows体现在线程。
启动oracle
su - oracle
sqlplus system/pwd as sysdba //进入sql
startup //启动数据库
lsnrctl start //启动监听
sqlplus "/as sysdba"
shutdown immediate;
startup mount;
alter database open;
6.查询数据库对象锁定的情况
--查看某个表被谁锁定
select t2.username, t2.sid, t2.serial#, t2.logon_time, t3.object_name
from v$locked_object t1, v$session t2, dba_objects t3
where t1.session_id = t2.sid
and t1.object_id = t3.object_id
order by t2.logon_time;
--杀掉进程
alter system kill session 'sid,serial#'; ---sid,serial#对应上面语句查出的value
涉及的视图有:v$locked_object v$session dba_objects
锁的情况在测试环境中出现了很多次了,建议每次业务由通变成不通时,用这个SQL查看下是不是因为某个表被锁而导致的。
相关推荐
视图是从一个或者几个基本表或者视图中导出的虚拟表,是从现有基表中抽取若干子集组成用户的“专用表”,这种构造方式必须使用SQL中的SELECT语句来实现。一个原始表,根据不同用户的不同需求,可以创建N多个不同的...
前言 视图是数据库系统中一种非常有用的数据库对象。MySQL 5.0 之后的版本添加了对... 存储在数据库中的查询操作 SQL 语句定义了视图的内容,列数据和行数据来自于视图查询所引用的实际表,引用视图时动态生成这些数据
四、数据库操作(SQL语言) 4.1创建电话计费管理系统 4.2创建收费信息表 4.3建立存储过程向表中插入、修改、删除数据 4.4单表查询: 4.5多表查询: 4.6嵌套查询 4.7视图 五、小结 六、参考文献
数据库操作语句大全(sql) 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_...
不可以只取一个表的几个字段就算创建视图。 4.索引设计 要求根据系统需求作必要的索引设计,本系统需要的聚集索引、非聚集索引、唯一索引、全文索引等。 5.数据完整性设计 根据系统需求作必要的数据完整性设计,本...
视图是从一个或几个基本表中导出的表,它与基本表不同,是一个虚表。 联系:视图对应的数据仍然存放在导出视图的表中,视图是一个虚表。 区别:一个(或多个)基本表对应一个存储文件,视图本身不独立存储在数据库...
超市管理系统是市场上最流行的超市上常用的系统之一,它主要包含以下几个模块:系统权限的设定、原始数据录入、数据的汇总及查询等。从而,实现对进货、销售及员工信息等实现全面、动态、及时的管理。 2.1 功能及...
修改操作的对象也可以是元组的集合,相对于面向记录的数据库语言一次只能操作一条记录来 语言的使用简化了用户的处理,提高了应用程序的运行效率 语言简洁,方便易学 语言功能强大,格式规范,表达简洁,接近英语的语法...
为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。 当人们收集了大量的数据后,应该把它们保存起来...
数据库和表的创建与管理 表的概念 课程目标 表的概念 表的基本概念 在MySQL中,表是数据库中最重要、最基本的操作对象,是...虽然MySQL允许数据库和表名最长到64个字符,但名字的长度受限于所用操作系统限定的长度。
6.3 数据库操作授权 37 第7章 数据库备份与恢复 39 7.1 系统软件故障恢复 39 7.2 介质故障的恢复 39 第8章 几个实用程序 44 8.1 bcp 44 8.2 isql 44 8.3 showserver 45 8.4 startserver 45 8.5 syman 45 8.6 dbcc ...
物理结构是任意的,对用户透明 视图 从一个或几个基本表导出的表 数据库中只存放视图的定义而不存放视图对应的数据 视图是一个虚表 用户可以在视图上再定义视图 An Introduction to Database Sy 第三章 关系数据库...
答:视图是从一个或几个基本表导出的表,它与基本表不同,它是一个虚表,(2分)数据库中只存放视图的定义,而不存放视图对应的数据,这些数据存放在原来的基本表中,当基本表中的数据发生变化,从视图中查询出的...
PDManer是一个款由国人开发的开源跨平台数据库建模工具,支持Windows,Mac,Linux等操作系统,相较于PowerDesigner,软件界面颜值高,操作简单,很容易就能上手,且是开源免费的,PDManer经历了几个阶段,由最初的...
一个完整的数据库系统中包括操作系统(OS)、数据库管理系统(DBMS)、主语言系统、应用程序软件和数据库。 操作系统或汉字操作系统:操作系统是所有计算机软件的基础,在数据库系统中它起着支持DBMS及主语言系统...
MS SQL Server 2005 " " " "实验所需知识点准备: " "数据库系统:在计算机系统中引入数据库后的系统,其构成主要有数据库及相关硬件、数据 " "库管理系统及其 " "开发工具、应用系统、数据库管理员和用户这几个部分...
3、实验仪器设备 1) 学生每个一台PC机 2) 已安装SQL Server环境 实验3 SQL语言—更新操作、视图、索引等操作 1、实验目的要求 1) 熟悉数据库的数据更新操作,能够使用SQL语句对数据库进行数据的插入、修改 、删除...
索引是存放在模式(schema)中的一个数据库对象,索引的作用就是提高对表的检索查询速度, 索引是通过快速访问的方法来进行快速定位数据,从而减少了对磁盘的读写操作。 索引是数据库的一个对象,它不能独立存在,...