Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
Hello world! Стоит задача разбивать данные таблицы-источника по годам и класть их в соответствующие таблицы-назначения. Например, за 2018 год данные должны попасть в T_2018, а за 2017 в T_2017. Подскажите, возможно ли это сделать используя data flow task и его expressions? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 17:59 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
Yagrus2Hello world! Стоит задача разбивать данные таблицы-источника по годам и класть их в соответствующие таблицы-назначения. Например, за 2018 год данные должны попасть в T_2018, а за 2017 в T_2017. Подскажите, возможно ли это сделать используя data flow task и его expressions? Религиозные убеждения не дозволяют использовать insert select? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 18:02 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
Yagrus2Hello world! Стоит задача разбивать данные таблицы-источника по годам и класть их в соответствующие таблицы-назначения. Например, за 2018 год данные должны попасть в T_2018, а за 2017 в T_2017. Подскажите, возможно ли это сделать используя data flow task и его expressions?Испоьзуйте внутри таска Conditional Split ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 19:10 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
Yagrus2Hello world! Стоит задача разбивать данные таблицы-источника по годам и класть их в соответствующие таблицы-назначения. Например, за 2018 год данные должны попасть в T_2018, а за 2017 в T_2017. Подскажите, возможно ли это сделать используя data flow task и его expressions? Можно и без Expressions. Делаете в Data Flow источник - SQL from variable для выборки данных определенного года, получатель данных - Table name from variable, и в цикле крутите заполнение таблиц, модифицируя переменные через Expression. Или как alexeyvg выше предлагал - через Conditional Split. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2018, 11:45 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
FerdipuxYagrus2Hello world! Стоит задача разбивать данные таблицы-источника по годам и класть их в соответствующие таблицы-назначения. Например, за 2018 год данные должны попасть в T_2018, а за 2017 в T_2017. Подскажите, возможно ли это сделать используя data flow task и его expressions? Можно и без Expressions. Делаете в Data Flow источник - SQL from variable для выборки данных определенного года, получатель данных - Table name from variable, и в цикле крутите заполнение таблиц, модифицируя переменные через Expression. Или как alexeyvg выше предлагал - через Conditional Split. Автору destination менять нужно, а не source. Yagrus2, Если список получателей динамический, используйте Script Component в качестве destination. Если фиксированный, то, как уже говорили выше, Conditional Split ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2018, 13:54 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
msLexАвтору destination менять нужно, а не source. Yagrus2, Если список получателей динамический, используйте Script Component в качестве destination. Если таблицы имеют одинаковый набор колонок, их названия и тип - то вполне работает метод с именем таблицы из переменной в OLE DB Destination. Попроще будет чем программировать Script Destination, динамику тоже поддерживает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2018, 14:29 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
Ferdipux, Решил попробовать реализовать через SQL from variable Для этого использую Execute SQL Task, чтобы заполнить соответствующие переменные: Переменная Data typeiQuarterList ObjectsQuarterList ObjectВ настройках Execute SQL Task, в SQLStatment находится запрос, возвращающий такой набор: sQuarter iQuarter2014_06 2014062014_04 2014042014_05 2014052014_09 201409А на вкладке Result Set задал такое соответствие sQuarter --> sQuarterList iQuarter --> iQuarterList Работа пакета завершается ошибкой . [Execute SQL Task] Error: There is an invalid number of result bindings returned for the ResultSetType: "ResultSetType_Rowset". Подскажите, что нужно поменять в настройках? p.s. - Если запрос возвращает один столбец, то на вкладке Result Set, для Result Name нужно указать 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2018, 15:51 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
FerdipuxmsLexАвтору destination менять нужно, а не source. Yagrus2, Если список получателей динамический, используйте Script Component в качестве destination. Если таблицы имеют одинаковый набор колонок, их названия и тип - то вполне работает метод с именем таблицы из переменной в OLE DB Destination. Попроще будет чем программировать Script Destination, динамику тоже поддерживает.Не пойму, для каждой строки из исходной таблицы нужно будет менять OLE DB Destination? По моему, вы не понимаете, в чём задача :-) Таким способом можно перебрать OLE DB Destination в цикле, но тогда придётся делать исходную выборрку столько раз, сколько будет разных OLE DB Destination, что неэффективно Так зачем замедлять, если есть специально предназначенный для разделения потока данных Conditional Split? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2018, 16:09 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
А почему никто не предлагает сделать partitioned view, под ним таблицы с Constraints на даты? Тогда destination вообще один будет, а все записи поза вас сервер по таблицам раскидает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2018, 21:23 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
GlebanskiА почему никто не предлагает сделать partitioned view, под ним таблицы с Constraints на даты? Тогда destination вообще один будет, а все записи поза вас сервер по таблицам раскидает.Мда, что то в голову не пришло, обычно в таких случаех это и советовали... Единственно, балк инсёрт при этом невозможен, производительность Data Flow task резко упадёт, и, соответственно, применимость такого решения зависит от объёмов данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2018, 10:25 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
Yagrus2, Вам для получения результатов запроса нужно использовать только 1 переменную типа Object. Если Connection manager типа OLEDB - смаппить эту переменную на элемент 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2018, 11:11 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
FerdipuxYagrus2, Вам для получения результатов запроса нужно использовать только 1 переменную типа Object. Если Connection manager типа OLEDB - смаппить эту переменную на элемент 0. Я так и делаю. Захотелось поэкспериментировать и инициализировать две переменных. Каждая с типом Object. Но не вышло, получил ошибку: [Execute SQL Task] Error: There is an invalid number of result bindings returned for the ResultSetType: "ResultSetType_Rowset". Всегда должна быть одна переменная? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2018, 12:15 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
Yagrus2Но не вышло, получил ошибку: [Execute SQL Task] Error: There is an invalid number of result bindings returned for the ResultSetType: "ResultSetType_Rowset". Всегда должна быть одна переменная?В смысле, вы хотите положить одно значение в 2 переменных? Так нельзя, да, всегда должна быть только одна переменная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2018, 14:08 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
alexeyvg, Нет. Запрос возвращает два столбца. Каждый столбец хотел бы положить в свою переменную типа Object ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2018, 15:26 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
Yagrus2alexeyvg, Нет. Запрос возвращает два столбца. Каждый столбец хотел бы положить в свою переменную типа ObjectНу, для типа ResultSetType_Rowset весь рекордсет возвращается как одно значение. Да и зачем это нужно, ну, будет 2 коллекции с записями, вместо одной, это же неудобно, как сопроставлять записи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2018, 15:35 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
alexeyvgНу, для типа ResultSetType_Rowset весь рекордсет возвращается как одно значение. Да и зачем это нужно, ну, будет 2 коллекции с записями, вместо одной, это же неудобно, как сопроставлять записи? А для чего тогда есть возможность создавать несколько отношений между Rowset - ом и переменными? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 14:02 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
Yagrus2, SQL выражение может вернуть несколько наборов данных. При этом для каждого можно определить свою переменную-объект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 15:30 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
Yagrus2alexeyvgНу, для типа ResultSetType_Rowset весь рекордсет возвращается как одно значение. Да и зачем это нужно, ну, будет 2 коллекции с записями, вместо одной, это же неудобно, как сопроставлять записи? А для чего тогда есть возможность создавать несколько отношений между Rowset - ом и переменными? Вообще справа внизу окошка есть кропка с надписью Help, при нажатии которой вам будет показано нечто интересное :-) В частности: "If the result set type is Full result set or XML, you must use 0 as the result set name." А возможность создавать несколько отношений между Rowset - ом и переменными предназначена для другого типа возврата - Single row В этом случае в каждую переменную записывается значение из первой строки рекордсета, из колонки, имя которой указано в Relult Name Это всё тоже описано в том же хелпе, с примерами, как потом использовать результаты. Владислав КолосовSQL выражение может вернуть несколько наборов данных. При этом для каждого можно определить свою переменную-объект.Разве? Я думал, что остальные рекордметы (и соответстенно маппинг) игнорируются. По крайней мере так описано в хелпе; впрочем, работать может и не совсем так, как описано :-) "If the Execute SQL task uses the Full result set result set and the query returns multiple rowsets, the task returns only the first rowset . If this rowset generates an error, the task reports the error. If other rowsets generate errors, the task does not report them." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 17:34 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
Весь рассказ выглядит как-то сомнительно с бизнес-точки зрения. ИМХО конечно. задача разбивать данные таблицы-источника по годам и класть их в соответствующие таблицы-назначения. Например, за 2018 год данные должны попасть в T_2018, а за 2017 в T_2017 Задача- разбить или разбивать? Источника или источников? Если у вас есть таблица-источник с данными за 2017, то сколько раз вы ее "переложите" в другую? Данные за 2017 уже не станут внезапно данными за 2016, не так ли. Их достаточно ведь переложить один раз? А данные за 2018. Вы же не собираетесь каждый день копировать данные за январь 2018? Они же уже находятся в T_2018? Я к тому, что если процедура однократная, то и нечего городить сложные коды. Данные можно условно говоря и на флешке перенести. Уж те, что до 01-01-2018 точно. Написать можно и супер-корявый код, запустить его один раз и забыть. А если это ежедневный процесс, то у вас и таргет почти всегда один - T_Номер_Текущего_год. Вы же не делаете "delete from T_2018", перед там все заново "класть". Если это так, то можно по идее - Set "Data access mode" to "Table name or view name variable - fast load" - Set the variable name to User::TargetTable , где TargetTable выставлять через параметр при запуске. Ну и чтоб совсем безопасно, MERGE вместо INSERT использовать. Как-то так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 17:37 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
alexeyvg, давно не брал в руки шашки, но, насколько я помню, для разных драйверов по-разному. Для OLE DB они нумеруются с нуля и дальше. Рекордсет номер 2 будет иметь номер 1 и так далее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 17:38 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
Владислав Колосовдавно не брал в руки шашки, но, насколько я помню, для разных драйверов по-разному. Для OLE DB они нумеруются с нуля и дальше. Рекордсет номер 2 будет иметь номер 1 и так далее. Это вы путаете колонки и рекордсеты. Для OLEDB - колонки имеют номера, начиная с 0, для ADO.NET - можно использовать имена. Как утверждает документация Microsoft , в Execute SQL Task всегда возвращается только первый рекордсет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 18:49 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
FerdipuxВладислав Колосовдавно не брал в руки шашки, но, насколько я помню, для разных драйверов по-разному. Для OLE DB они нумеруются с нуля и дальше. Рекордсет номер 2 будет иметь номер 1 и так далее. Это вы путаете колонки и рекордсеты. Для OLEDB - колонки имеют номера, начиная с 0, для ADO.NET - можно использовать имена.Да, тоже припоминаю, что в одном случае колонки по номерам, а в другом по именам. Значит, всё таки несколько рекордсетов использовать нельзя :-( Жаль, всё таки принцип наличия нескольких рекордсетов - фишка, выгодно выделявшая сиквел, но почему то нельзя это использовапть как внутри сиквела, так и в миерософтовких клиентах, типа SSIS или SSRS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 20:32 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
alexeyvgЖаль, всё таки принцип наличия нескольких рекордсетов - фишка, выгодно выделявшая сиквел, но почему то нельзя это использовапть как внутри сиквела, Кажется, в ограниченном числе случаев можно. Но только при полном совпадении по набору полей и их типу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 09:24 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
Yagrus2Hello world! Стоит задача разбивать данные таблицы-источника по годам и класть их в соответствующие таблицы-назначения. Например, за 2018 год данные должны попасть в T_2018, а за 2017 в T_2017. Подскажите, возможно ли это сделать используя data flow task и его expressions? Я бы не долго думая сделал бы сразу кучу потов от 2015 до 2035 года и прописал бы все назначения. Можно даже сгенерить пакет и таблицы кодом, если таких потов много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 12:31 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
Yagrus2, А вообще есть партиционирование ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 12:31 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
FerdipuxЭто вы путаете колонки и рекордсеты. Для OLEDB - колонки имеют номера, начиная с 0, для ADO.NET - можно использовать имена. Как утверждает документация Microsoft , в Execute SQL Task всегда возвращается только первый рекордсет.То есть при настройке [Execute SQL Task] в Full result set, он возвращает один набор. Если Connection manager типа OLEDB - нужно смаппить объектную переменную на элемент 0. Подскажите что это за объект - 0? Провел эксперимент. Запрос возвращает таблицу из двух столбцов. Указываю мапинг элемента 0 на объектную переменную. Далее циклом перебираю объектную переменную и кладу результат в текстовую переменную. В watch вижу, что в ней хранится запись из первого столбца. Можно ли добраться до второго? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 12:40 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
a_voronin, Версия сервера не позволяет использовать внутренне партицирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 12:42 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
Ferdipux, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 12:43 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
a_voroninYagrus2, А вообще есть партиционирование Пришла дикая мысль. А если сделать INSTEAD OF INSERT TRIGGER на вьюху. И в триггере кидать данные по таблицам. Кто-то делал такое? Насколько это адекватно по производительности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 14:40 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
a_voronin, а если в триггере придётся в разные переписывать? Сразу обвалится производительность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 15:24 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
Владислав Колосовa_voronin, а если в триггере придётся в разные переписывать? Сразу обвалится производительность. В триггере есть псевдовременная таблица Inserted. Из неё и кидаем в разные таблицы. Кидать в разные таблицы по любому придется и фильтровать входной поток тоже. Вопрос насколько эффективно это в SSIS и насколько в триггере? Откуда такое заявление про "обвалиться производительность"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 15:28 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
a_voronina_voroninYagrus2, А вообще есть партиционирование Пришла дикая мысль. А если сделать INSTEAD OF INSERT TRIGGER на вьюху. И в триггере кидать данные по таблицам. Кто-то делал такое? Насколько это адекватно по производительности?Эта мысль сразу в голову приходит, для описанной задачи. Как и распределённое представление. Но производительность упадёт, ведь это будет уже не балк инсёрт, а куча инсёртов в кучу таблиц с фильтром по колонке, так сказать, "полю секционирования". Вот для распределённого представления шанс есть. Наверное. Может, сиквел такой умный, и из одного потока сделает несколько балк-ов, ведь это именно "распределённое представление", а не абстрактный уод. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 16:20 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
a_voroninКидать в разные таблицы по любому придется и фильтровать входной поток тоже. Вопрос насколько эффективно это в SSIS и насколько в триггере? Откуда такое заявление про "обвалиться производительность"?Там же нельзя фимльтровать поток. Там будет 20 (например, если 20 периодов) инсёртов с select из inserted с условием по полю, то есть 20 сканов этой псевдо-таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 16:22 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
alexeyvga_voroninКидать в разные таблицы по любому придется и фильтровать входной поток тоже. Вопрос насколько эффективно это в SSIS и насколько в триггере? Откуда такое заявление про "обвалиться производительность"?Там же нельзя фимльтровать поток. Там будет 20 (например, если 20 периодов) инсёртов с select из inserted с условием по полю, то есть 20 сканов этой псевдо-таблицы. Я предполагаю, что скан Inserted является на два порядка более быстрой операцией, чем вставка в физическую таблицу. Тем более, что она скорее всего, храниться в некоей быстрой памяти или уже закеширована в память. Другое дело, что под SSIS возникнет многопоточность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 16:40 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
a_voroninДругое дело, что под SSIS возникнет многопоточность.Она будет полезной, если только диски в RAID или быстрый SSD. BOLBULK INSERT [ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ] FROM 'data_file' SSIS обязателен? Если источник подходящий, то BULK INSERT неплох. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 16:48 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
a_voroninЯ предполагаю, что скан Inserted является на два порядка более быстрой операцией, чем вставка в физическую таблицу. Тем более, что она скорее всего, храниться в некоей быстрой памяти или уже закеширована в память.Вставка в таблицу будет в любом случае. А скан, конечно, быстрый, но если сканов много... Не говоря уже о том, что inserted может получиться такой, что памяти не хватит. tunknownBOLBULK INSERT [ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ] FROM 'data_file' SSIS обязателен? Если источник подходящий, то BULK INSERT неплох.Так вопрос в том, будет ли работать BULK INSERT при вставке из триггера, или вставке во VIEW. Вот из SSIS с Conditional Split точно будет максимально быстро, а остальные варианты нужно проверять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 16:56 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
Триггреы далеко НЕ всегда возможны и далеко НЕ всегда желательны как ETL разработчик - в БД оч. часто не дадут влезть вообще. Conditional Split - это внутренность SSIS и всегда м.б использована. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 17:13 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
Yagrus2Ferdipux, В данном компоненте - в следующей строке пишете <Variable для второго столбца> - 1 И получаете значение из второго столбца ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 18:15 |
|
||
|
SSIS | програмная настройка data flow task
|
|||
|---|---|---|---|
|
#18+
Гулин Федор Триггреы далеко НЕ всегда возможны и далеко НЕ всегда желательны как ETL разработчик - в БД оч. часто не дадут влезть вообще. Conditional Split - это внутренность SSIS и всегда м.б использована. Речь идёт о триггере на стороне DESTINATION. Уж там вы должны иметь какие-то возможности. Тем более речь идет о триггере на вьюхе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 14:52 |
|
||
|
|

start [/forum/topic.php?all=1&fid=46&tid=1688665]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
39ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 364ms |

| 0 / 0 |
