服务器进程--spid

大部分系统都表示server process在OS层面的process ID==操作系统进程ID;

数据库进程--这里用Oracle做例子 pid

这里可以理解为Oracle自己用的,Oracle进程的ID;

还有一个session标识,我们这里一般称为sid;

下边在看一下几个试图,能更清楚的理解这些。

v$process视图:

v$process视图包含当前系统oracle运行的所有进程信息。常被用于将oracle或服务进程的操作系统进程ID与数据库session之间建立联系。

常用列:

ADDR:进程对象地址

PID:oracle进程ID

SPID:操作系统进程ID

V$PROCESS中的连接列

Column View Joined Column(s)

ADDR V$SESSION PADDR

v$session视图

V$SESSION是基础信息视图,用于找寻用户SID或SADDR。不过,它也有一些列会动态的变化,可用于检查用户。

常用列:

SID:SESSION标识,常用于连接其它列

SERIAL#:如果某个SID又被其它的session使用的话则此数值自增加(当一个SESSION结束,另一个SESSION开始并使用了同一个SID)。

AUDSID:审查session ID唯一性,确认它通常也用于当寻找并行查询模式

USERNAME:当前session在oracle中的用户名。

STATUS:这列用来判断session状态是:

Achtive:正执行SQL语句(waiting for/using a resource)

Inactive:等待操作(即等待需要执行的SQL语句)

Killed:被标注为删除

paddr, process addr, 通过这个字段我们可以查看当前进程的相关信息, 系统进程id,操作系统用户信息等等.

(sql_address,sql_hash_value) (prev_sql_addr,prev_hash_value) 根据这两组字段, 我们可以查询到当前session正在执行的sql语句的详细

信息.

v$sqltext视图

v$sqltext视图包括Shared pool中SQL语句的完整文本,一条SQL语句可能分成多个块被保存于多个记录内。

常用列:

HASH_VALUE:SQL语句的Hash值

ADDRESS:sql语句在SGA中的地址

SQL_TEXT:SQL文本。

PIECE:SQL语句块的序号

V$SQLTEXT中的连接列

Column View Joined Column(s)

HASH_VALUE, ADDRESS V$SQL, V$SESSION HASH_VALUE, ADDRESS

HASH_VALUE. ADDRESS V$SESSION SQL_HASH_VALUE, SQL_ADDRESS

按pid查看正在执行的程序:

select sid,program from v$session b where paddr in (select addr from v$process where spid=$pid);

按pid查看正在执行的sql语句

select sql_text from v$sqltext where hash_value in (select sql_hash_value from v$session where

PADDR in (select addr from v"$process where spid=$pid)) order by piece;

V$SESSION_WAIT视图

这是一个寻找性能瓶颈的关键视图。它提供了任何情况下session在数据库中当前正在等待什么(如果session当前什么也没在做,则显示它最后的等待事件)。当系统存在性能问题时,本视图可以做为一个起点指明探寻问题的方向。

V$SESSION_WAIT中,每一个连接到实例的session都对应一条记录。

常用列:

SID: session标识

EVENT: session当前等待的事件,或者最后一次等待事件。

WAIT_TIME: session等待事件的时间(单位,百分之一秒)如果本列为0,说明session当前session还未有任何等待。

SEQ#: session等待事件将触发其值自增长

P1, P2, P3: 等待事件中等待的详细资料

P1TEXT, P2TEXT, P3TEXT: 解释说明p1,p2,p3事件

附注:

1.State字段有四种含义﹕

Waiting:SESSION正等待这个事件。

Waited unknown time:由于设置了timed_statistics值为false,导致不能得到时间信息。表示发生了等待,但时间

很短

Wait short time:表示发生了等待,但由于时间非常短不超过一个时间单位,所以没有记录。

Waited knnow time:如果session等待然后得到了所需资源,那么将从waiting进入本状态。

Wait_time值也有四种含义:

值>0:最后一次等待时间(单位:10ms),当前未在等待状态。

值=0:session正在等待当前的事件。

值=-1:最后一次等待时间小于1个统计单位,当前未在等待状态。

值=-2:时间统计状态未置为可用,当前未在等待状态。

3.Wait_time和Second_in_wait字段值与state相关:

如果state值为Waiting,那么wait_time值无用。Second_in_wait值是实际的等待时间(单位:秒)。

如果state值为Wait unknow time,那么wait_time值和Second_in_wait值都无用。

如果state值为Wait short time,那么wait_time值和Second_in_wait值都无用。

如果state值为Waiting known time,那么wait_time值就是实际等待时间(单位:秒),Second_in_wait值无用。

V$SESSION_WAIT中的连接列

Column View Joined Colum

SID V$SESSION SID

查看session等待事件:

select sid,event from v$session_wait where event not like ’rdbms%’ and event not like ’SQLNet message%’;

多数的session都是空闲事件如:SQLNet message from client, pipe get, PMON timer等.收起

oracle多线程类连接数,数据库连接数,服务器进程,线程之间什么关系?相关推荐

  1. 进程线程及堆栈关系的总结

    进程线程及堆栈关系的总结 突然想到进程的栈和线程的栈,就顺便说一下,线程的栈被自动分配到进程的内存空间中 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性. ...

  2. 域名、服务器、IP之间的关系

    文章转载自:[https://www.jianshu.com/p/c3d3f6629c13](https://www.jianshu.com/p/c3d3f6629c13) 本文主要针对域名.服务器和 ...

  3. 学校(School)主要有3大角色:学校(School),讲师(Teacher),学员(Student)。请用Python语言简要实现这些类及及其属性,以及它们之间的关系。

    学校(School)主要有3大角色:学校(School),讲师(Teacher),学员(Student). 学校可以注册学员,统计有多少学员 讲师负责讲课 学生听课,提问,学习,交学费 Teacher ...

  4. Day04 数据库设计01 ~多表之间的关系(一对一,一对多,多对多)

    前言 数据库的设计 首先需要我们了解表与表之间的关系,其次是掌握设计库的规范.今天学习的是数据库中表与表之间的关系,一对一,一对多(多对一),多对多. 一.多表之间的关系 概念:现实生活中,实体与实体 ...

  5. 服务器与项目之间的关系,项目 服务器 和数据库的关系

    项目 服务器 和数据库的关系 内容精选 换一换 华为云关系型数据库服务提供使用内网.公网和数据管理服务(Data Admin Service,简称DAS)的连接方式.VPC:虚拟私有云(Virtual ...

  6. Java大厂面试题:从 JVM 角度说进程和线程之间的关系

    下面来思考这样一个问题:为什么程序计数器.虚拟机栈和本地方法栈是线程私有的呢?为什么堆和方法区是线程共享的呢? 1.3.2 程序计数器为什么是私有的? 程序计数器主要有下面两个作用: 字节码解释器通过 ...

  7. 一文带你了解数据库隔离级别和锁之间的关系

    前言: 很多人在学习数据库知识时,往往在学习到隔离级别和数据库锁这里有一些疑问: 隔离级别和数据库锁之间有什么关联呢? 本文就和大家聊聊这两者之间的联系,希望对大家有帮助! 聊聊两者之间的联系: 在具 ...

  8. java 线程间变量共享_多线程:(五)多个线程之间共享数据

    简单的总结一下多线程共享数据的方式.其实,最重要的,是一个思想,一个面向对象的编程思想的建立. 说两点: 一.如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中 ...

  9. 网络中的计算机之间的关系,有关服务器与主机之间的关系

    局域网,是指"存在于某一个较小地理区域内的计算机网络".通常把两台以上的电脑通过各种介质(比如双绞线.同轴电缆.电话线等等,空气也算是一种介质,这就是无线网络)连接起来,这就构成了 ...

最新文章

  1. Java学习总结:51(对象序列化)
  2. python number函数_Python3 数据类型-Number
  3. 类的笔记整理__7-10__
  4. Android 是移动世界的鸭嘴兽
  5. python epoll 并发_Python语言之python并发原理(阻塞、非阻塞、epoll)
  6. atoi函数_吊打面试官 | 腾讯经典考点写代码实现atoi函数
  7. python数据分类_Python数据挖掘实践—KNN分类
  8. dijkstra算法学习
  9. 织梦自定义表单地区联动类型不可用的解决办法
  10. 垃圾回收算法与实现系列-GC 标记-清除算法
  11. Communication System--ZOJ 1409
  12. Mixtile Garage产品简介
  13. C语言实现汉诺塔【图文讲解】
  14. Drool7s 什么叫KIE和生命周期-系列03课
  15. 4场直播丨EsgynDB连接服务层、Oracle、openGauss
  16. Borderline-SMOTE算法介绍及Python实现【内附源代码】
  17. 《人月神话》阅读心得
  18. 网络编程(含 UrlConnection 发送 HTTP 请求下载文件)
  19. 丹佛大学计算机专业,丹佛大学计算机工程排名第79(2020年TFE美国排名)
  20. npm创建Vue工程【element UI】

热门文章

  1. audio标签下方有空隙的原因与解决方法
  2. My Goal For SE
  3. sql表合并,统计计算,生成总计
  4. JavaScript:window.event.srcElement(指触发事件的对象)
  5. [导入]查询锁定表中非锁定记录。
  6. python input()与raw_input()
  7. Kaggle问题总结1
  8. Git bash:初步入门(1)
  9. 关键字explicit与构造函数
  10. MATLAB——阈值分割(一)