Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Informix Новый топик    Ответить
 Как узнать размер памяти выделенный сессии через SQL запрос?  [new]
vvt1
Member

Откуда: Rostov-on-Don
Сообщений: 108
Доброго здравия, коллеги!

Случаем ни кто не подскажет где храниться total memory, в какой таблице?
Или, случаем, запрос готовый, который покажет этот total memory по аналогии с onstat -g ses.
Что-то не могу найти как.
25 июл 17, 17:35    [20674191]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать размер памяти выделенный сессии через SQL запрос?  [new]
Журавлев Денис
Member

Откуда: St.John,NB,CA
Сообщений: 5480
наверное это есть в faq http://www.sql.ru/faq/faq.aspx?id=115000

в onmanager ( http://myinformix.narod.ru/scrshonm/ses_list.PNG ) вот такой запрос, поля с памятью 'p.po_usedamt+p.po_freeamt total, p.po_usedamt,'
+

select s.sid, trim(o.odb_dbname) odb_dbname, fo.txt,
q.scb_sqerrno, q.scb_iserrno,

trim(s.username) username, decode(s.ttyin,'',s.hostname,s.ttyin) ttyin,
dbinfo('utc_to_datetime',s.connected) ConnectTime, s.pid,
dbinfo('utc_to_datetime',t.th_startrun) last_run_time,
p.po_usedamt+p.po_freeamt total, p.po_usedamt,

--sdb_executions, sdb_cumtime, sdb_partnum, sdb_recnum, sdb_pdq_prio_req, sdb_pdq_priority,

r.lktout, r.nlocks, r.nreads, r.nwrites, r.upf_bufreads, r.upf_bufwrites,

r.upf_iscommit, r.upf_isrollback, upf_seqscans, upf_dsksorts, upf_totsorts, upf_logspuse,
bitval( r.flags, '0x00000001') us_inuse,
bitval( r.flags, '0x00000002') w_latch,
bitval( r.flags, '0x00000004') w_lock,
bitval( r.flags, '0x00000008') w_buffer,
bitval( r.flags, '0x00000010') w_checkpoint,
bitval( r.flags, '0x00000020') inreadRSAMcall,
bitval( r.flags, '0x00000040') backup_log,
bitval( r.flags, '0x00000080') OnMonitor,
bitval( r.flags, '0x00000100') inCriticalSection,
bitval( r.flags, '0x00000200') specDaemon,
bitval( r.flags, '0x00000400') archiving,
bitval( r.flags, '0x00000800') cleanDeadPS,
bitval( r.flags, '0x00001000') w_writeOfLogBuffer,
bitval( r.flags, '0x00002000') buffer_flushing,
bitval( r.flags, '0x00004000') remoteDBServer,
bitval( r.flags, '0x00008000') deadlockTime,
bitval( r.flags, '0x00010000') regularTime,
bitval( r.flags, '0x00040000') w_transaction,
bitval( r.flags, '0x00080000') primary,
bitval( r.flags, '0x00100000') building_indexes,
bitval( r.flags, '0x00200000') BtreeCleaner,

--(select 1 from sysconblock where r.sid = cbl_sessionid and cbl_sdbno <> 0 and cbl_flags=0 and cbl_flags2=0 and cbl_selflag=0) is_rollback,
0 is_rollback,
t.th_conwait

from syssqscb q, sysrstcb r, sysscblst s, systhreads t, syspoollst p,
outer syssdblock l, sysopendb o, flags_text fo
where s.sid = r.sid and t.th_addr=r.mttcb
and (po_name = s.sid||'') -- or po_name like s.sid||'*O%'
and s.sid = q.scb_sessionid --and q.scb_feversion > 0
and s.sid = l.sdb_sessionid and l.sdb_iscurrent = 'Y'
and s.sid = o.odb_sessionid and o.odb_iscurrent = 'Y'
and fo.tabname = 'sysopendb' and fo.flags = o.odb_isolation

order by scb_sqerrno, odb_dbname, ttyin, username

25 июл 17, 18:30    [20674379]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать размер памяти выделенный сессии через SQL запрос?  [new]
яфшуеі
Guest
$INFORMIXDIR/etc/sysmaster.sql

sysscblst
26 июл 17, 13:57    [20676490]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать размер памяти выделенный сессии через SQL запрос?  [new]
vvt1
Member

Откуда: Rostov-on-Don
Сообщений: 108
Журавлев Денис, спасибо.
Вроде получилось

set isolation to dirty read;
SELECT  sid,                            -- Informix sessionid
        username[1,8]     AS User,      -- User name
        sqs_dbname[1,18]  AS Database,  -- Database name
        po_usedamt+po_freeamt AS Total, -- Total memory bytes
        EXTEND (dbinfo('UTC_TO_DATETIME',connected), YEAR TO MINUTE)
                          AS Start_Time
FROM    syssessions, syssqlstat, syspoollst
WHERE   sid = sqs_sessionid
AND     sid != dbinfo('sessionid')  -- Exclude this session
AND     (po_name = sid||'')
ORDER BY 1;
26 июл 17, 16:26    [20677057]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать размер памяти выделенный сессии через SQL запрос?  [new]
vvt1
Member

Откуда: Rostov-on-Don
Сообщений: 108
яфшуеі, ага, увидел. Спасибо! Попробую и так.
26 июл 17, 16:28    [20677077]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать размер памяти выделенный сессии через SQL запрос?  [new]
vvt1
Member

Откуда: Rostov-on-Don
Сообщений: 108
Да, можно и так.

set isolation to dirty read;
SELECT  s.sid,                            -- Informix sessionid
        s.username[1,8]     AS User,      -- User name
        t.sqs_dbname[1,18]  AS Database,  -- Database name
        l.memtotal          AS Memtotal,  -- Total memory in bytes
        EXTEND (dbinfo('UTC_TO_DATETIME',s.connected), YEAR TO MINUTE)
                          AS Start_Time
FROM    syssessions s, syssqlstat t, sysscblst l
WHERE   s.sid = t.sqs_sessionid
AND     s.sid != dbinfo('sessionid')  -- Exclude this session
AND     s.sid = l.sid
ORDER BY 1;
26 июл 17, 16:48    [20677161]     Ответить | Цитировать Сообщить модератору
Все форумы / Informix Ответить