`

几个常用的数据库操作以及视图

 
阅读更多

.查看表空间剩余百分比

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

 

.查看当前sessionssid,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

UNEXPIREDACTIVE两种状态的回滚段一起算上,实际现场的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定位执行对应sqlOracle进程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. 查看processessessions参数

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. 修改processessessions

  SQL> alter system set processes=300 scope=spfile;

  系统已更改。

  SQL> alter system set sessions=335 scope=spfile;

  系统已更改。

3. 修改processessessions值必须重启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查看下是不是因为某个表被锁而导致的。

分享到:
评论

相关推荐

    MySQL数据库:数据视图概述.pptx

    视图是从一个或者几个基本表或者视图中导出的虚拟表,是从现有基表中抽取若干子集组成用户的“专用表”,这种构造方式必须使用SQL中的SELECT语句来实现。一个原始表,根据不同用户的不同需求,可以创建N多个不同的...

    MySQL视图简介及基本操作教程

    前言 视图是数据库系统中一种非常有用的数据库对象。MySQL 5.0 之后的版本添加了对... 存储在数据库中的查询操作 SQL 语句定义了视图的内容,列数据和行数据来自于视图查询所引用的实际表,引用视图时动态生成这些数据

    电话计费管理系统【SQLServer数据库+课程设计文档】

    四、数据库操作(SQL语言) 4.1创建电话计费管理系统 4.2创建收费信息表 4.3建立存储过程向表中插入、修改、删除数据 4.4单表查询: 4.5多表查询: 4.6嵌套查询 4.7视图 五、小结 六、参考文献

    数据库操作语句大全(sql)

    数据库操作语句大全(sql) 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_...

    Sql Server 2008 数据库课设报告(图书管理系统)

    不可以只取一个表的几个字段就算创建视图。 4.索引设计 要求根据系统需求作必要的索引设计,本系统需要的聚集索引、非聚集索引、唯一索引、全文索引等。 5.数据完整性设计 根据系统需求作必要的数据完整性设计,本...

    精心整理的数据库系统概论复习题.doc

    视图是从一个或几个基本表中导出的表,它与基本表不同,是一个虚表。 联系:视图对应的数据仍然存放在导出视图的表中,视图是一个虚表。 区别:一个(或多个)基本表对应一个存储文件,视图本身不独立存储在数据库...

    数据库《小型超市管理系统》

    超市管理系统是市场上最流行的超市上常用的系统之一,它主要包含以下几个模块:系统权限的设定、原始数据录入、数据的汇总及查询等。从而,实现对进货、销售及员工信息等实现全面、动态、及时的管理。 2.1 功能及...

    达梦数据库_SQL语言手册

    修改操作的对象也可以是元组的集合,相对于面向记录的数据库语言一次只能操作一条记录来 语言的使用简化了用户的处理,提高了应用程序的运行效率 语言简洁,方便易学 语言功能强大,格式规范,表达简洁,接近英语的语法...

    数据库课程设计机票预定系统

    为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。 当人们收集了大量的数据后,应该把它们保存起来...

    MySQL数据库:表的概念.pptx

    数据库和表的创建与管理 表的概念 课程目标 表的概念 表的基本概念 在MySQL中,表是数据库中最重要、最基本的操作对象,是...虽然MySQL允许数据库和表名最长到64个字符,但名字的长度受限于所用操作系统限定的长度。

    Sybase数据库培训教材.doc

    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 ...

    数据库系统概论-第三章-关系数据库标准语言SQL.pdf

    物理结构是任意的,对用户透明 视图 从一个或几个基本表导出的表 数据库中只存放视图的定义而不存放视图对应的数据 视图是一个虚表 用户可以在视图上再定义视图 An Introduction to Database Sy 第三章 关系数据库...

    数据库复习资料选择填空简答题.doc

    答:视图是从一个或几个基本表导出的表,它与基本表不同,它是一个虚表,(2分)数据库中只存放视图的定义,而不存放视图对应的数据,这些数据存放在原来的基本表中,当基本表中的数据发生变化,从视图中查询出的...

    一款比powerdesign更好用的数据库设计工具安装包

    PDManer是一个款由国人开发的开源跨平台数据库建模工具,支持Windows,Mac,Linux等操作系统,相较于PowerDesigner,软件界面颜值高,操作简单,很容易就能上手,且是开源免费的,PDManer经历了几个阶段,由最初的...

    数据库系统由哪几部分组成.docx

    一个完整的数据库系统中包括操作系统(OS)、数据库管理系统(DBMS)、主语言系统、应用程序软件和数据库。 操作系统或汉字操作系统:操作系统是所有计算机软件的基础,在数据库系统中它起着支持DBMS及主语言系统...

    [详细完整版]数据库系统.doc

    MS SQL Server 2005 " " " "实验所需知识点准备: " "数据库系统:在计算机系统中引入数据库后的系统,其构成主要有数据库及相关硬件、数据 " "库管理系统及其 " "开发工具、应用系统、数据库管理员和用户这几个部分...

    数据库系统原理上机实验.doc

    3、实验仪器设备 1) 学生每个一台PC机 2) 已安装SQL Server环境 实验3 SQL语言—更新操作、视图、索引等操作 1、实验目的要求 1) 熟悉数据库的数据更新操作,能够使用SQL语句对数据库进行数据的插入、修改 、删除...

    mysql数据库的基本操作语法

    索引是存放在模式(schema)中的一个数据库对象,索引的作用就是提高对表的检索查询速度, 索引是通过快速访问的方法来进行快速定位数据,从而减少了对磁盘的读写操作。 索引是数据库的一个对象,它不能独立存在,...

Global site tag (gtag.js) - Google Analytics