Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
Ребята, извините за наивный вопрос:) Ситуация следующая: я всю професиональную жизнь работал с версионниками - начинал с IB, поледние три года с Oracle. Но тут встала производственная необходимость освоить DB2, т.к. было принято решение разрабатывать под нее. Так вот, столкнуся с тем, что если я выдал update какой-то сроки или insert - то вся таблица блокируется даже на чтение. Насколько я смог выяснить - это типично для блокировочника. Отсюда вопрос, а что делать если в приложении есть (потенцеально будут) долгоиграющие транзакции? Понятно, что нужно как-то пересмотреть архитектуру, чтобы избавится от них насколько это возможно. Но такие задачи как ежемесячный биллинг и закрытие периода в принципе не могут длиться меньше несокльких минут, а то и десятков минут, в зависимости от объемов. Как в этом случае поступают зубры?:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2006, 18:21 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
Надо смотреть конкретные ситуации. Можно поставить следующие пересенные DB2_SKIP_INSERTED DB2_EVAL_UNCOMII ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 09:35 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
ну и skip_deleted. только все равно - правильная архитектура рулез Архитектура транзакций, я имел ввиду. "Разведение" транзкций , конкурирующих за ресурс, во времени. А вот insert|update одной строки - и блокировка всей базы???? Бывали приложения с сотнями insert/update в секунду, и параллельно зарпосами на статистику, но чтоб вся таблица блокировалась - исключительно редкая ситуация. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 10:08 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
пардон, не всей базы, а всей таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 10:08 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
что интересно, так это то, что не будет универсального рецепта - типа, делай так, и все будет хорошо (за исключением случая с явным глюком, когда одна строка insert блокирует таблицу) В каждом случае и приложении надо выстраивать архитектуру транзакций в зависимости от поставленных задач. Кстати, один из универсальных рецептов - не делайте select * from table :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 10:11 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
Встречный вопрос - а какого типа блокировка? Если разделяемая - то ничего страшного. Если блокироется вся таблица при update строки, то следовательно в плане доступа TABLESCAN и уровень изоляции выше CS. Если TABLESCAN - то наверное нет нужного индекса. Или можно посмотреть какой тип блокировки выставлен на таблице. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 10:31 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
snapshot rules. gardenman - сдается мне, блокировка таблицы идет из-за select * from tables. При чем это вызывыает ужас и громкую панику - как вообще можно работать в таких условиях :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 10:56 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
ну, тогда надо посоветовать: select * from tables with ur ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 11:07 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
я против. Вырабатывает плохой стиль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 11:16 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
Господа, спасибо за отзывы. Проблема видимо в том, что я этот сервер только вчера поставил - опыт нулевой:) Чувствую надо много RTFM. 1. По поводу того, что я вообще делал: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. DB2_SKIP_INSERTED DB2_EVAL_UNCOMII и запрашиванием в селекте нужных данных? Так? А эти настройки действуют на уровне всей БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 11:44 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
В догонку, можно ли качнуть у IBM полный комплект документации, оформленный как-нибудь поудобнее нежели куча pdf с невнятными названиями?? ------------------------------------------------------- Автор благодарит алфавит за любезно предоставленные ему буквы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 11:46 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
на support page (интересна мне логика) есть documentation fixpack. вот он то и нужен Только все равно, я скептик в этом плане. gardenman - пари, по поводу удастся Apex что-нибудь, или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 11:56 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
Apex - можешь пояснить, какое отношение select * from table может иметь к твоему бизнес приложению? Если никакого - то все нормально, и "ужоса" нет. А если в требованиях есть такое предложение, то 1) требования составлены неправильно 2) неправильно выбрана база под требования с большой вероятностью, что таки 1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 12:00 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
2 Apex тебе ж сказали поробуй select * from table with ur короче делаешь db2set DB2_SKIPINSERTED=YES db2set DB2_SKIPDELETED=YES db2set DB2_EVALUNCOMMITED=YES db2stop db2start Смотришь чего получилось: db2set Для общего развития можешь глянуть на db2set -rl http://www.sql.ru/forum/actualthread.aspx?tid=193720&hl=documentation#1637032 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 12:16 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
ну фсе, щаз как по-напоявится приложений с select * ....... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 12:20 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
ggvну фсе, щаз как по-напоявится приложений с select * ....... Да человек всего-лишь экспериментирует, чего распереживался-то? :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 12:45 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
ggvgardenman - пари, по поводу удастся Apex что-нибудь, или нет? ggvну фсе, щаз как по-напоявится приложений с select * ....... Вам неприятно читать мои вопросы? ggvна support page (интересна мне логика) есть documentation fixpack. Если интересно, то я с удовольствием поясню, если вы, в свою очередь, поясните, что именно вам интересно. ggvApex - можешь пояснить, какое отношение select * from table может иметь к твоему бизнес приложению? Поясняю: 1. Абсолютно никакго, пример взят с потолка, чтобы разобраться с механизмом работы этой СУБД. 2. Если я перепишу запрос так Код: plaintext 1. gardenman тебе ж сказали поробуй select * from table with ur Попробую. Я так понимаю, что в этом случае я должен увидеть незакомиченую строку? gardenman короче делаешь db2set DB2_SKIPINSERTED=YES db2set DB2_SKIPDELETED=YES db2set DB2_EVALUNCOMMITED=YES db2stop db2start Смотришь чего получилось: db2set Для общего развития можешь глянуть на db2set -rl http://www.sql.ru/forum/actualthread.aspx?tid=193720&hl=documentation#1637032 Спасибо, попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 13:04 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
дык.... Я так думаю, есть куча док, статьей, в том числе и на developerworks, и на db2mag, redbooks, которые поясняют механизмы работы db2 udb. выполнение select * (да еще с последующим get snapshot) могут быть полезны только как иллюстрация к принципам работы. а непонятно мне было, чего это ссылка на документацию db2 легче всего находится через support page на ibm.com Эту загадочную логику вы мне вряд ли поясните :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 13:17 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
ggvдык.... Я так думаю, есть куча док, статьей, в том числе и на developerworks, и на db2mag, redbooks, которые поясняют механизмы работы db2 udb. выполнение select * (да еще с последующим get snapshot) могут быть полезны только как иллюстрация к принципам работы. а непонятно мне было, чего это ссылка на документацию db2 легче всего находится через support page на ibm.com Эту загадочную логику вы мне вряд ли поясните :) А, вы про это:) Ну да, тут логики никакой, просто еще не освоился я на ibm.com. Для сравнения попробуйте на oracle.com найти документацию, даже с первого раза это сделать очень просто. А тут какой-то fixpak...непривычно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 13:37 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
gardenman2 Apex тебе ж сказали поробуй select * from table with ur короче делаешь db2set DB2_SKIPINSERTED=YES db2set DB2_SKIPDELETED=YES db2set DB2_EVALUNCOMMITED=YES db2stop db2start Смотришь чего получилось: db2set Для общего развития можешь глянуть на db2set -rl http://www.sql.ru/forum/actualthread.aspx?tid=193720&hl=documentation#1637032 Только не забывай Commit/Rollback после select * from table with ur Иногда with ur локирует catalog tables! Причем именно иногда! From IBM doc - "UR isolation acquires almost no locks " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 21:20 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
я скептик потому, так как не верю, что человек с версионника будет работать успешно на блокировочнике. Как и наоборот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 09:50 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
ggvя скептик потому, так как не верю, что человек с версионника будет работать успешно на блокировочнике. Как и наоборот. Если подробно знать архитектуру и принципы работы, то мне кажется вполне нормальным, что человек может поднабраться и там и там опыта и работать как с версионниками, так и блокировочниками. А вот если не знать архитектуру, то и зная к примеру DB2 или ASA можно сесть в большую лужу, работая с MSSQL или ASE, хотя вроде бы все и блокировочники, впрочем как и наборот при переходе с того же IB/PostgreSQL на Oracle. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 09:59 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
ASCRUS - согласен. Но процент людей, знающих и умеющих, и прочее по списку, на нескольких платформах, вполне попадет под статистическую погрешность, и под исключение, подтверждающее правило :) Ведь правда же, наиболее частая реакция на новую базу - "Блин, как с этим можно вообще работать!" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 10:14 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
Ну так от опыта зависит, причем не опыта работы с каким либо сервером, а общим стажем работы и кол-вом реализованных проектов. я к примеру не очень огорчился и тем более стал возмущаться, увидев кривоватый GUI под DB2, у самих Sybase Central периодически на сборщике мусора уходит в аут (тут более всего люди приходящие с IB начинают возмущаться, типа не хотим работать с ASA, потому что мы привыкли к IBExpert - вообще бред, причем тут разный поход к интерфейсу GUI и самому серверу, тем более что в ASA на самом деле побольше всего есть на GUI, просто концепции другие). То же и по утилитам - к примеру многий дельфовый народ удивляется, как вообще можно работать на сплошь глюкавом PowerBuilder - а я вот отвечаю, что просто замечательно можно работать, делая качественный приложения и сокращая в разы время разработки клиентских приложений по сравнению с другими продуктами. Или к примеру вообще ставят минусом ASA, что нет штатных средств восстановления БД - пускают сервер на FAT32, без упсов и не делая никаких бакупов и хотят, чтобы после физического повреждения файлов БД, сервер сам восстанавливал структуру базы, обрезая те данные, что на ошибочных страницах - тоже чистой воды бред, смысл серверу восстанавливать части данных, когда есть резервирование, накаты логов и зеркалирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 12:42 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
ASCRUSНу так от опыта зависит, причем не опыта работы с каким либо сервером, а общим стажем работы и кол-вом реализованных проектов. я к примеру не очень огорчился и тем более стал возмущаться, увидев кривоватый GUI под DB2, у самих Sybase Central периодически на сборщике мусора уходит в аут (тут более всего люди приходящие с IB начинают возмущаться, типа не хотим работать с ASA, потому что мы привыкли к IBExpert - вообще бред, причем тут разный поход к интерфейсу GUI и самому серверу, тем более что в ASA на самом деле побольше всего есть на GUI, просто концепции другие). Кхе, кхе, меня кривыми гуями не испугаешь, в оракле с ними тоже не фантан... SQL*Plus - вот инструмент Oracle DBA. Другое дело, что мыслить при разработке приходится иначе... вот тут не все просто... это знаетели привычка выработаная годами... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 17:17 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
вот я об этой привычке и говорил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 22:07 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
Подниму тему, у меня есть функция, которая возвращает table. Код: plsql 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. В ней хочу поставить опцию with UR; - Для того чтобы не было блокировок. Получаю ругачку : [i] The isolation clause is ignored because of the statement context. Можно как то побороть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 11:59 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
medoed, Specifying the isolation level - http://pic.dhe.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.db2.luw.admin.perf.doc/doc/t0005269.html Kind regrads, Vadim. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 12:42 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
GVF112GVF, Спасибо, но я не нашёл там ограничения на функции. У меня версия не 10, а 9.7. У меня в 2-х местах ошибки и пока разбирался - нашёл глюк в том, что если в функции используется select не из таблицы, а из NIKNAMES , то вот она ошибка, если заменяем на таблицу то всё окей. Какие пути развития есть, тоесть как бы сделать так , что бы в функции и NIKNAME остался и уровень изоляции можно было поставить UR. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 13:07 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
medoedПодниму тему, у меня есть функция, которая возвращает table. ... В ней хочу поставить опцию with UR; - Для того чтобы не было блокировок. Получаю ругачку : [i] The isolation clause is ignored because of the statement context. Можно как то побороть? В DB2 можно в подзапросах использовать isolation clause. Типа: Код: sql 1. 2. 3. 4. Но для nickname это не работает, и в этом случае вы можете только указать изоляцию для всего запроса типа: Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 13:54 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, Марк, спасибо - что откликнулись! Оптимизация в DB2 - вещь просто тяжелая. В MSSQL я могу у каждой таблицы sometable (nolock) могу ставить и не париться, в DB2 это жесть!!! В том то и проблема, что если я использую with ur для всей функции, где есть NikName - ошибка, если ставлю вместо NikName - обычную таблицу , то ошибки нет. Задам ещё вопрос, как мне в функции, в которой используется автономная транзакция, заюзать with UR; Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 14:11 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
medoed, Я, наверное, не очень понятно выразился. Не используйте указание isolation clause в функциях. Если надо, используйте указание уровня изоляции в запросе, который использует эту функцию. Кроме того, если у вас параметр базы cur_commit = ON (это умолчание для вновь создаваемых в 9.7 базах) и вы работаете на уровне изоляции CS (уровень по-умолчанию), то на нём писатели не блокируют читателей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 14:33 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
Mark Barinsteinmedoed, (это умолчание для вновь создаваемых в 9.7 базах) и вы работаете на уровне изоляции CS (уровень по-умолчанию) Вот тут немного не понятно, для вновь создаваемых чего. Функции мигрировали с 8 - ки на 9.7 - их никак не перекомпилировали! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 14:51 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
medoedВот тут немного не понятно, для вновь создаваемых чего.Баз данных. Cursor stability (CS) level behavior for newly created databases has been changed . Т.е. если вы в 9.7 сделали CREATE DATABASE MYDB ... то этот параметр будет в ON по-умолчанию. Если вы мигрировали базу с предыдущей версии, то этот параметр (он не существовал ранее) установится в OFF, и его, если надо, можно потом выставить в ON. medoedФункции мигрировали с 8 - ки на 9.7 - их никак не перекомпилировали!"Мигрировали функции" - это что значит? Саму базу мигрировали командой UPGRADE DATABASE или просто пересоздали командой CREATE FUNCTION? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 15:45 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, Уточнил у админа 1) Саму базу мигрировали командой UPGRADE DATABASE 2) Скоро поставим cur_commit = ON и задача по переписыванию функций (оптимизации на грязное чтение) сама отпадёт. Спасибо - вопрос закрыт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 16:29 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
Прошу прощения с закрытием. Опыта у меня маловато, а блокировки не прекращаются (читателей). Дано: 1) База мигрирована c 8-ки на 9-ку командой : UPGRADE DATABASE. 2) Параметр CUR_COMMIT установлен в ON. 3) Запрос select CURRENT ISOLATION as iso_level from SYSIBM.SYSDUMMY1 - возвращает пустоту. Я так понимаю - сейчас на базе уровень изоляции не установлен (берется из пакетов). Чтобы установить уровень изоляции на базу, в батнике нужно прописать так: db2 terminate db2 change isolation to CS db2 connect to sample Верно или я в чем то запутался? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2013, 12:18 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
medoed, Разберитесь кто и кого блокирует. Если блокируются запросы из процедур, которые были созданы до переключения cur_commit в ON, то пакетам процедур надо rebind. Monitoring database locking ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2013, 10:32 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
>>Если блокируются запросы из процедур, которые были созданы до переключения cur_commit в ON, то пакетам процедур надо rebind. Процедур почти нет, функции возвращают данные, а вся логика на толстом клиенте - тоесть update и insert формирутся автоматически. Rebind - производится еженедельно! Насчет монитора - Monitoring database locking , админ сказал, что он сильно систему нагружает! А нет никакой функции или системной процедуры, типа sp_lock - в конкретный момент, чтоб было видно кому плохо и от кого (от какого запроса). Марк - у Вас нет такой доработки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2013, 13:28 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
medoedНасчет монитора - Monitoring database locking , админ сказал, что он сильно систему нагружает! А нет никакой функции или системной процедуры, типа sp_lock - в конкретный момент, чтоб было видно кому плохо и от кого (от какого запроса). Марк - у Вас нет такой доработки? Есть SYSIBMADM.MON_LOCKWAITS . Больше информации о заблокированном запросе можно получить из MON_GET_APPL_LOCKWAIT . Но проблема этих запросов в том, что вы можете не увидеть там запроса, который ресурс заблокировал. Например, этот запрос мог изменить данные и завершится (стал неактивным), а наложенные им блокировки будут висеть до конца таранзакции. В MON_LOCKWAITS показывается только активный в данный момент запрос блокирующей транзакции, который может быть совсем не тем, который заблокировал ресурс. Т.е. вы не получите без монитора блокировок историю запросов блокирующей транзакции, без чего может быть непонятно, что же за запрос заблокировал записи. Такую историю запросов активной транзакции можно получить только на сервере командой: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2013, 17:26 |
|
||
|
|

start [/forum/topic.php?all=1&fid=43&tid=1601554]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 273ms |
| total: | 448ms |

| 0 / 0 |
