GBase 8s
运维管理
问答

使用sql查询会话信息

发表于2024-11-27 16:37:1080次浏览6个评论

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

【GBase版本】:GBase8sV8.8_TL_3.5.1_3X2_x86_64

【操作系统】:Linux

【CPU】:8

【问题描述】*:使用sql查询会话信息,在哪张表查询,需要的字段:会话ID(SESS_ID)、用户名(USER_NAME)、连接类型(CONN_TYPE)、SQL文本(SQL_TEXT)、会话创建时间(CREATE_TIME)、当前模式(CURR_SCH)、客户端IP(CLNT_IP)以及表名(TABLE_NAME)

评论

登录后才可以发表评论
用户头像
liaosnet发表于 1年前
连接类型 一般指啥?
SQL文本 指当前正在执行的SQL?
表名 这个多表怎么显示 ?
GBase用户24907发表于 1年前
@liaosnet:每条记录对应一个会话id,sql文本指正在执行的的sql,表名则是正在执行sql的表名呢,请问有相关文档吗?
用户头像
liaosnet发表于 1年前
@GBase用户24907:SELECT lst.sid AS SES_ID,
lst.username AS USER_NAME,
'' AS CONN_TYPE,
stat.sqs_statement AS SQL_TEXT,
dbinfo('utc_to_datetime',lst.connected) AS CREATE_TIME,
stat.sqs_dbname AS CURR_SCH,
lst.hostname AS CLNT_IP,
'' AS TABLE_NAME
FROM sysmaster:sysscblst lst
LEFT JOIN sysmaster:syssqlstat stat ON lst.sid = stat.sqs_sessionid
,sysmaster:sysrstcb tcb
WHERE lst.address = tcb.scb
AND sysmaster:bitval(tcb.flags ,'0x80000')= 1
ORDER BY lst.sid;

CONN_TYPE不知道需要的是什么;TABLE_NAME的话,理解上应当是正在使用的表,但会话实际可以打开多个表,不太好获取。
最佳回答
用户头像
曾阿牛发表于 1年前
@liaosnet:少用SQL 去搞
崔哥发表于 8个月前
嗯,只能说不错!
用户头像
柒柒天晴发表于 2个月前
好问题啊。