Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
2 OLAPMASTER & Константин Лисянский: Юрий дайте пример. В принципе, готов решить и в частном, если Вы поставите условие более формально. Попробую привести пример: План: Год, ПлановаяВыручка 2004, 100 Факт: Дата, Товар, Город, РекламнаяКампания, Фактическая выручка, Масса 15.02.2004, Пиво Балтика, Москва, Реклама была, 50, 4 24.03.2004, Пиво Сибирская Корона, Рекламы не было, Москва, 30, 5 12.06.2004, Пиво Балтика, Реклама была, Санкт-Петербург, 5, 1 Задача: Распределить плановую выручку по товарам пропорционально их массе, и при этом плановая выручка по городам должна быть распределена пропорционально фактической выручке. По разрезу (измерению) РекламнаяКампания плановую выручку не распределять, только показать общей суммой в итоговой строке отчета. Ну как, есть мнения как решить эту задачку без помощи OLAP на уровне вьюшки? Здесь несколько измерений, у каждого - своя база для распределения, и есть противоречие - я считаю, что без использования кубика в плоской вьюшке сделать ничего не удастся. Также стоит учесть, что в реальных базах данных - серьезные объемы данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2005, 21:51 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
Хоть вопрос и не мне адресован, но все же. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Результат по вашим данным такой: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2005, 02:36 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
2Birkhoff: Спасибо. А то я тут немного отвлёкся на работу :)) На самом деле, я хотел попросить Юрия, чтобы он сформулировал задачу по правилам форума (CREATE TABLE, INSERT INTO, чтодолжно получиться в результате), но руки не дошли. Понятно, что ничего сложного в этой Юриной задачке для SQL нету. С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2005, 12:52 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
select p.year, f.tovar, f.city, sum(p.plan*(t.f/c.f)*(f.weight/t.w)) new_plan from (select year, plan from plan) p, -- План (select to_number(to_char(data,'YYYY')) year,sum(fact) f from fact -- where to_number(to_char(data,'YYYY')) = 2004 -- group by to_number(to_char(data,'YYYY'))) c, Итого!!! за 2004 год (select to_number(to_char(data,'YYYY')) year,city, sum(fact) f,sum(weight) w from fact -- where to_number(to_char(data,'YYYY')) = 2004 -- group by to_number(to_char(data,'YYYY')), city) t, Выручка по годам за год (select to_number(to_char(data,'YYYY')) year,tovar,city, weight, fact from fact) f и сам факт по дням!! where f.year=p.year and f.year=c.year and f.year=t.year and f.city=t.city group by p.year, f.tovar, f.city Ну что добавить могу, Birkhoff это хороший запрос. Правда план наверно сказал тебе MERGE JOIN CARTESIAN?? НУ ВООБЩЕМ ДОБАВИТЬ НИЧЕГО НЕ МОГУ ЕСТЬ ТАКОЙЖЕ ЗАПРОС ТОЛЬКО СБОКУ НАПИСАНЫЙ. И ЮРА КАКТО ЗАДАЧУ ПОСТАВИЛ СКОЛЬСКО. МОЕ ВИДИНИЕ ТАК: SELECT FACT_ALL.YEAR, FACT_ALL.ITEM, FACT_ALL.CITY, PLAN.PLAN * (ITEM_WEIGHT / WEIGHT_YEAR) * (CITY_VAL / VAL_YEAR) NEW VAL (SELECT YEAR, PLAN FROM PLAN) PLAN, (SELECT YEAR, CITY, SUM(VAL), FROM FACT GROUP BY YEAR, CITY) CITY_VAL, (SELECT YEAR, ITEM, SUM(WEIGHT) FROM FACT GROUP BY YEAR, ITEM) ITEM_WEIGHT, (SELECT YEAR , SUM(WEIGHT) FROM FACT GROUP BY YEAR) WEIGHT_YEAR, (SELECT YEAR, SUM(VAL) FROM FACT GROUP BY YEAR) VAL_YEAR , (SELECT UNIQUE YEAR, CITY, ITEM FROM FACT) FACT_ALL WHERE PLAN.YEAR = CITY_VAL.YEAR, AND ITEM_WEIGHT.YEAR = CITY_VAL.YEAR, AND WEIGHT_YEAR.YEAR = ITEM_WEIGHT.YEAR;, AND VAL_YEAR.YEAR = WEIGHT_YEAR.YEAR, AND FACT_ALL.YEAR = VAL_YEAR.YEAR -- НУ ВРОДЕ ВСЕ ГОДА СОЕДИНИЛ AND FACT_ALL.CITY = CITY_VAL.CITY AND FACT_ALL.ITEM = ITEM_WEIGHT.ITEM Я ТАК ТОЧНО НЕ ПОНЯЛ ЧТО ХОТЕЛ ЮРИЙ ЛИБО ТАК ЛИБО КАК ЭТО СДЕЛАЛ Birkhoff. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2005, 18:50 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
OLAPMASTER Спасибо за замечание, но я ведь говорил что запрос можно усовершенствовать. Ну а если использовать оракловые фенечки, то переписать (мой) запрос можно например так: Код: plaintext 1. 2. 3. 4. На Юриных данных ему даже GROUP BY не нужен :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2005, 20:55 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
2 Birkhoff: Если я правильно понял ваше "парадоксальное" условие, то ответ будет примерно такой Мое условие не парадоксальное, а взятое из жизни. Если ответ неправильный, покажите какой должен быть правильный и почему Спасибо за такой красочный SQL-запрос, он сделан изящно, но ответ - неправильный, и тут даже комментировать нечего. Но для тех кто не имеет под рукой калькулятора и не дружит с устным счетом, прокомментирую: Задача в том, чтобы распределить плановую выручку - 100 единиц по товарам, пропорционально массе. То есть на первую запись приходится (4 * 100)/(4 + 5 + 1) = 40. На вторую - 50. На третью - 10. При этом распределение по городам должно быть пропорционально фактической выручке. То есть на первую запись приходится (50 * 100)/(50 + 30 + 5) = 58.82. На вторую - 35.29. На третью - 5.88. Как мы видим, имеется противоречие, поскольку базы распределения - разные. Поэтому на уровне плоской вьюшки (SQL-запросом) задачу решить невозможно. Эту задачу можно решить только с помощью OLAP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2005, 21:48 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
Что то я не понял? То есть один запрос должен выводить два распределения одновремнно? Код: plaintext 1. 2. 3. 4. В результате получаем Код: plaintext 1. 2. 3. ПРосто в первом запросе я сначала считал пропорцию выручки по городам, а потом внутри города делал разнос плана в зависимости от веса товара. Но тут задача еще проще, просто нужно обсчитать два разных плана. Объясните, в чем приницпиальное отличие SQL запросов написанных руками от тех, что построены мышкой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2005, 22:28 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
JuriiКак мы видим, имеется противоречие, поскольку базы распределения - разные. Поэтому на уровне плоской вьюшки (SQL-запросом) задачу решить невозможно. Эту задачу можно решить только с помощью OLAP. Юра, вы заблуждаетесь. Та задача, что вы обрисовали - подпадает под условие многомерной линейной интерполяции, и ваш подход с действиями на калькуляторе тут не катит. Ибо желаемую точку надо находить двигаясь не поочереди вдоль координатных осей, что вы делаете поочередными действиями на калькуляторе, а одновременно, предварительно рассчитав, вектора, что и делают вышеприведенные SQL запросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2005, 00:08 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
2 Birkhoff: Что то я не понял? То есть один запрос должен выводить два распределения одновремнно? Задача требует, чтобы в зависимости от выбранного среза в отчете использовался тот или иной алгоритм распределения (на основе той или иной базы). В нашей дискуссии обсуждается, можно ли решить эту задачу, написав SQL-запрос. Я считаю - что нельзя, некоторые эксперты по SQL - считают что можно. Думаю шаг за шагом мы приближаемся к ясности, что SQL-запрос для решения этой задачи написать невозможно по определению. В результате получаем Что и требовалось доказать? Но тут задача еще проще, просто нужно обсчитать два разных плана. Теоретически некоторые правильные цифры Вы получили, но вот только у Вас уже получилось 2 показателя, вместо одной Плановой Выручки... Что будет, если разных баз для распределения в модели будет больше, например 10? Вы сделаете 10 показателей? Ну и наконец, Вы как-то забыли про поле с рекламной кампанией - по ней нельзя распределять Плановую Выручку... Объясните, в чем приницпиальное отличие SQL запросов написанных руками от тех, что построены мышкой? Разницы разумеется нет. Просто в данной задаче к решению я прихожу не с помощью SQL-запросов, созданных мышкой, а с помощью проектирования OLAP-куба на основе двух таблиц фактов разной гранулярности. Для каждого измерения OLAP-куба я мышкой указываю базу распределения для показателя Плановая Выручка. 2 backfire: Юра, вы заблуждаетесь. Та задача, что вы обрисовали - подпадает под условие многомерной линейной интерполяции, и ваш подход с действиями на калькуляторе тут не катит. Калькулятор я упомянул, поскольку с его помощью можно проверить правильность решения задачи (но я не предлагаю с помощью него решать задачу). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2005, 10:06 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
Юрий, правильно сказал Константин - нужно было попросить задачу в классическом оформлении - что на входе, что точно на выходе. А то с каждой итерацией возникают новые условия. Может быть эту задачу принципиально невозможно решить на компьютере, а только на калькуляторе? Потому что основная вирутальная вьюшка, которая задает условие находится у вас в голове? :) Пока "приницпиальная невозможность" ясна только вам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2005, 13:07 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
Юра, чтобы облегчить теоретическое понимание того, почему это можно сделать с помощью SQL приведу такое соображение, ибо задача, которую Вы ставите, до сих пор не описана формально. Итак. Многомерное пространство представляется в реляционной БД с помощью так называемой схемы звезда (те самые таблицы фактов, которые Вы используете для кубов). Соответственно, все данные, которые нужны для проведения вычислений, которые нужны для разнесения планов присутствуют в реляционных таблицах. Возможно, кто-то сказал Вам, что SQL не умеет напрямую адресовать ячейки таблиц в произвольном порядке, и на этом Вы строите свои аргументы. Однако это не так, с помощью SQL вполне можно адресовать любые ячейки двумерной таблицы (которая, как мы выяснили, реализует многомерную модель). Имея всё это в виду не очень понятно, почему на SQL нельзя реализовать вышеобозначенную операцию. Ваши аргументы (а точнее их отсутствие), сводятся к тому, что этого не может быть, потому что не может быть никогда. Учитывая, что Ваше общение с SQL происходит через не в меру интеллектуальный конструктор выражений (который, несмотря на Ваши утверждения, не сможет сгенерировать SQL произвольной сложности, это я утверждаю на основе своей практики, просьба не пенять по поводу того, что я не заказал у Вас соответствующий тренинг, просто не было соответствюущего бюджета :). И действительно, через построитель запросов Impromptu, действительно, сложно будет построить SQL-запрос, который привели коллеги выше. Юрий, если у Вас хватит мужества в этом месте признать своё поражение, то, возможно, Вы чуть-чуть поднимете свой рейтинг. Если будете дальше упираться, у меня есть чувство, что Вас раскатают в лепёшку, поскольку тут сидят, действительно, эксперты (хотя это слово уже немного опошлено здесь, поскольку мелькает слишком часто) в области SQL. С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2005, 14:38 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
Задача требует, чтобы в зависимости от выбранного среза в отчете использовался тот или иной алгоритм распределения (на основе той или иной базы). Этож кто так задачу ставит? Вы сами это придумали или вам это заказчик заказал? Так такому заказчику в первую очередь надо пройти тренинг по многомерному распределению данных. Хотя если извилина одна и по той катком проехали, то никакой тренинг не поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2005, 14:58 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
BirkhoffOLAPMASTER Спасибо за замечание, но я ведь говорил что запрос можно усовершенствовать. Ну а если использовать оракловые фенечки, то переписать (мой) запрос можно например так: Код: plaintext 1. 2. 3. 4. На Юриных данных ему даже GROUP BY не нужен :) Классный запрос, over (partition by city) такой связкой я считал нарастающий итог. Юрий, ну даже если мы с помошью over (partition by) не можем написать этот чудо запрос, то мы может прибегнуть к PL/SQL и тогда Ваша задача решаеться очень просто. Если Вы не знаете что это такое, то это язык программирования где можно пошагово разобрать каждую запись и понять что и сней делать, так что я думаю в этом проблем не будет. Birkhoff ??? Спасибо за замечание ??? Это не замечание, просто интересно как оптимизатор будет это выполнят. Так он декартовым произведением пошел? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2005, 15:00 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
OLAPMASTERмы может прибегнуть к PL/SQL Ну, это будет не совсем правильно. Речь идёт о решении задачи одним запросом. С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2005, 15:20 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
Константин Лисянский OLAPMASTERмы может прибегнуть к PL/SQL Ну, это будет не совсем правильно. Речь идёт о решении задачи одним запросом. С уважением, Константин Лисянский http://lissianski.narod.ru Константин я конечно понимаю FAIR PLAY. Но Юрий непонятно ставит задачу и всетаки важно достежения результата и если Юрию потребуеться постоить аж целый куб что бы ее решит, то я думаю анонимный блок PL/SQL который вставит записи в табличку это вполне честно. Примеры которые были приведены выше решали задачу Юрия. Если он с этим не согласен, пусть точнее поставить задачу. P.S. на войне все средства хороши. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2005, 15:37 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
OLAPMASTERBirkhoff ??? Спасибо за замечание ??? Это не замечание, просто интересно как оптимизатор будет это выполнят. Так он декартовым произведением пошел?А я понял комментарий как замечание :) И действительно присмотрелся и нашел как можно обойтись без внешнего Group by. Хотя cost запроса остался такой же. Но видимо это зависит еще и от объемов. Да, был декартов джойн. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2005, 15:57 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
Birkhoff OLAPMASTERBirkhoff ??? Спасибо за замечание ??? Это не замечание, просто интересно как оптимизатор будет это выполнят. Так он декартовым произведением пошел?А я понял комментарий как замечание :) И действительно присмотрелся и нашел как можно обойтись без внешнего Group by. Хотя cost запроса остался такой же. Но видимо это зависит еще и от объемов. Да, был декартов джойн. Поправь меня если я не прав но over (partition by) он понимает как Group by да?? Или как то по другому работает?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2005, 17:25 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
2 all SQL Experts: Господа, давайте будем закруглять дискуссию, придем к консенсусу. Представьте, что у нас есть кубик - в нем 5 измерений по 100 элементов в каждом. Средствами многомерного моделирования можно совместить в кубе несколько таблиц фактов (факт, план, прогноз и т.п.) и разнести агрегированные значения на детальные уровни иерархии. Любое число из этого куба можно вычислить с помощью SQL-запроса, написанного ручками. Можно и всю многомерную модель представить в виде плоской вьюшки. Но представьте, что это будет за вьюшка - в ней будет 10 миллиардов строк... Так что предлагаю сделать такой вывод - теоретически SQL-запрос написать можно, но он будет медленно работать, и его юзабилити будет нулевым. Поэтому на практике стоит решать эту задачу с помощью MOLAP. Что касается правильной формулировки задачи - я подумаю, постараюсь ее сформулировать, чтобы всем было понятно, но думаю и сейчас всем это понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2005, 19:55 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
Jurii2 all SQL Experts: Господа, давайте будем закруглять дискуссию, придем к консенсусу. Представьте, что у нас есть кубик - в нем 5 измерений по 100 элементов в каждом. Средствами многомерного моделирования можно совместить в кубе несколько таблиц фактов (факт, план, прогноз и т.п.) и разнести агрегированные значения на детальные уровни иерархии. Любое число из этого куба можно вычислить с помощью SQL-запроса, написанного ручками. Можно и всю многомерную модель представить в виде плоской вьюшки. Но представьте, что это будет за вьюшка - в ней будет 10 миллиардов строк... Так что предлагаю сделать такой вывод - теоретически SQL-запрос написать можно, но он будет медленно работать, и его юзабилити будет нулевым. Поэтому на практике стоит решать эту задачу с помощью MOLAP. Что касается правильной формулировки задачи - я подумаю, постараюсь ее сформулировать, чтобы всем было понятно, но думаю и сейчас всем это понятно. и опять Вы как всегда неправы на счет медленной работы запросов к Вашему сведению в современных СУБД есть такой модуль как оптимизатор запросов, который не будет без крайней надобности вытягивать по 10 миллиардов строк это тоже стоит обьяснить Вам подробнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2005, 20:14 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
JuriiТак что предлагаю сделать такой вывод - теоретически SQL-запрос написать можно, но он будет медленно работать, и его юзабилити будет нулевым. Поэтому на практике стоит решать эту задачу с помощью MOLAP. Что касается правильной формулировки задачи - я подумаю, постараюсь ее сформулировать, чтобы всем было понятно, но думаю и сейчас всем это понятно. Юра, я хоть и не причисляю себя к экпертам SQL и являюсь приверженцем (M)OLAP, но тут с вами категорически не соглашусь. С чего вы взяли, что все эти 10 миллиардов кому то разом понадобятся? С чего вы взяли, что запросы на распределение будут тормозить? Все это голословно. Тем более из ваших уст. (вы себя никак не показали что вы DWH/ROLAP/SQL эксперт). Вы просто не делали на SQL ничего серьезного и у вас предубеждение, что SQL это "каменный век, когда колеса еще не были круглыми". Каждый инсртрумент в руках мастера способен творить чудеса. И не надо хаять SQL, просто потому что он вам не по-душе и вы предпочитаете мышку клавиатуре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2005, 23:57 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
олаписти опять Вы как всегда неправы на счет медленной работы запросов к Вашему сведению в современных СУБД есть такой модуль как оптимизатор запросов, который не будет без крайней надобности вытягивать по 10 миллиардов строк это тоже стоит обьяснить Вам подробнее? Просто объяснить в форуме мало - надо тренинг пройти. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2005, 23:59 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
2 OLAPMASTER Поддерживаю SQL это рульная штука! Я даже могу нарастающий итог посчитать на диалекте Oracle Классный запрос, over (partition by city) такой связкой я считал нарастающий итог. А что используя ANSI SQL посчитать нарастающий итог нельзя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2005, 12:27 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
Angel132 OLAPMASTER Поддерживаю SQL это рульная штука! Я даже могу нарастающий итог посчитать на диалекте Oracle Классный запрос, over (partition by city) такой связкой я считал нарастающий итог. А что используя ANSI SQL посчитать нарастающий итог нельзя? Можно, но так меньше писать. :) Да и оптимизатор думаю так эффективнее работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2005, 13:26 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
Angel132 OLAPMASTER Поддерживаю SQL это рульная штука! Я даже могу нарастающий итог посчитать на диалекте Oracle Классный запрос, over (partition by city) такой связкой я считал нарастающий итог. А что используя ANSI SQL посчитать нарастающий итог нельзя? Я поправлю Birkhoff, дело в том что нарастающий итог на ANSI SQL только по первичному ключу с подзапросом. Тоесть вы в нутри запроса двигаясь по записям, находите меньшие значения первичного ключа и делаете sum от текушего к меньшему. Это очень медленно если на большой таблице но это возможно, но а если у вас не первичного ключа то я незнаю как возможно посчитать нарастающий итог. Даже немогу предположить. Может Birkhoff у тебя уже есть опыт написания подобного запроса, я бы с удовольствием посмотрел на него. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2005, 16:44 |
|
||
|
один куб или два
|
|||
|---|---|---|---|
|
#18+
OLAPMASTERЯ поправлю Birkhoff, дело в том что нарастающий итог на ANSI SQL только по первичному ключу с подзапросом. Тоесть вы в нутри запроса двигаясь по записям, находите меньшие значения первичного ключа и делаете sum от текушего к меньшему Зачем же вложенный подзапрос? можно и просто JOIN'ом. select T1.USERNAME, T1.USER_ID, sum(T2.USER_ID) from DBA_USERS T1 join DBA_USERS T2 on T1.USERNAME >= T2.USERNAME group by T1.USERNAME, T1.USER_ID order by 1 -- выполнять на Oracle. Но согласен, что аналитические функции будут работать быстрее. Сам Кайт об этом писал :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2005, 17:15 |
|
||
|
|

start [/forum/topic.php?fid=49&msg=32928895&tid=1871743]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 268ms |
| total: | 422ms |

| 0 / 0 |
