|
Просмотр транзакций
|
|||
---|---|---|---|
#18+
Здравствуйте Как с помощью SQL запросов к SMI получить информацию Еслть ли длинные транзакции Заполнение транзакцией логических журналов (какая максимально заполнила) Распределенные транзакции Как отловить длинные транзакции и кто их порождает Есть ли транзакции в состоянии ожидания ? буду признателен за ответ ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2010, 00:03 |
|
Просмотр транзакций
|
|||
---|---|---|---|
#18+
Yorik56Здравствуйте Как с помощью SQL запросов к SMI получить информацию Еслть ли длинные транзакции Заполнение транзакцией логических журналов (какая максимально заполнила) Распределенные транзакции Как отловить длинные транзакции и кто их порождает Есть ли транзакции в состоянии ожидания ? буду признателен за ответ Посмотри - http://www.informix.kiev.ua/articles/sysmast/sysmast.htm Figure 22. SQL script to display transactions and logs used Думаю, Василий Шульженко сможет помочь ... :) С уважением, Вадим. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2010, 00:39 |
|
Просмотр транзакций
|
|||
---|---|---|---|
#18+
Yorik56Здравствуйте Как с помощью SQL запросов к SMI получить информацию Еслть ли длинные транзакции Заполнение транзакцией логических журналов (какая максимально заполнила) Распределенные транзакции Как отловить длинные транзакции и кто их порождает Есть ли транзакции в состоянии ожидания ? буду признателен за ответ Отправляю некоторые SQL-запросы. Возможно их потребуется подправить: 1) --- onstat -u --- SELECT x0.sid, x0.username, hex(x1.flags) state ,dbinfo('utc_to_datetime',connected) start_time ,current hour to second - extend(dbinfo('utc_to_datetime',connected),hour to second) elapsed_time , bitval(x1.flags,1) Y1 {User structure in use} , bitval(x1.flags,2) S1 {Waiting for a latch} , bitval(x1.flags,4) L1 {Waiting for a lock} , bitval(x1.flags,8) B1 {Waiting for a buffer} , bitval(x1.flags,16) C1 {Waiting for a checkpoint} , bitval(x1.flags,32) R5 {In a read call} , bitval(x1.flags,64) X5 {Writing logical-log file to backup tape} , bitval(x1.flags,128) M7 {On-monitor Unix} , bitval(x1.flags,256) {In a critical section} , bitval(x1.flags,512) D7 {Special daemon} , bitval(x1.flags,1024) A3 {Archiving IDS} , bitval(x1.flags,2048) C7 {Clean up dead processes} , bitval(x1.flags,4096) G1 {Waiting for write of log buffer} , bitval(x1.flags,8192) B7 {Special buffer-flushing thread} , bitval(x1.flags,16384) P3 {Remote database server} , bitval(x1.flags,32768) {Deadlock timeout used to set RS_timeout} , bitval(x1.flags,65536) {Regular lock timeout} , bitval(x1.flags,262144) T1 {Waiting for a transaction} , bitval(x1.flags,524288) P4 {Primary thread for a session} , bitval(x1.flags,1048576) {Thread for building indexes} , bitval(x1.flags,2097152) B7 {B-tree cleaner thread} from "informix".sysscblst x0 ,"informix".sysrstcb x1, sysopendb o, sysuserthreads t --, syssesprof p where (x0.sid = t.us_sid) -- and (x0.sid = p.sid) and (o.odb_sessionid=x0.sid and o.odb_sessionid !=dbinfo('sessionid') and o.odb_dbname= (select odb_dbname from sysmaster:sysopendb where odb_sessionid=dbinfo('sessionid') and odb_iscurrent='Y') ) and ((x0.address = x1.scb ) and ("informix".bitval(x1.flags ,'0x80000' )= 1 ) ) order by 1,2; 2) --- --- Monitoring use logs of users sessions with (SMI). --- DATABASE sysmaster; select number, uniqid, (used/size*100) from syslogs where uniqid >= (select min(tx_loguniq) from systrans where tx_loguniq > 0) union select number, uniqid, 0.00 from syslogs where uniqid < (select min(tx_loguniq) from systrans where tx_loguniq > 0); 3) --- -- Displays how many open transactions are in each log. -- database sysmaster; -- Select the logical logs numbers for each transaction select tx_logbeg, tx_loguniq from systrans into temp b; -- Count the number of transactions begining in each log select tx_logbeg, count(*) cnt from B where tx_logbeg > 0 group by tx_logbeg into temp C; -- Count the number of transactions currently in each log select tx_loguniq, count(*) cnt from B where tx_loguniq > 0 group by tx_loguniq into temp D; select number, uniqid, size, used, -- is_used, -- is_current, -- is_backed_up, -- is_archived c.cnt tx_beg_cnt, d.cnt tx_curr_cnt from syslogs, outer c, outer D where uniqid = c.tx_logbeg and uniqid = d.tx_loguniq; 4) -- -- Monitoring amount of logical log space used by a session; -- (onstat -g tpf sess-id) thread profile; -- -- sid - Session id; -- longtxs - Long transaction; -- logspused - Log space used by current transaction (bytes); -- maxlogsp - Maximum log space used by a transaction in this session (in bytes); -- SELECT sid, longtxs, logspused, maxlogsp FROM sysmaster:syssesprof WHERE longtxs <> 0; -- нужно уточнить условие ?! Скрипт от Василия ... :) 5) ------------------------------------------------- -- User Sessions activity profile -- All users and all info -- (sysmaster:syssesprof,syssessions) -- -- Shulzhenko V. DBA_Tools ------------------------------------------------- set isolation to dirty read; select username ,tty ,hostname ,count(p.sid) sessions ,'----- info from syssesprof -----' _____ ,'-- locks --' _____ ,sum(lockreqs) lockreqs , sum(locksheld) locksheld , sum(lockwts) lockwts ,sum(deadlks) deadlks , sum(lktouts) lktouts ,'-- isam --' _____ ,sum(isreads) isreads , sum(iswrites) iswrites ,sum(isrewrites) isrewrites , sum(isdeletes) isdeletes ,'-- buff_io --' _____ ,sum(bufreads) bufreads , sum(bufwrites) bufwrites ,'-- page_io --' _____ ,sum(pagreads) pagreads , sum(pagwrites) pagwrites ,'-- sort_scan --' _____ ,sum(seqscans) seqscans , sum(total_sorts) total_sorts ,sum(dsksorts) dsksorts , sum(max_sortdiskspace) max_sortdiskspace ,'-- logs --' _____ ,sum(logspused) logspused ,sum(maxlogsp) maxlogsp , sum(logrecs) logrecs ,'-- transact --' _____ ,sum(iscommits) iscommits ,sum(isrollbacks) isrollbacks , sum(longtxs) longtxs from syssesprof p,syssessions s WHERE p.sid = s.sid -- and username= -- -- 'name_user' -- group by 1,2,3 order by 1; ------------------- Еще один ... 7) ------------------------------------------------- -- Session current SQL (syssqlcurses) -- (last Current (active) main SQL-query by SID) -- -- Shulzhenko V. DBA_Tools ------------------------------------------------- set isolation to dirty read; select '__________________' ________________ ,scs_sessionid SID ,scs_currdb DataBase ,scs_isolationlevel ISOLATION_LEVEL ,'__________________' ________________ ,scs_sqlstatement SQL_STATEMENT from syssqlcurses where scs_sessionid= -- --Укажи SID (session id) -- 8) -- Displays users and position in logical logs. -- This script is based on an undocumented sysmaster table systrans -- and may not work in all versions. It was tested with 7.23. -- Some fields are commented out so the display will fit on 80 columns database sysmaster; select t.username, t.sid, tx_id, -- tx_addr, -- tx_flags, -- tx_mutex, tx_logbeg, tx_loguniq, tx_logpos -- tx_lklist, -- tx_lkmutex, -- tx_owner, -- tx_wtlist, -- tx_ptlist, -- tx_nlocks, -- tx_lktout, -- tx_isolevel, -- tx_longtx, -- tx_coordinator, -- tx_nremotes from systrans x, sysrstcb t where tx_owner = t.address --and tx_logbeg > 0; order by tx_logbeg desc 9) -- Displays users and position in logical logs. -- This script is based on an undocumented sysmaster table systrans -- Some fields are commented out so the display will fit on 80 columns database sysmaster; select t.username, t.sid, tx_id, -- tx_addr, -- tx_flags, -- tx_mutex, tx_logbeg, tx_loguniq, tx_logpos -- tx_lklist, -- tx_lkmutex, -- tx_owner, -- tx_wtlist, -- tx_ptlist, -- tx_nlocks, -- tx_lktout, -- tx_isolevel, -- tx_longtx, -- tx_coordinator, -- tx_nremotes from systrans x, sysrstcb t where tx_owner = t.address --and tx_logbeg > 0; order by tx_logbeg desc; 10) ------------------------------------------------- -- Session's activity profile (syssesprof) -- All info about ALL sessions -- -- Shulzhenko V. DBA_Tools ------------------------------------------------- set isolation to dirty read; select '----- info from syssesprof -----' __activity__ ,sid, '-- locks --' __________ ,lockreqs,locksheld,lockwts ,deadlks,lktouts ,'-- rw --' __________ ,isreads,iswrites ,isrewrites,isdeletes ,'-- buff_io --' __________ ,bufreads, bufwrites ,'-- page_io --' __________ ,pagreads,pagwrites ,'-- sort_scan --' __________ ,seqscans, total_sorts ,dsksorts,max_sortdiskspace ,'-- logs --' __________ ,logspused,maxlogsp,logrecs ,'-- transact --' __________ ,iscommits,isrollbacks,longtxs from syssesprof -- where sid= -- -- sid -- Думаю, для начала хватит. Можно еще выполнить анализ логов (с помощью onlog) для пользовательской сессии, которая порождает длинные транзакции и т.д. С уважением, Вадим. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2010, 16:35 |
|
Просмотр транзакций
|
|||
---|---|---|---|
#18+
Yorik56 Как с помощью SQL запросов к SMI получить информацию: Есль ли длинные транзакции ? Заполнение транзакцией логических журналов (какая максимально заполнила ?) Наверное, больше интересуют пользователи и сессии, которые порождают длинные транзакции ? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2010, 20:38 |
|
Просмотр транзакций
|
|||
---|---|---|---|
#18+
Yorik56 Как с помощью SQL запросов к SMI получить информацию: Есть ли транзакции в состоянии ожидания ? Слишком широкий вопрос, т.к. видов ожидания слишком много и непонятно , что именно вы хотите найти :) Опять же, что вам даст сама транзакция ? Может нужны сессия и юзер ? Надеюсь, поможет определиться нижеследующий запрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2010, 20:47 |
|
Просмотр транзакций
|
|||
---|---|---|---|
#18+
Именно необходимо занть 1) Пользователи которые порождают транзакции 2) Насколько каждая конкретная транзакция использует logspace 3) Таких транзакций немного но они очень дорогие Спасибо Постараюсь протестировать скрипты на 11.50 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2010, 09:24 |
|
Просмотр транзакций
|
|||
---|---|---|---|
#18+
Yorik56Именно необходимо занть 1) Пользователи которые порождают транзакции 2) Насколько каждая конкретная транзакция использует logspace 3) Таких транзакций немного но они очень дорогие цель-то у вас какая? В чем проблема? Хотите найти такие транзакции и разобраться с ними? Нет возможности/желания увеличивать журнал? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2010, 11:14 |
|
Просмотр транзакций
|
|||
---|---|---|---|
#18+
да хотелось бы и того и другого изменить размер файла журнала чтоб не быстро переключались да и найти тот запрос чтобы провести его оптимизацию (не мной конечно) чтоб хоть как то уменьшить это время ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2010, 13:49 |
|
Просмотр транзакций
|
|||
---|---|---|---|
#18+
Yorik56Именно необходимо занть 3) Таких транзакций немного но они очень дорогие А в чем исчисляется дороговизна? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2010, 16:01 |
|
Просмотр транзакций
|
|||
---|---|---|---|
#18+
zaietsYorik56Именно необходимо занть 3) Таких транзакций немного но они очень дорогие А в чем исчисляется дороговизна? Насколько Я понимаю - в используемых ресурсах ... :) Длинная транзакция - это не мед для ресурсов системы, требуемого SLA ... и финансовой стоимости $$$ С уважением, Вадим. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2010, 17:01 |
|
Просмотр транзакций
|
|||
---|---|---|---|
#18+
доровизна во времени простоя сервера пока транзакция идёт и времени подготовки данных для более длинных транзакций :) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2010, 18:03 |
|
Просмотр транзакций
|
|||
---|---|---|---|
#18+
GVF112GVF Насколько Я понимаю - в используемых ресурсах ... :) Длинная транзакция - это не мед для ресурсов системы, требуемого SLA ... и финансовой стоимости $$$ С уважением, Вадим. Понятие ресурса тоже относительное, четко определенных величин не так уж и много. :) По поводу длинных транзакций и финансовой стоимости - не все решения данной проблемы пропорцианальны финансовым вливаниям в железо. Хотя да, можно же и в людей вливать, там возможно что ближе к пропорциональности. В свое время делал чет подобное - ну выявлял я места где транзакции длинные (давно(в моем понимании) начались по метрике логов), а дальше дело не шло. Все конечно зависит от системы. Но метод топора наибоее действенен - урезаете параметры ЛТХ до приемлемых значений(у меня из расчета около 5 мин подъема), приложения начинают падать, грите что я не могу увеличить, так как это будет пропорцианально простою в случае аварийной ситуации Потом ставите трассировку на приложение и смотрите в каих местах ошибка. и подобные места в оперативном порядке правятся. Все довольно просто. Конечно подходит не для всех систем. Но это стоит меньших усилий по доказательству наличия проблемы чем искать на сервере проблемные транзакции, выявлять что это за приложение, что в данный момент делает пользователь а потом доказывать разработчику актуальность данной проблемы. ЛТХ на 11.50 меняются динамически. Пользователи народ непредсказуемый - там где разработчик думает что пользователь работает в транзакции, пользователь в транзакции может вполне нормально пить себе чай. Со временем такие места вылизываются и это нормальный процесс. Раз уж затронуд тему, может есть здесь представители IBM? Было бы очень хорошо, если бы было можно для отдельных пользователей или сессий указывать свои ЛТХ параметры отличные от конфигурационных. Иногда это действительно нужно. А может уже есть а я не дочитал как обычно? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2010, 18:28 |
|
Просмотр транзакций
|
|||
---|---|---|---|
#18+
Yorik56доровизна во времени простоя сервера пока транзакция идёт и времени подготовки данных для более длинных транзакций :) А в чем у вас собственно проблема? У вас проблема в быстродействии последовательных операций? По вашим признакам дороговизны у меня складывается впечатление что проблема в быстродействии сервера а не непосредственно в длинных транзакциях. Если судить о дороговизне как "времени простоя сервера пока транзакция идёт" то снова же - что такое в данном случае у вас время простоя, сервер то работает - обслуживает отранзакцию? Сервер не стоит - он работает. А если есть проблема длины транзакции - поставьте вайт чтобы успевали промониторить и оттолкнитесь от блокировок. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2010, 18:41 |
|
Просмотр транзакций
|
|||
---|---|---|---|
#18+
zaietsYorik56доровизна во времени простоя сервера пока транзакция идёт и времени подготовки данных для более длинных транзакций :) А в чем у вас собственно проблема? У вас проблема в быстродействии последовательных операций? По вашим признакам дороговизны у меня складывается впечатление что проблема в быстродействии сервера а не непосредственно в длинных транзакциях. Если судить о дороговизне как "времени простоя сервера пока транзакция идёт" то снова же - что такое в данном случае у вас время простоя, сервер то работает - обслуживает отранзакцию? Сервер не стоит - он работает. А если есть проблема длины транзакции - поставьте вайт чтобы успевали промониторить и оттолкнитесь от блокировок. Думаю, что проблема не в сервере. Есть подозрение, что разработчики что-то криво написали. Правда есть конечно моменты ... например, с распределенными транзакциями. Это трудно предвидеть и т.д. Как правило - 80% - это проблемы SQL ... :) С уважением, Вадим. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2010, 22:14 |
|
Просмотр транзакций
|
|||
---|---|---|---|
#18+
Yorik56, а какой у вас объем логов? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2010, 11:08 |
|
Просмотр транзакций
|
|||
---|---|---|---|
#18+
1000 Logs по 40 МБ ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2010, 13:15 |
|
Просмотр транзакций
|
|||
---|---|---|---|
#18+
Yorik561000 Logs по 40 МБ а параметры LTXHWM и LTXEHWM ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2010, 14:26 |
|
Просмотр транзакций
|
|||
---|---|---|---|
#18+
50/60 тонкость в том что изначально система определена и работает как OLTP но в конце отчетного периода появляются 2 3 транзакции которые блокируют систему те другие пользователи немогут продолжить работу пока транзакция не завершится ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2010, 23:03 |
|
|
start [/forum/topic.php?fid=44&msg=36873598&tid=1607476]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
181ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 239ms |
total: | 525ms |
0 / 0 |