精华内容
下载资源
问答
  • 一、数据库会话数量查询  查询当前数据库会话数量:select * from v$session  修改数据库最大会话数量:alter system set processes=500 scope=spfile (在命令模式下执行)  查看当前数据库最大会话上限:show ...
    一、数据库会话数量查询 
    
      查询当前数据库会话数量:select * from v$session
      修改数据库最大会话数量:alter system set processes=500 scope=spfile  (在命令模式下执行)
      查看当前数据库最大会话上限:show parameters processes;

      查看当前数据库DBLINK最多可打开的连接数量:show parameters open_links;

    二、删除被锁住的Session
    1、一般的话只要下面两条命令就可以:
    (1)select t1.sid,t1.serial#,t1.username,t1.logon_time from v$session t1,v$locked_object t2 where t1.sid=t2.session_id order by t1.logon_time;
    (2)alter system kill session  'sid, serial#';
    备注:其中(2)中的sid和serial#是(1)中查询出来的。
    2、有时这种方法还是删不掉,就要用ORAKILL命令了
    (1)select object_name,machine,s.sid,s.serial# from v$locked_object l,dba_objects o ,v$session s where l.object_id=o.object_id and l.session_id=s.sid;
    (2)select spid ,osuser,s.program from v$session s,v$process p where s.paddr=p.addr and s.sid=93;
    (3)orakill sid spid(unix 系统下,root身份:kill sid spid)
    说明:
    第一条2(1)和1(1)效果是一样的,只是查出的内容更多,我们要的,关键是这个sid,
    第二条中的93,就是第一条中查询出的sid;
    第三条要在系统下进行,cmd下直接使用,spid就是第二条中查出来的spid。
    另外,unix下的,没实际使用,原例子是这么写的 kill -9 12345(12345是spid,前面-9个人估计是数据库的sid吧。。。)
    展开全文
  • Oracle会话阻塞

    千次阅读 2018-01-07 21:11:29
    单实例的会话阻塞 模拟232会话被1224会话阻塞的情况 select * from V$SESSION_BLOCKERS; SID SESS_SERIAL# WAIT_ID WAIT_EVENT WAIT_EVENT_TEXT BLOCKER_INSTANCE_ID BLOCKER_SID BLOCKER_SESS_SERIAL# --

    单实例的会话阻塞

    模拟232会话被1224会话阻塞的情况

     select * from V$SESSION_BLOCKERS;
           SID SESS_SERIAL#    WAIT_ID WAIT_EVENT WAIT_EVENT_TEXT                BLOCKER_INSTANCE_ID BLOCKER_SID BLOCKER_SESS_SERIAL#
    ---------- ------------ ---------- ---------- ------------------------------ ------------------- ----------- --------------------
           232        14127         24        241 enq: TX - row lock contention                    1        1224                 3975 
    会话1224所持有的锁阻塞了会话232执行的SQL语句。
    1224 会话是阻塞者
    232会话是等待者  

    SYS > select sid,
        BLOCKING_SESSION ,
        event,seconds_in_wait from v$session where username='SCOTT';
    
           SID BLOCKING_SESSION EVENT                          SECONDS_IN_WAIT
    ---------- ---------------- ------------------------------ ---------------
           232             1224 enq: TX - row lock contention             1077      # 会话232等待行锁等待了1077秒
          1224                  SQL*Net message from client                170
    232受阻塞会话等待的对象,等待的数据块号

     select row_wait_obj#, 
     row_wait_file#, 
     row_wait_block#,
     row_wait_row# 
     from v$session where sid=232;
    
    ROW_WAIT_OBJ# ROW_WAIT_FILE# ROW_WAIT_BLOCK# ROW_WAIT_ROW#
    ------------- -------------- --------------- -------------
            97896           1024          106534             9	
    阻塞等待对象的详细信息

    select owner, object_type, 
    object_name, 
    data_object_id 
    from dba_objects where object_id=97896;
    OWNER      OBJECT_TYP OBJECT_NAM DATA_OBJECT_ID
    ---------- ---------- ---------- --------------
    SCOTT      TABLE      EMP                 97896
    查看阻塞行的具体信息,需要对象号、文件号、块号和行号来生成rowid

    select * from scott.emp
    where rowid=dbms_rowid.rowid_create (rowid_type => 1, object_number => 97896, relative_fno => 1024 ,block_number =>106534, row_number => 9);
    
    查询DML死锁会话sid,及引起死锁的堵塞者会话blocking_session

    SELECT sid,event,seq#,p1,p1raw,p2,p3 FROM v$session WHERE wait_time=0;
    如果正在等待,wait_time的值为0。如果已经完成,wait就不等于0. 使用wait_time来断言你是否找到潜在被阻塞的会话。

    v$lock视图中,lmode代表会话持有锁的锁模式,request代表会话等待请求锁的锁模式,block=2代表RAC环境,block=1代表会话正在阻塞其他会话,block=0代表被其他会话所阻塞

    SYS > select sid,type,id1,id2,lmode,request,block from v$lock where type='TX'; 
    
           SID TY        ID1        ID2      LMODE    REQUEST      BLOCK
    ---------- -- ---------- ---------- ---------- ---------- ----------
            67 TX     262160        500          0          4          0
            53 TX     262160        500          6          0          1
            67 TX     655363        498          6          0          2
    查询行锁阻塞会话的脚本

    set term on;
    set lines 130;
    column sid_ser format a12 heading 'session,|serial#';
    column username format a12 heading 'os user/|db user';
    column process format a9 heading 'os|process';
    column spid format a7 heading 'trace|number';
    column owner_object format a35 heading 'owner.object';
    column locked_mode format a13 heading 'locked|mode';
    column status format a8 heading 'status';
    spool coe_locks.lst;
    
    select
        substr(to_char(l.session_id)||','||to_char(s.serial#),1,12) sid_ser,
        substr(l.os_user_name||'/'||l.oracle_username,1,12) username,
        l.process,
        p.spid,
        substr(o.owner||'.'||o.object_name,1,35) owner_object,
        decode(l.locked_mode,
                 1,'No Lock',
                 2,'Row Share',
                 3,'Row Exclusive',
                 4,'Share',
                 5,'Share Row Excl',
                 6,'Exclusive',null) locked_mode,
        substr(s.status,1,8) status
    from
        v$locked_object l,
        all_objects     o,
        v$session       s,
        v$process       p
    where
        l.object_id = o.object_id
    and l.session_id = s.sid
    and s.paddr      = p.addr
    and s.status != 'KILLED';
    
    spool off;
    ==================================================================================
    输出例子
    session,     os user/     os        trace                                       locked
    serial#      db user      process   number  owner.object                        mode          status
    ------------ ------------ --------- ------- ----------------------------------- ------------- --------
    67,129       oracle/SH    18561     24391   SH.DEPARTMENTS                      Row Exclusive ACTIVE
    67,129       oracle/SH    18561     24391   SH.EMP                              Row Exclusive ACTIVE
    53,355       oracle/SYS   25174     25175   SH.DEPARTMENTS                      Row Exclusive INACTIVE
    SQL> select a.inst_id  block_inst,a.sid block_sid,a.lmode,a.request,TRUNC(a.ctime/60) min_waiting, b.inst_id wait_inst,b.sid wait_sid
    from gv$lock a, gv$lock b
    where a.type='TX'
    and a.inst_id || a.sid != b.inst_id || b.sid 
    and a.id1 = b.id1
    and a.block !=0 ;  
    
    BLOCK_INST  BLOCK_SID      LMODE    REQUEST MIN_WAITING  WAIT_INST   WAIT_SID
    ---------- ---------- ---------- ---------- ----------- ---------- ----------
             1       1224          6          0          15          1        232


    集群会话阻塞的查询语句

             select
             b.type || '-' || b.id1 ||'-'|| b.id2 ||
     case when b.type = 'TM' then
             (select '(' || owner || '.' || object_name || ')' from dba_objects
             where object_id = b.id1) else '' end as b_res,
             s1.sid || ','|| s1.serial# || '@' || s1.inst_id as blocker,
             (select count(*) from gv$lock t where
                   t.type=b.type and t.id1 = b.id1
                   and t.id2 = b.id2 and request > 0) blocked_cnt,
             b.request, b.lmode, s1.username, s1.sql_id,
             (select SQL_TEXT from v$sql where sql_id = s1.sql_id and rownum = 1),
             s1.prev_sql_id,
             (select SQL_TEXT from v$sql where sql_id = s1.prev_sql_id and rownum = 1),
             b.ctime as b_ctime,
             s2.sid || ','|| s2.serial# || '@' || s2.inst_id as waiter,
             w.request,w.lmode,s2.username,s2.sql_id,
             (select SQL_TEXT from v$sql where sql_id = s2.sql_id and rownum = 1),
             s2.prev_sql_id,
             (select SQL_TEXT from v$sql where sql_id = s2.prev_sql_id and rownum = 1),
             w.ctime as w_ctime
             from gv$lock b, gv$lock w, gv$session s1, gv$session s2
             where
             b.block > 0
             and w.request > 0
             and b.id1 = w.id1
             and b.id2 = w.id2
             and b.type = w.type
             and b.inst_id = s1.inst_id
             and b.sid = s1.sid
             and w.inst_id = s2.inst_id
             and w.sid = s2.sid
             order by b_res, w_ctime desc;
    

    历史等待会话信息的查询

    select BLOCKING_INST_ID,blocking_session,BLOCKING_SESSION_SERIAL#,
    from dba_hist_active_session_history
    列出某段时间的等待事件个数统计
    select 
    to_char(t.sample_time, 'yyyymmdd hh24:mi:ss') sample_t,
    t.event,
    count(*)
    from dba_hist_active_sess_history t
    where t.event is not null
    and t.sample_time > to_date('20171129 0830','yyyymmdd hh24:mi')
    group by to_char(t.sample_time, 'yyyymmdd hh24:mi:ss'), t.event
    order by 1,3  ;	 
    
    20171129 08:30:08	enq: TX - row lock contention	1
    20171129 08:30:09	enq: TX - row lock contention	1
    20171129 08:30:18	enq: TX - row lock contention	1
    20171129 08:30:19	enq: TX - row lock contention	1
    20171129 08:30:28	enq: TX - row lock contention	1
    20171129 08:30:29	enq: TX - row lock contention	1
    
    
    select event,count(*) from dba_hist_active_sess_history
    where sample_time > to_date('20171130172000','yyyymmddhh24:miss')
    and sample_time < to_date('20171130175000','yyyymmddhh24:miss')
    group by event order by 2 desc;
    
    EVENT							COUNT(*)
    --------------------------     ------------
    enq: TX - allocate ITL entry     3715
    列出导致等待事件的SQL语句

    select sql_id, current_obj#, count(*) from dba_hist_active_sess_history
    where sample_time > to_date('20171130172000','yyyymmddhh24miss')
    and sample_time < to_date('20171130175000','yyyymmddhh24miss')
    and event ='enq: TX - allocate ITL entry'
    group by sql_id, current_obj# order by 3 desc;
    
    SQL_ID								Current_Obj#						count(*)
    ------------------- --------------------  -------------------
    g52nulqdyvq46				 74140									3634
    分析到该等待事件竞争的数据块
    select sql_id, current_obj#,  current_file#, current_block#, count(*)
    from dba_hist_active_sess_history
    where sample_time > to_date('20171201110500','yyyymmddhh24miss')
    and event ='enq: TX - allocate ITL entry'
    group by sql_id, current_obj#  ,  current_file#, current_block#;
    阻塞会话的个数

    select t.SAMPLE_ID,t.SAMPLE_TIME,t.P1,
    t.BLOCKING_INST_ID || '_' || t.blocking_session block_sid,
    count(*)
    from dba_hist_active_sess_history t
    where t.event='enq: TX - row lock contention'
    and t.sample_time > to_date('20171129 0830','yyyymmdd hh24:mi')
    group by   t.SAMPLE_ID,t.SAMPLE_TIME, t.P1, t.BLOCKING_INST_ID || '_' || t.blocking_session
    order by count(*)  ;
    
    7739140	29-11月-17 09.12.44.491000000 上午	1415053318	1_3565	1
    7739010	29-11月-17 09.10.34.199000000 上午	1415053318	1_3565	1
    7738990	29-11月-17 09.10.14.169000000 上午	1415053318	1_3565	1
    7738910	29-11月-17 09.08.53.928000000 上午	1415053318	1_3565	1
    7738760	29-11月-17 09.06.23.585000000 上午	1415053318	1_3565	1

    阻塞链表,从08:30-08:40时间段,阻塞会话的信息

    select to_char(t.sample_time, 'yyyymmdd hh24:mi:ss') sample_time,
    instance_number || '_' || session_id sid,
    event,
    session_state state,
    seq#,p1,p2,
    blocking_inst_id || '_' || blocking_session block_sid
    from dba_hist_active_sess_history t
    where instance_number || '_' || session_id  = '1_3565'
    and t.sample_time between to_date('20171129 0830','yyyymmdd hh24:mi') and to_date('20171129 0840','yyyymmdd hh24:mi')
    order by sample_time;
    
    20171129 08:30:09	1_3565	enq: TX - row lock contention	WAITING	11	1415053318	1703963	2_3853
    20171129 08:30:19	1_3565	enq: TX - row lock contention	WAITING	11	1415053318	1703963	2_3853
    20171129 08:30:29	1_3565	enq: TX - row lock contention	WAITING	11	1415053318	1703963	2_3853
    1号实例sid为3565的会话在申请TX - row lock锁时无法快速获取,
    实例2的sid为3853的会话阻塞了1号实例sid为3565的会话 
    select distinct instance_number || '_' || session_id,
    event,
    t.SQL_EXEC_ID,session_state,t.BLOCKING_INST_ID || '_' || t.blocking_session block_sid
    from dba_hist_active_sess_history t
    where --instance_number || '_' || session_id  in ('1_3565','2_3853')
    event = 'enq: TX - row lock contention' and 
    to_char(t.sample_time,'yyyymmdd hh24:mi') ='20171129 08:30';
    
    wait_sid     event                         SQL_ID       state   block_sid
    2_2953	enq: TX - row lock contention	69w54nmn0s3ab	WAITING	1_3565
    1_3565	enq: TX - row lock contention	69w54nmn0s3ab	WAITING	2_3853




















    展开全文
  • 在OEM中查看数据库的会话时,发现有一个会话的SQL要10多秒在PL SQL中执行 SQL按F5查看这个SQL的计划,发现别的地方有 调用索引,oracle统计值查看select * from dba_tables where table_name = TABLE检查一下字段last...

    在OEM中查看数据库的会话时,发现有一个会话的SQL要10多秒

    在PL SQL中执行 SQL按F5查看这个SQL的计划,发现别的地方有 调用索引,

    oracle统计值查看

    select * from dba_tables where table_name = TABLE

    检查一下字段last_analyzed 的值,其值就是最后一次统计更新的日期

    更新查看

    全表分析   完全计算法:   analyze   table   abc   compute   statistics;   抽样估算法(抽样20%):   analyze   table   abc   estimate   statistics   sample   20   percent;   对表作完全计算所花的时间相当于做全表扫描,抽样估算法由于采用抽样,比完全计算法的生成统计速度要快,如果不是要求要有精确数据的话,尽量采用抽样分析法。建议对表分析采用抽样估算,对索引分析可以采用完全计算。

    使用dbms_stats

    exec dbms_stats.gather_table_stats(OWNNAME=>'tccs',tabname=>'emp',cascade=>true);

    在我们经常做表的分析时会看到使用dbms_stats和analyze在这个方面也会有点不同。 就是当使用dbms_stats来分析表的时候global_stats是YES,而用analyze来分析表的时候就是NO. 而且num_rows结果也会有些不同

    select dt.last_analyzed ,'dbms_stats.gather_table_stats(OWNNAME=>'''|| dt.owner ||''',tabname=>'''|| dt.table_name ||''',cascade=>true); ' ,dt.* from dba_tables dt where table_name IN ( upper('wsh_delivery_details') ,upper('wsh_delivery_assignments'),upper('MTL_TXN_REQUEST_LINES'),upper('MTL_TXN_REQUEST_HEADERS'),upper('OE_ORDER_HEADERS_ALL'),upper('OE_ORDER_LINES_ALL'),upper('RA_CUSTOMERS'),upper('MTL_SYSTEM_ITEMS_B'),upper('RA_ADDRESSES_ALL'),upper('RA_SITE_USES_ALL'),upper('MTL_PARAMETERS'),upper('HZ_CUST_SITE_USES_ALL'),upper('HZ_PARTY_SITES'),upper('HZ_LOCATIONS'),upper('HZ_CUST_ACCT_SITES_ALL'),upper('HZ_CUST_SITE_USES_ALL'),upper('AR_CONTACTS_V'),upper('ORG_ORGANIZATION_DEFINITIONS'),upper('MTL_MATERIAL_TRANSACTIONS'),upper('OE_TRANSACTION_TYPES_TL') )

    展开全文
  • 一、修改Oracle会话及最大连接数1、查看最大连接数SQL> show parameter processes;NAME TYPE VALUE------------------------------------ ----------- ------------------------------aq_tm_p...

    一、修改Oracle会话及最大连接数

    1、查看最大连接数

    SQL> show parameter processes;

    NAME                                 TYPE        VALUE

    ------------------------------------ ----------- ------------------------------

    aq_tm_processes                      integer     0

    db_writer_processes                  integer     3

    gcs_server_processes                 integer     0

    global_txn_processes                 integer     1

    job_queue_processes                  integer     1000

    log_archive_max_processes            integer     4

    processes                            integer     150

    2、修改最大连接数

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

    系统已更改。

    3、查看最大会话数

    SQL> show parameters sessions;

    NAME                                 TYPE        VALUE

    ------------------------------------ ----------- ------------------------------

    java_max_sessionspace_size           integer     0

    java_soft_sessionspace_limit         integer     0

    license_max_sessions                 integer     0

    license_sessions_warning             integer     0

    sessions                             integer     264

    shared_server_sessions               integer

    4、修改最大会话数

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

    系统已更改。

    5、连接数和会话数计算关系

    sessions = 1.1 * process + 5

    说明:连接数和会话数参数修改,Oracle必须重启

    二、常用会话及连接数查询方法

    1、查询数据库最大连接数

    SQL> show parameter processes;

    或者

    SQL>select value from v$parameter where name = 'processes';

    2、修改数据库最大连接数(默认150)

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

    3、查询数据库当前连接数

    SQL> select count(*) from v$process;

    4、查看数据库最大会话数

    SQL> show parameters sessions;

    或者

    SQL> select value from v$parameter where name = 'sessions';

    5、修改数据库最大会话数(默认248)

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

    6、查看当前会话数

    SQL> select count(*) from v$session;

    7、查看当前并发(活动)会话数

    SQL> select count(*) from v$session where status='ACTIVE';

    8、查看当前会话详细信息

    SQL> select sid,serial#,username,program,machine,status from v$session;

    9、查看正在使用的用户

    select osuser,

    t1.username as username,

    cpu_time / executions / 1000000 || 's' as runtimes,

    sql_fulltext,

    machine

    from v$session t1, v$sqlarea t2

    where t1.sql_address = t2.address

    order by runtimes desc;

    三、OS的参数区别

    1、Linux和Windows系统,对sessions的处理是有区别的

    Linux系统1会话对应1个进程处理

    Windows系统1会话对应1个线程处理

    展开全文
  • oracle分析统计表

    2011-12-08 17:37:00
    analyze table t_medflow_intent compute statistics; 删除统计信息 analyze table intent delete statistics 转载于:https://www.cnblogs.com/liaomin416100569/archive/2011/1...
  • Oracle数据库中的用户会话信息应该如何查询呢?下文对Oracle用户会话信息的查询方法作了详细的描述,希望能对您有所帮助。 AD: Oracle用户会话相信大家都比较了解,下面为您介绍的就是Oracle用户会话信息的查询...
  • 1. 现象某天收到一数据库活动会话数剧增不降,业务系统部分功能缓慢。2. 分析2.1 分析活动会话数变化趋势2.2 抽一个时间点分析等待事件及SQL执行情况selectto_char(ash.sample_time, ‘YYYY-MM-DD HH24:MI:SS‘) ...
  • connect 物理连接,网络或者本地session 实例中的一个逻辑实体有连接就有会话 select serail#,sid,username from v$session where username is null; 四种连接: 1、无连接无会话无进程: sqlplus /nolog;2、...
  • 我们在系统上线或测试阶段,经常为因为某个地方的不留意而制数据库会话或连接未关系, ...在Oracle查询当前会话和连接的SQL如下: select count(*) from v$process select count(*) from v$session ...
  • 使用PL/SQL时, 每次第一次打开的时候会提示"动态执行不可访问,本会话的自动统计被禁止"的错误,一消息如下: V$SESSION,V$SESSTAT,V$STATNAME没有被授权,没有权限访问这几张,所以没有本法进行统计.
  • 第一 会话临时 (说明临时会话指定,当中断会话ORACLE将截断,删除所有数据) 第二 事物临时 (说明临时是事务指定,每次提交后ORACLE将截断,删除所有数据) 我使用的是会话临时,因为我...
  • 使用PLSQL,第一次执行的select操作的时候,提示“动态执行不可访问,本会话的自动统计被禁止” 这种问题是因为当前连接用户没有对sys用户下的v$session、v$sesstat、v$statname的select权限 解决此问题的...
  • 建立数据库链路、统计表记录数、查看会话及最大会话数1. 生成统计表数据SQLSql代码select ‘analyze table ‘ || table_name || ‘ compute statistics;’ from user_tables where table_name like ‘PR\_%\_%’ ...
  • Oracle活动会话历史(ASH)及报告解读

    千次阅读 2017-06-21 09:31:04
    对于数据库运行期间的各种状态...在Oracle数据库中,实时捕获相关性能数据是通过ASH工具来实现的。ASH通过每秒钟抽取活动会话样本,为分析在最近时刻的性能问题提供最直接最有效的依据。本文主要讲述ASH的用法及使用。
  • revoke select on v$statname from scott; revoke select on v$sesstat from scott; revoke select on v$session from scott; revoke select on v$mystat from scott;
  • 动态执行不可访问,本会话的自动统计被禁止,原因:V$SESSION,V$SESSTAT,V$STATNAME 没有被授权,没有权限访问这几张,所以没有本法进行统计! 那就授权吧,授权 SQL 如下: sqlplus /nolog 进入登录页面,然后...
  • Oracle自动性能统计

    千次阅读 2017-04-13 10:10:15
    高效诊断性能问题,需要提供完整可用的...Oracle数据库为系统、会话以及单独的sql语句生成多种类型的累积统计信息。本文主要描述Oracle性能统计涉及到的相关概念及统计对象,以更好的利用统计信息为性能调整奠定基础。
  • 连接与会话 oracle

    2012-10-15 10:01:01
      连接与会话 连接并不是会话的同义词,发现这一点时很多人都很诧异。在大多数人眼里,它们都是一样的,但事实上并不一定如此。...一个会话中的提交不会影响该连接上的任何其他会话。实际上,一条连
  • 概述Oracle实例的构成:Oracle数据库实例(Oracle Instance)主要包括Oracle进程结构和Oracle内存结构两种。二.ORACLE的内存结构内存结构是Oracle数据库系统结构中最为重要的一部分,内存也是影响数据库性能的第一因素...
  • #!/bin/bash ps -e -o pcpu -o pid -o user -o args | grep oraclemktdb | sort -k 1| tail -5r spid=`ps -e -o pcpu -o pid -o user -o args | grep oraclemktdb | sort -k 1| tail -5r | awk '{print $2}'` ...
  • PLSQL Developer报“动态执行不可访问,本会话的自动统计被禁止”
  • oracle中连接与会话

    千次阅读 2009-11-14 16:43:00
    oracle中连接与会话不是一个概念!!!在Oracle中,连接只是客户进程和数据库实例之间的一条特殊线路,最常见的就是网络连接。这条连接可能连接到一个专用服务器进程,也可能连接到调度器。如前所述,连接上可以有0个或...
  • Oracle的连接与会话

    2017-01-05 15:23:25
    连接并不是会话的同义词,在一条连接上可以建立0个、一个或多个...在Oracle中,连接只是客户进程和数据库实例之间的一条特殊线路,最常见的就是网络连接。这条连接可能连接到一个专用服务器进程,也可能连接到调度程...
  • oracle查看和更新统计表的信息

    千次阅读 2018-09-25 11:21:46
    在OEM中查看数据库的会话时,...oracle统计值查看 select * from dba_tables where table_name = TABLE 检查一下字段last_analyzed 的值,其值就是最后一次统计更新的日期 更新查看 全分析 完全计算法: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,613
精华内容 10,645
关键字:

oracle会话统计表