❶ vs2008里怎么把session做为一个值写进sql语句插入数据库
在你需要这个值的地方直接加上就行了,不过要把值转换为字符串类型,即Session["Loginname"].ToString()
❷ 怎么查询一个session执行的所有sql
session_id(SID) -> v$active_session_history(sid,sql_id) + v$sqlarea(sql_id,sql_text) 看看
❸ vs 2010 c#/.net 里的sql语句
sql中 字符是需要用单引号的 否则会报错的 1,2中的id如果是字符型的话 需要加单引号 如果不是的话 就不需要加
❹ 如何用sql语句查询一个session用户id是否在一个表的字符串里面
sql = "SELECT * FROM a WHERE ',' + arrayuserid + ',' LIKE '%," & Session("userid") & ",%'"
❺ 如何理解 v$session
在本视图中,每一个连接到数据库实例中的session都拥有一条记录。包括用户session及后台进程如DBWR,LGWR,arcchiver等等。
V$SESSION中的常用列
V$SESSION是基础信息视图,用于找寻用户SID或SADDR。不过,它也有一些列会动态的变化,可用于检查用户。如例:
字段解释:
字段1:SARRD: raw(4):Session Address,session的地址
字段2:SID:RAW(4):Session Identifier,session的标识符
字段3:SERIAL#:NUMBER:
Session serial number,Session的序列号。Used to identify uniquely 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
如果某个SID又被其它的session使用的话则此数值自增加(当一个SESSION结束,另一个SESSION开始并使用了同一个SID)。
字段4:AUDSID:number:Auditing session ID
审查session ID唯一性,确认它通常也用于当寻找并行查询模式。
字段5:PARRD:RAW(4):Address of the process that owns this session
这个session拥有的进程地址
字段6:USER#:number:Oracle user identified
Oracle用户的标识符
字段7:USERNAME:varchar2(30):Oracle username,Oracle的用户名
字段8:COMMAND:number:
Command in progress (last statement parsed); for a list of values, see Table 3-7
该session的命令所对应的sql对应数字值:默认为0
字段8:OWNERID :NUMBER
The column contents are invalid if the value is 2147483644. Otherwise, this column contains the identifier of the user who owns the migratablesession
For operations using Parallel Slaves, interpret this value as a 4Byte value. The low-order 2Bytes of which represent thesessionnumber, and the high-order bytes the instance ID of the query coordinator
字段9:TADDR:VARCHAR2(8) :Address of transaction state object
事务状态对象的地址
字段10:LOCKWAIT :VARCHAR2(8)
Address of lock waiting for; NULL if none
锁等待的地址,如果为空的话则没有等待
字段11:STATUS :VARCHAR2(8)
Status of thesession: ACTIVE (currently executingSQL), INACTIVE, KILLED (marked to be killed), CACHED (temporarily cached for use by Oracle*XA), SNIPED (sessioninactive, waiting on the client)
这列用来判断session状态是:
Active:活动状态,正执行SQL语句
Inactive:不活动状态
Killed:被标注为删除
Cached:Oracle中的临时缓冲区使用
SNIPED:session不活动,等待客户端操作
字段12:SERVER :VARCHAR2(9)
Server type: DEDICATED, SHARED, PSEUDO, NONE
使用连接数据库服务器的类型
DEDICATED:专用服务器
SHARED:共享服务器
PSEUDO:
NONE:
字段13:SCHEMA# :NUMBER :
Schema user identifier
Schema用户标识符所对应的数字值
字段14:SCHEMANAME :VARCHAR2(30) :
Schema user name
Schema的用户名
字段15:OSUSER :VARCHAR2(15)
Operating system client user name
客户端操作系统的用户名
字段16:PROCESS
VARCHAR2(9)
Operating system client process ID
客户端操作系统的进程ID(标识符)
字段17:MACHINE
VARCHAR2(64)
Operating system machine name
连接数据库的客户端操作系统的机器名称
字段18:TERMINAL
VARCHAR2(10)
Operating system terminal name
连接数据库的客户端操作系统的终端名称
字段19:PROGRAM
VARCHAR2(48)
Operating system program name
连接数据库的客户端操作系统的进程名称
字段20:TYPE
VARCHAR2(10)
Sessiontype
Session的类型
字段21:SQL_ADDRESS
RAW(4)
Used with SQL_HASH_VALUE to identify the SQL statement that is currently being executed
当前正在执行的SQL语句的SQL_HASH_VALUE值
字段22:SQL_HASH_VALUE
NUMBER
Used with SQL_ADDRESS to identify the SQL statement that is currently being executed
当前正在执行的SQL语句的SQL_ADDRESS值
SQL_HASH_VALUE,SQL_ADDRESS:这两列用于鉴别默认被session执行的SQL语句。如果为null或0,那就说明这个session没有执行任何SQL语句。PREV_HASH_VALUE和PREV_ADDRESS两列用来鉴别被session执行的上一条语句。
字段23:SQL_ID
VARCHAR2(13)
SQL identifier of the SQL statement that is currently being executed
正在执行的SQL语句的标识符
字段24:SQL_CHILD_NUMBER
number
Child number of the SQL statement that is currently being executed
字段25:PREV_SQL_ADDR
raw(4)
Used withPREV_HASH_VALUEto identify the last SQL statement executed
字段26:PREV_HASH_VALUE
Number
Used withSQL_HASH_VALUEto identify the last SQL statement executed
字段27:PREV_SQL_ID
Varchar2(13)
SQL identifier of the last SQL statement executed
❻ oracle中V$session 表中各个字段的中文说明是什么
SADDR - session address
SID - session identifier 常用于链接其他列
SERIAL# - SID有可能会重复,当两个session的SID重复时,SERIAL#用来区别session(说白了某个session是由sid和serial#这两个值确定的)
AUDSID - audit session id。可以通过audsid查询当前session的sid。select sid from v$session where audsid=userenv('sessionid');
PADDR - process address,关联v$process的addr字段,通过这个可以查询到进程对应的session
USER# - 同于dba_users中的user_id,Oracle内部进程user#为0.
USERNAME - session's username。等于dba_users中的username。Oracle内部进程的username为空。
COMMAND - session正在执行的sql id,1代表create table,3代表select。
TADDR - 当前的transaction address。可以用来关联v$transaction中的addr字段。
LOCKWAIT - 可以通过这个字段查询出当前正在等待的锁的相关信息。sid + lockwait与v$loc中的sid + kaddr相对应。
STATUS - 用来判断session状态。Active:正执行SQL语句。inactive:等待操作。killed:被标注为杀死。
SERVER - 服务类型。
SCHEMA# - schema user id。Oracle内部进程的schema#为0。
SCHEMANAME - schema username。Oracle内部进程的为sys。
OSUSER - 客户端操作系统用户名。
PROCESS - 客户端process id。
MACHINE - 客户端machine name。
TERMINAL - 客户端执行的terminal name。
PROGRAM - 客户端应用程序。比如ORACLE.EXE或sqlplus.exe
TYPE - session类型。
SQL_ADDRESS,SQL_HASH_VALUE,SQL_ID,SQL_CHILD_NUMBER - session正在执行的sql状态,和v$sql中的address,hash_value,sql_id,child_number对应。
PREV_SQL_ADDR,PREV_HASH_VALUE,PREV_SQL_ID,PREV_CHILD_NUMBER - 上一次执行的sql状态。
MODULE,MODULE_HASH,ACTION,ACTION_HASH,CLIENT_INFO - 应用通过DBMS_APPLICATION_INFO设置的一些信息。
FIXED_TABLE_SEQUENCE - 当session完成一个user call后就会增加的一个数值,也就是说,如果session挂起,它就不会增加。因此可以根据这个字段来监控某个时间点以来的session性能情况。例如,一个小时前某个session的此字段数值为10000,而现在是20000,则表明一个小时内其user call较频繁,可以重点关注此session的performance statistics。
ROW_WAIT_OBJ# - 被锁定行所在table的object_id。和dba_object中的object_id关联可以得到被锁定的table name。
ROW_WAIT_FILE# - 被锁定行所在的datafile id。和v$datafile中的file#关联可以得到datafile name。
ROW_WAIT_BLOCK# - 同上,对应块。
ROW_WAIT_ROW# - session当前正在等待的被锁定的行。
LOGON_TIME - session logon time.
❼ sql sessionid 有什么用处
用处是:
解决浏览器不支持COOKIE,此时SESSION无效(比如登录的结果成功了,却还是要再登录),坏处,自然是增加了服务器的负担(需要SQL数据库的支持)!