session中的增删改方法是什么(session两种实现方式)

技术如何进行session和v$session说明这期内容当中小编将会给大家带来有关如何进行session和v$session说明,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、前言

在本期中,边肖将向您介绍如何进行会话和v $会话。文章内容丰富,从专业角度进行分析和描述。希望你看完这篇文章能有所收获。

1、前言

V$session和v$process视图是数据库管理了解系统性能和分析系统原因最常用的视图,所以作为非新手DBA管理员,需要对这两个视图有充分的了解;

2、概念

首先,我们必须了解什么是会话:通俗地说,会话是沟通双方从沟通开始到沟通结束的一个语境。这个上下文是服务器端的一块内存:它记录了这次连接的客户端机器的信息,它通过了哪个应用程序,哪个用户正在登录等等。会话和连接是同时建立的,是同一事物在不同层次上的描述。简单来说,连接是客户端和服务器之间的物理通信链路,会话是用户和服务器之间的逻辑通信交互。

oracle中的用户登录oracle服务器的先决条件是该用户拥有oracle的“创建会话”权限。oracle允许同一个用户在同一个客户端上与服务器建立多个连接,这可以从Oracle的view V $ session[select * from V $ session;]。每个会话代表用户和服务器之间的交互。就像两个国家可以同时举行很多谈判,经济,环境等等。结束经济谈判不会影响环境谈判。后台进程PMON将每隔一段时间测试一次用户的连接状态。如果连接已经断开,PMON将清理现场并释放相关资源。

1.sqlplus登录到oracle

这个场景更容易理解,一个连接对应一个会话。

2.其他客户端工具登录oracle

例如:pl/sql开发人员登录到oracle。Pl/sql开发人员可以设置每个窗口是否共享同一个会话。如果要在调试窗口中调试存储过程或函数,必须将其设置为共享会话。如果设置为非共享,pl/sql developer将在每次打开操作窗口时使用初始输入的帐户和密码建立新的连接和会话。

3.IIS通过程序登录到oracle

在这种情况下,IIS实际上是登录到oracle。连接会话的建立与iis机制有关。

对于Oracle,安全会话数应为会话=(IIS进程数)*(最小池大小)

IIS进程:在IIS6.0中,采用了新的进程隔离模式来响应用户的请求。在IIS管理器中,可以设置应用程序池中进程的最大数量。对于新的WEB应用程序请求,IIS进程管理器将启动多个W3wp.exe来响应。

4.java配置连接池

当java脚本由应用程序配置时,可以配置相应的会话数量,这样当应用程序连接时,默认情况下会分配相应的会话,这些会话无论是否连接都不会被PMON清除,从而降低了数据库的开销。

3、v$session视图的说明

数据库中的所有会话都提供了对应的视图v$session,它为所有DBA提供了一个查询和管理的窗口,因此需要了解v$session的相关信息。

圆柱

数据类型

描述

解释

SADDR n

bsp;    

RAW(4 | 8)                        

Session address                        

                           

SID                        

NUMBER                        

Session identifier                        

通过这两个值来确定唯一的一个session                            

SERIAL#                        

NUMBER                        

Session serial number. Used to uniquely identify a session's objects. Guarantees that session-level commands are applied to the correct session objects if the session ends and another session begins with the same session ID.                        

AUDSID                        

NUMBER                        

Auditing session ID                        

If AUDSID=0, then it is an internally generated SYS session.  
             
If AUDSID=UB4MAX(4294967295), then it is a direct SYS session.             

PADDR                        

RAW(4 | 8)                        

Address of the process that owns the session                        

process address,关联v$processaddr字段                            

USER#                        

NUMBER                        

Oracle user identifier                        

dba_users关联                            

USERNAME                        

VARCHAR2(30)                        

Oracle username                        

dba_users                            

COMMAND                        

NUMBER                        

Command in progress (last statement parsed).                        

session正在执行的sql id1代表create table,3代表select                            

You can find the command name for any value n returned in thisCOMMAND column by running this SQL query:                        

                           

SELECT command_name                        

   FROM v$sqlcommand                        

   WHERE command_type = n;                        

                           

A value of 0 in this COMMAND column means the command is not recorded in V$SESSION.                        

OWNERID                        

NUMBER                        

Identifier of the user who owns the migratable session; the column contents are invalid if the value is 2147483644                        

                           

For operations using Parallel Slaves, interpret this value as a 4-byte value. The low-order 2 bytes represent the session number and the high-order bytes represent the instance ID of the query coordinator.                        

                           

TADDR                        

VARCHAR2(8)                        

Address of the transaction state object                        

当前的transaction address。可以用来关联v$transaction中的addr字段                            

LOCKWAIT                        

VARCHAR2(8)                        

Address of the lock the session is waiting for; NULL if none                        

 可以通过这个字段查询出当前正在等待的锁的相关信息。sid + lockwaitv$loc中的sid + kaddr相对应。                            

STATUS                        

VARCHAR2(8)                        

Status of the session:                        

用来判断session状态。Active:正执行SQL语句。inactive:等待操作。killed:被标注为杀死                            

                           

ACTIVE - Session currently executing SQL                        

INACTIVE - Session which is inactive and either has no configured limits or has not yet exceeded the configured limits                        

KILLED - Session marked to be killed                        

CACHED - Session temporarily cached for use by Oracle*XA                        

SNIPED - An inactive session that has exceeded some configured limits (for example, resource limits specified for the resource manager consumer group or idle_time specified in the user's profile). Such sessions will not be allowed to become active again.                        

                           

SERVER                        

VARCHAR2(9)                        

Server type:                        

服务类型(一般专用类型)                            

                           

DEDICATED                        

SHARED                        

PSEUDO                        

POOLED                        

NONE                        

                           

SCHEMA#                        

NUMBER                        

Schema user identifier                        

USER#一致                            

SCHEMANAME                        

VARCHAR2(30)                        

Schema user name                        

USERNAME一致                            

OSUSER                        

VARCHAR2(30)                        

Operating system client user name                        

客户端操作系统用户名                            

PROCESS                        

VARCHAR2(24)                        

Operating system client process ID                        

客户端process id                            

MACHINE                        

VARCHAR2(64)                        

Operating system machine name                        

客户端machine name                            

PORT                        

NUMBER                        

Client port number                        

客户端的端口号                            

TERMINAL                        

VARCHAR2(30)                        

Operating system terminal name                        

客户端执行的terminal name                            

PROGRAM                        

VARCHAR2(48)                        

Operating system program name                        

客户端应用程序                            

TYPE                        

VARCHAR2(10)                        

Session type                        

用户进程还是后台进程,后台进程一般不能KILL                            

SQL_ADDRESS                        

RAW(4 | 8)                        

Used with SQL_HASH_VALUE to identify the SQL statement that is currently being executed                        

                           

SQL_HASH_VALUE                        

NUMBER                        

Used with SQL_ADDRESS to identify the SQL statement that is currently being executed                        

                           

SQL_ID                        

VARCHAR2(13)                        

SQL identifier of the SQL statement that is currently being executed                        

当前被执行的SQL语句,跟v$sql关联                            

SQL_CHILD_NUMBER                        

NUMBER                        

Child number of the SQL statement that is currently being executed                        

                           

SQL_EXEC_START                        

DATE                        

Time when the execution of the SQL currently executed by this session started; NULL if SQL_ID is NULL                        

当前sql的开始运行时间                            

SQL_EXEC_ID                        

NUMBER                        

SQL execution identifier; NULL if SQL_ID is NULL or if the execution of that SQL has not yet started (see V$SQL_MONITOR)                        

                           

PREV_SQL_ADDR                        

RAW(4 | 8)                        

Used with PREV_HASH_VALUE to identify the last SQL statement executed                        

                           

PREV_HASH_VALUE                        

NUMBER                        

Used with SQL_HASH_VALUE to identify the last SQL statement executed                        

                           

PREV_SQL_ID                        

VARCHAR2(13)                        

SQL identifier of the last SQL statement executed                        

刚被执行的SQL语句,从v$sql查询相应的SQL语句                            

PREV_CHILD_NUMBER                        

NUMBER                        

Child number of the last SQL statement executed                        

                           

PREV_EXEC_START                        

DATE                        

SQL execution start of the last executed SQL statement                        

                           

PREV_EXEC_ID                        

NUMBER                        

SQL execution identifier of the last executed SQL statement                        

                           

PLSQL_ENTRY_OBJECT_ID                        

NUMBER                        

Object ID of the top-most PL/SQL subprogram on the stack; NULL if there is no PL/SQL subprogram on the stack                        

                           

PLSQL_ENTRY_SUBPROGRAM_ID                        

NUMBER                        

Subprogram ID of the top-most PL/SQL subprogram on the stack; NULL if there is no PL/SQL subprogram on the stack                        

                           

PLSQL_OBJECT_ID                        

NUMBER                        

Object ID of the currently executing PL/SQL subprogram; NULL if executing SQL                        

                           

PLSQL_SUBPROGRAM_ID                        

NUMBER                        

Subprogram ID of the currently executing PL/SQL object; NULL if executing SQL                        

                           

MODULE                        

VARCHAR2(48)                        

Name of the currently executing module as set by calling theDBMS_APPLICATION_INFO.SET_MODULE procedure                        

                           

MODULE_HASH                        

NUMBER                        

Hash value of the MODULE column                        

                           

ACTIONFootref 1                        

VARCHAR2(32)                        

Name of the currently executing action as set by calling theDBMS_APPLICATION_INFO.SET_ACTION procedure                        

                           

ACTION_HASH                        

NUMBER                        

Hash value of the ACTION column                        

                           

CLIENT_INFO                        

VARCHAR2(64)                        

Information set by the DBMS_APPLICATION_INFO.SET_CLIENT_INFOprocedure                        

                           

FIXED_TABLE_SEQUENCE                        

NUMBER                        

This contains a number that increases every time the session completes a call to the database and there has been an intervening select from a dynamic performance table. This column can be used by performance monitors to monitor statistics in the database. Each time the performance monitor looks at the database, it only needs to look at sessions that are currently active or have a higher value in this column than the highest value that the performance monitor saw the last time. All the other sessions have been idle since the last time the performance monitor looked at the database.                        

                           

ROW_WAIT_OBJ#                        

NUMBER                        

Object ID for the table containing the row specified in ROW_WAIT_ROW#                        

                           

ROW_WAIT_FILE#                        

NUMBER                        

Identifier for the datafile containing the row specified inROW_WAIT_ROW#. This column is valid only if the session is currently waiting for another transaction to commit and the value ofROW_WAIT_OBJ# is not -1.                        

                           

ROW_WAIT_BLOCK#                        

NUMBER                        

Identifier for the block containing the row specified in ROW_WAIT_ROW#. This column is valid only if the session is currently waiting for another transaction to commit and the value of ROW_WAIT_OBJ# is not -1.                        

                           

ROW_WAIT_ROW#                        

NUMBER                        

Current row being locked. This column is valid only if the session is currently waiting for another transaction to commit and the value ofROW_WAIT_OBJ# is not -1.                        

                           

TOP_LEVEL_CALL#                        

NUMBER                        

Oracle top level call number                        

                           

LOGON_TIME                        

DATE                        

Time of logon                        

                           

LAST_CALL_ET                        

NUMBER                        

If the session STATUS is currently ACTIVE, then the value represents the elapsed time (in seconds) since the session has become active.                        

                           

If the session STATUS is currently INACTIVE, then the value represents the elapsed time (in seconds) since the session has become inactive.                        

                           

PDML_ENABLED                        

VARCHAR2(3)                        

This column has been replaced by the PDML_STATUS column                        

                           

FAILOVER_TYPE                        

VARCHAR2(13)                        

Indicates whether and to what extent transparent application failover (TAF) is enabled for the session:                        

                           

                           

                           

NONE - Failover is disabled for this session                        

                           

SESSION - Client is able to fail over its session following a disconnect                        

                           

SELECT - Client is able to fail over queries in progress as well                        

                           

                           

                           

See Also:                        

                           

                           

                           

Oracle Database Concepts for more information on TAF                        

                           

Oracle Database Net Services Administrator's Guide for information on configuring TAF                        

                           

                           

                           

FAILOVER_METHOD                        

VARCHAR2(10)                        

Indicates the transparent application failover method for the session:                        

                           

                           

                           

NONE - Failover is disabled for this session                        

                           

BASIC - Client itself reconnects following a disconnect                        

                           

PRECONNECT - Backup instance can support all connections from every instance for which it is backed up                        

                           

                           

                           

FAILED_OVER                        

VARCHAR2(3)                        

Indicates whether the session is running in failover mode and failover has occurred (YES) or not (NO)                        

                           

RESOURCE_CONSUMER_GROUP                        

VARCHAR2(32)                        

Name of the session's current resource consumer group                        

                           

PDML_STATUS                        

VARCHAR2(8)                        

If ENABLED, the session is in a PARALLEL DML enabled mode. If DISABLED,PARALLEL DML enabled mode is not supported for the session. If FORCED, the session has been altered to force PARALLEL DML.                        

                           

PDDL_STATUS                        

VARCHAR2(8)                        

If ENABLED, the session is in a PARALLEL DDL enabled mode. If DISABLED,PARALLEL DDL enabled mode is not supported for the session. If FORCED, the session has been altered to force PARALLEL DDL.                        

                           

PQ_STATUS                        

VARCHAR2(8)                        

If ENABLED, the session is in a PARALLEL QUERY enabled mode. IfDISABLED, PARALLEL QUERY enabled mode is not supported for the session. If FORCED, the session has been altered to force PARALLELQUERY.                        

                           

CURRENT_QUEUE_DURATION                        

NUMBER                        

If queued (1), the current amount of time the session has been queued. If not currently queued, the value is 0.                        

                           

CLIENT_IDENTIFIER                        

VARCHAR2(64)                        

Client identifier of the session                        

                           

BLOCKING_SESSION_STATUS                        

VARCHAR2(11)                        

This column provides details on whether there is a blocking session:                        

                           

                           

                           

VALID - there is a blocking session, and it is identified in theBLOCKING_INSTANCE and BLOCKING_SESSION columns                        

                           

NO HOLDER - there is no session blocking this session                        

                           

NOT IN WAIT - this session is not in a wait                        

                           

UNKNOWN - the blocking session is unknown                        

                           

                           

                           

BLOCKING_INSTANCE                        

NUMBER                        

Instance identifier of the blocking session. This column is valid only ifBLOCKING_SESSION_STATUS has the value VALID.                        

                           

BLOCKING_SESSION                        

NUMBER                        

Session identifier of the blocking session. This column is valid only ifBLOCKING_SESSION_STATUS has the value VALID.                        

                           

FINAL_BLOCKING_SESSION_STATUS                        

VARCHAR2(11)                        

The final blocking session is the final element in the wait chain constructed by following the sessions that are blocked by one another starting with this session. In the case of a cyclical wait chain, one of the sessions in the wait chain will be chosen as the final blocker.                        

                           

This column provides details on whether there is a final blocking session:                        

                           

                           

                           

VALID - there is a final blocking session and it is identified in theFINAL_BLOCKING_INSTANCE and FINAL_BLOCKING_SESSION columns                        

                           

NO HOLDER - there is no session blocking this session                        

                           

NOT IN WAIT - this session is not in a wait                        

                           

UNKNOWN - the final blocking session is unknown                        

                           

                           

                           

FINAL_BLOCKING_INSTANCE                        

NUMBER                        

Instance identifier of the final blocking session. This column is valid only ifFINAL_BLOCKING_SESSION_STATUS has the value VALID.                        

                           

FINAL_BLOCKING_SESSION                        

NUMBER                        

Session identifier of the blocking session. This column is valid only ifFINAL_BLOCKING_SESSION_STATUS has the value VALID.                        

                           

SEQ#                        

NUMBER                        

A number that uniquely identifies the current or last wait (incremented for each wait)                        

                           

EVENT#                        

NUMBER                        

Event number                        

等待事件的编号跟v$session_wait关联                            

EVENT                        

VARCHAR2(64)                        

Resource or event for which the session is waiting                        

等待事件的解释跟v$session_wait关联                            

See Also: Appendix C, "Oracle Wait Events"                        

P1TEXT                        

VARCHAR2(64)                        

Description of the first wait event parameter                        

对应DBA_EXTENTSFILE_ID,BLOCK_ID,BLOCKS                            

P1                        

NUMBER                        

First wait event parameter (in decimal)                        

P1RAW                        

RAW(8)                        

First wait event parameter (in hexadecimal)Foot 2                         

P2TEXT                        

VARCHAR2(64)                        

Description of the second wait event parameter                        

P2                        

NUMBER                        

Second wait event parameter (in decimal)                        

P2RAW                        

RAW(8)                        

Second wait event parameter (in hexadecimal)Footref 2                        

P3TEXT                        

VARCHAR2(64)                        

Description of the third wait event parameter                        

P3                        

NUMBER                        

Third wait event parameter (in decimal)                        

P3RAW                        

RAW(8)                        

Third wait event parameter (in hexadecimal)Footref 2                        

                           

WAIT_CLASS_ID                        

NUMBER                        

Identifier of the class of the wait event                        

                           

WAIT_CLASS#                        

NUMBER                        

Number of the class of the wait event                        

                           

WAIT_CLASS                        

VARCHAR2(64)                        

Name of the class of the wait event                        

                           

WAIT_TIME                        

NUMBER                        

If the session is currently waiting, then the value is 0. If the session is not in a wait, then the value is as follows:                        

                           

                           

                           

> 0 - Value is the duration of the last wait in hundredths of a second                        

                           

-1 - Duration of the last wait was less than a hundredth of a second                        

                           

-2 - Parameter TIMED_STATISTICS was set to false                        

                           

                           

                           

This column has been deprecated in favor of the columnsWAIT_TIME_MICRO and STATE.                        

                           

SECONDS_IN_WAIT                        

NUMBER                        

If the session is currently waiting, then the value is the amount of time waited for the current wait. If the session is not in a wait, then the value is the amount of time since the start of the last wait.                        

                           

This column has been deprecated in favor of the columnsWAIT_TIME_MICRO and TIME_SINCE_LAST_WAIT_MICRO.                        

                           

STATE                        

VARCHAR2(19)                        

Wait state:                        

                           

                           

                           

WAITING - Session is currently waiting                        

当前session处于等待                            

WAITED UNKNOWN TIME - Duration of the last wait is unknown; this is the value when the parameter TIMED_STATISTICS is set to false                        

                           

WAITED SHORT TIME - Last wait was less than a hundredth of a second                        

                           

WAITED KNOWN TIME - Duration of the last wait is specified in theWAIT_TIME column                        

                           

                           

                           

WAIT_TIME_MICRO                        

NUMBER                        

Amount of time waited (in microseconds). If the session is currently waiting, then the value is the time spent in the current wait. If the session is currently not in a wait, then the value is the amount of time waited in the last wait.                        

                           

TIME_REMAINING_MICRO                        

NUMBER                        

Value is interpreted as follows:                        

                           

                           

                           

> 0 - Amount of time remaining for the current wait (in microseconds)                        

                           

0 - Current wait has timed out                        

                           

-1 - Session can indefinitely wait in the current wait                        

                           

NULL - Session is not currently waiting                        

                           

                           

                           

TIME_SINCE_LAST_WAIT_MICRO                        

NUMBER                        

Time elapsed since the end of the last wait (in microseconds). If the session is currently in a wait, then the value is 0.                        

                           

SERVICE_NAME                        

VARCHAR2(64)                        

Service name of the session                        

                           

SQL_TRACE                        

VARCHAR2(8)                        

Indicates whether SQL tracing is enabled (ENABLED) or disabled (DISABLED)                        

是否打开跟踪                            

SQL_TRACE_WAITS                        

VARCHAR2(5)                        

Indicates whether wait tracing is enabled (TRUE) or not (FALSE)                        

                           

SQL_TRACE_BINDS                        

VARCHAR2(5)                        

Indicates whether bind tracing is enabled (TRUE) or not (FALSE)                        

                           

SQL_TRACE_PLAN_STATS                        

VARCHAR2(10)                        

Frequency at which row source statistics are dumped in the trace files for each cursor:                        

                           

                           

                           

never                        

                           

first_execution                        

                           

all_executions                        

                           

                           

                           

SESSION_EDITION_ID                        

NUMBER                        

Shows the value that, in the session, would be reported bysys_context('USERENV', 'SESSION_EDITION_ID')                        

                           

CREATOR_ADDR                        

RAW(4 | 8)                        

Address of the creating process or circuit                        

                           

CREATOR_SERIAL#                        

NUMBER                        

Serial number of the creating process or circuit                        

                           

ECID                        

VARCHAR2(64)                        

Execution context identifier (sent by Application Server)                        

                           

以上只是标注了常用的字段的注释,如果漏掉的也请各位高手补充,后续随着工作的深入也会相应的补充;

4、v$session在实际工作中的作用

4.1查询锁住对象的会话信息:

SELECT OBJECT_NAME, MACHINE, S.SID, S.SERIAL#    

FROM GV$LOCKED_OBJECT L, DBA_OBJECTS O, GV$SESSION S   

WHERE L.OBJECT_ID = O.OBJECT_ID      AND L.SESSION_ID = S.SID;    

4.2查看当前会话所执行的语句以及会话相关信息:

SELECT A.SID, A.SERIAL#, A.USERNAME, A.TERMINAL, A.PROGRAM, S.SQL_TEXT    

FROM V$SESSION A, V$SQLAREA S    WHERE A.SQL_ADDRESS = S.ADDRESS(+)     

AND A.SQL_HASH_VALUE = S.HASH_VALUE(+)    ORDER BY A.USERNAME, A.SID;

4.3杀掉会话:

ALTER SYSTEM KILL SESSION 'SID, #SERIAL';      (需要注意当前的session  tpye不能是background)

上述就是小编为大家分享的如何进行session和v$session说明了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/150554.html

(0)

相关推荐

  • 抖音刷赞网站推广平台,抖音刷赞专业平台?

    技术抖音刷赞网站推广平台,抖音刷赞专业平台?要想刷赞的话,内容的创作,后期的运营是关键,看那些大段短15秒钟的视频就能如此吸赞,背后是一整套运作流程的支持。
    一、热门视频带来的流量,一般一个视频在上热之后会增加大量的赞丝

    测评 2021年11月9日
  • 怎样生成一个基础的springboot项目

    技术怎样生成一个基础的springboot项目今天就跟大家聊聊有关怎样生成一个基础的springboot项目,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在线生成

    攻略 2021年12月2日
  • 条条大路通罗马下一句,条条大路通罗马出自谁的什么文章

    技术条条大路通罗马下一句,条条大路通罗马出自谁的什么文章“条条大路通罗马”原话是“All Roads Lead to Rome”条条大路通罗马下一句,这是一句谚语,出自《罗马典故》,是指做成一件事的方法不只一种,人生的路

    生活 2021年10月22日
  • 中的偏旁,汉字中有几个部首

    技术中的偏旁,汉字中有几个部首《康熙字典》的部首限制在214个中的偏旁,为求搜寻的方便,有些部首的归类与字义无关。例如按照原则,所有象形字都应该自成部首,但这样会造成很多象形文字的部首只有这个字。所以像是“甲”“申”“由

    生活 2021年10月22日
  • java中javac AbstractProcessor有什么用

    技术java中javac AbstractProcessor有什么用小编给大家分享一下java中javac AbstractProcessor有什么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!它可以

    攻略 2021年11月9日
  • 主机连接VMware虚拟机

    技术主机连接VMware虚拟机 主机连接VMware虚拟机一、遇到的问题
    (1)虚拟机能ping通主机,但主机ping不通虚拟机
    原因
    VMware Network Adapter VMnet8网络适配

    礼包 2021年11月18日