|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
Dima T Нашел альтернативу использованию PACK. Задумка такая: заменяем в удаленных записях значение полей используемых в индексах на заведомо несуществующие. Таким образом при выборке по индексу он даст только не помеченные на удаление записи. кАшмар. нивабиду, просто веселое настроение, зовите санитаров - пусть устанавливают диагноз: параноидальные кошмары сменяются генерацией буйных идей. итак кулинар зашоренный, за руками не следит, у Димы вроде прояснилось, затем Остапа понесло. Дима, итак 2-ю часть марлезонского балета заканчиваем? мы увидели, что как-бы есть оптимизация, и тормозов нет от бинарного индекса? 2-ю часть заканчиваем? или еще тесты будут? в 3-й части балета тезис будет: "А у нас в квартире газ, а у вас?" ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 09:20 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
Dima TЗадумка такая: заменяем в удаленных записях значение полей используемых в индексах на заведомо несуществующие. [/b] Таким образом при выборке по индексу он даст только не помеченные на удаление записи. PRIMARY KEY можно не трогать , т.к. он уникальный, а запросы с указанием значения помеченного на удаление - нарушение целостности. ... Какие будут доводы против такого подхода? ... А так же нельзя использовать с ограничением Candidat/FOREIGN KEY, а так же Rule и до кучи триггеры, те можно только для индексов regular ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 09:21 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
Юристишко-выпускник2-ю часть заканчиваем? или еще тесты будут? Заканчиваем. Тестов достаточно, идея родилась, надо ее на реальных прогах испытывать, чем и займусь. PaulWistА так же нельзя использовать с ограничением Candidat/FOREIGN KEY, а так же Rule и до кучи триггеры, те можно только для индексов regular Это да, только для таких вещей есть MSSQL, в DBFе не использую целостность встроенную, так исторически сложилось Пробовал целостность пользовать еще в VFP5, пару раз сглючило так что PRIMARY KEY задвоился и таблица вообще перестала открываться, после этого только new_id() в контейнере хранил, в VFP9 вообще без контейнера работаю. Никого не агитирую делать именно так, это у меня так сложилось с учетом специфики работы и обслуживания моих приложений. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 10:28 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
Dima TЭто да, только для таких вещей есть MSSQL, в DBFе не использую целостность встроенную, так исторически сложилось ... Мда, грустно,...даже нечего сказать, мда.... Dima T... Пробовал целостность пользовать еще в VFP5, пару раз сглючило так что PRIMARY KEY задвоился и таблица вообще перестала открываться, после этого только new_id() в контейнере хранил, в VFP9 вообще без контейнера работаю. Никого не агитирую делать именно так, это у меня так сложилось с учетом специфики работы и обслуживания моих приложений. В 5-ке действительно был "глюк" с фильтрованными индексами. Кстати, а как до использования NewID вычислялjcm следующее значение? Вот недавний тред почему так делать неправильно ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 10:55 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
PaulWistКстати, а как до использования NewID вычислялjcm следующее значение? В 9-ке встроенный автоинкримент использую. В 6-ке пробовал несколько вариантов, окончательный такой: Код: 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. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110.
PaulWistВот недавний тред почему так делать неправильно Я в курсе, прежде чем нарушать правила я их тщательно изучаю. Все плюсы и прелести целостности знаю, и даже использую, только в базах MSSQL. DBF-ные базы у меня небольшие: 10-20 табличек, за ними можно и без целостности уследить. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 12:08 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
Dima T Нашел альтернативу использованию PACK. Задумка такая: заменяем в удаленных записях значение полей используемых в индексах на заведомо несуществующие. Насколько я понимаю, цель подобной замены - это повторное использование записей, ранее помеченных как удаленные? Данная концепция, не то, чтобы ошибочная, но она является "не естесственной" для работы с любыми данными. "Умерла, так умерла" (с). Какие проблемы Вы "поимеете" на этом пути: 1. Придется "оборачивать" команды по созданию новых записей в процедуры, которые сначала будут искать записи, помеченные как удаленные, а потом уже, если таких записей нет, физически создавать новые записи. 2. Придется просто выбросить все команды групповой вставки данных вроде APPEND FROM или INSERT-SQL, поскольку, очевидно, в них невозможно встроить предварительный поиск записей, ранее помеченных как удаленные 3. Сама по себе процедура восстановления записей, ранее помеченых как удаленные - не тривиальна. Например, довольно не тривиально решается задача конфликтов совместного доступа. Это когда два пользователя одновременно нашли запись, помеченную как удаленную, но использовать ее может только один из них. А второй должен отказаться от притязаний на эту запись и продолжить поиск. 4. Если в базе данных используются Memo-поля, то периодическая упаковка мемо-полей - не избежная и обязательная процедура. При этом экономия на упаковке самих таблиц - выглядит странно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 12:11 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
прошелмимоВладимирМСледовательно, в тестовых примерах недопустимо использование Count(*), поскольку она, скорее, вводит в заблуждение + стопитьсот а в реальных приложениях не использовать запросы с сортировкой, суммированием, группировкой и т.д. Почему это? Речь шла только и исключительно о запросе вида Код: plaintext
Было показано, что анализ производительности, основанный на подобных запросах приводит к ложным выводам. Про сортировку, суммирование и группировку вообще ничего не говорилось. Будьте внимательнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 12:17 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
ВладимирМпрошелмимопропущено... + стопитьсот а в реальных приложениях не использовать запросы с сортировкой, суммированием, группировкой и т.д. Почему это? Речь шла только и исключительно о запросе вида Код: plaintext
Было показано, что анализ производительности, основанный на подобных запросах приводит к ложным выводам. Про сортировку, суммирование и группировку вообще ничего не говорилось. Будьте внимательнее. теоретик, разговор про использование бинарных индексов и т.д. и т.п. будьте внимательны, следите за движениями рук. анализ производительности, произведенный анализом какого-то одно запроса - это бред и подтасовка фактов. подтасовывать факты - Вы любитель, + писать про то, что мыслит Ваш собеседник - иными словами писать домыслы. еще раз вопрос: зачем Вам - не проф.разработчику, лазить целыми днями по форумам и пытаться учить разработчиков с опытом? остановитесь на детях неразумных и найдите свою нишу на форуме, где Вас не назовут нехорошим словом. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 12:25 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
Dima T...Я в курсе, прежде чем нарушать правила я их тщательно изучаю. Все плюсы и прелести целостности знаю, и даже использую, только в базах MSSQL. DBF-ные базы у меня небольшие: 10-20 табличек, за ними можно и без целостности уследить. Опять же мда-а-а..., и транзакции значит не используются, ....мда... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 12:26 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
ВладимирМDima T Нашел альтернативу использованию PACK. Задумка такая: заменяем в удаленных записях значение полей используемых в индексах на заведомо несуществующие. Насколько я понимаю, цель подобной замены - это повторное использование записей, ранее помеченных как удаленные? да ВладимирМДанная концепция, не то, чтобы ошибочная, но она является "не естесственной" для работы с любыми данными. "Умерла, так умерла" (с). Почти такую же концепцию практикуют многие СУБД, например MS SQL: при удалении записи место в файле помечается свободным и может быть использовано повторно в будущем. ВладимирМКакие проблемы Вы "поимеете" на этом пути: 1. Придется "оборачивать" команды по созданию новых записей в процедуры, которые сначала будут искать записи, помеченные как удаленные, а потом уже, если таких записей нет, физически создавать новые записи. 3. Сама по себе процедура восстановления записей, ранее помеченых как удаленные - не тривиальна. Например, довольно не тривиально решается задача конфликтов совместного доступа. Это когда два пользователя одновременно нашли запись, помеченную как удаленную, но использовать ее может только один из них. А второй должен отказаться от притязаний на эту запись и продолжить поиск. Это не проблема, уже есть мысли что должно быть в моей функции AppendBlank() которая все это будет делать. Попытку одновременного использования учту в коде. ВладимирМ2. Придется просто выбросить все команды групповой вставки данных вроде APPEND FROM или INSERT-SQL, поскольку, очевидно, в них невозможно встроить предварительный поиск записей, ранее помеченных как удаленные Выброшу: APPEND FROM практически не использую, INSERT-SQL заменю на AppendBlank() c REPLACE ВладимирМ4. Если в базе данных используются Memo-поля, то периодическая упаковка мемо-полей - не избежная и обязательная процедура. При этом экономия на упаковке самих таблиц - выглядит странно. Мемополя не использую. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 12:34 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
Юристишко-выпускниканализ производительности, произведенный анализом какого-то одно запроса - это бред и подтасовка фактов. Вот и я о том же, запрос "select count(*) from ..." резко выделяется среди остальных типов запросов. Это говорит о том что для такого типа запросов в движке прописан отдельный способ их выполнения. Стоит только добавить что-то к запросу и он начинает вписываться в общую картину, например "select count(*), max(ID) from ..." ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 12:39 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
Dima T Кстати, при выбранной стратегии использования записей, ранее помеченных как удаленные, индекс по Deleted() становится жизненно необходим, поскольку будет постоянно выполняться поиск именно записи помеченной как удаленная. С другой стороны, поскольку таких записей, очевидно будет очень мало, то факт наличия такого индекса приведет к тормозам в "обычных" запросах. Стоит ли "овчинка выделки"? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 15:02 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
ВладимирМ Dima T Кстати, при выбранной стратегии использования записей, ранее помеченных как удаленные, индекс по Deleted() становится жизненно необходим, поскольку будет постоянно выполняться поиск именно записи помеченной как удаленная. С другой стороны, поскольку таких записей, очевидно будет очень мало, то факт наличия такого индекса приведет к тормозам в "обычных" запросах. Стоит ли "овчинка выделки"? Нет, индекс по Deleted() как раз и не нужен. По BINARY индексу поиск невозможен, он только в помощь оптимизатору запросов используется. У меня есть обычный индекс, есть значение которое я пишу в удаляемые записи чтобы они не мешали выборкам (значение которое не используется при нормальной работе, например, -1). Вот этот -1 я и буду искать по этому индексу. Например есть таблица c индексами: Код: plaintext 1. 2. 3.
Удаление будет так: Код: plaintext 1.
Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 15:37 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
Юристишко-выпускниканализ производительности, произведенный анализом какого-то одно запроса - это бред и подтасовка фактов. Именно на этот факт мы с Dima T и указали. На очень специфичный способ выполнения запроса с Count(*). И показали, что в любых других запросах статистика производительности получается совершенно иная. Тем не менее, лично Вы почему-то упорно игнорирует все другие типы запросов и настаиваете на том, что анализ производительности надо выполнять только и исключительно по запросу Count(*). Почему, собственно? С моей точки зрения, именно это и называется "бред и подтасовка фактов". Кстати, чтобы опять не скатится в перебранку, приведите свой собственный тест, который показал бы правоту Ваших слов. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 15:41 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
Dima TНет, индекс по Deleted() как раз и не нужен. По BINARY индексу поиск невозможен, он только в помощь оптимизатору запросов используется. Он также используется в любых оптимизируемых выражениях. В частности, в любых операциях поиска с FOR-условием. А это можно сделать в команде LOCATE Код: plaintext 1. 2.
Dima TУ меня есть обычный индекс, есть значение которое я пишу в удаляемые записи чтобы они не мешали выборкам (значение которое не используется при нормальной работе, например, -1). Вот этот -1 я и буду искать по этому индексу. Это означает, что у Вас не будет контроля уникальности первичного ключа. Впрочем, можно просто инвертировать значение ключа. Менять знак, оставляя абсолютное значение без изменения. Соответственно, просто искать значения меньше нуля В общем-то, верю, что можно написать. Просто, не вижу смысла. Это значительно более громоздкое решение, чем периодическая упаковка. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 15:52 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
ВладимирМЮристишко-выпускниканализ производительности, произведенный анализом какого-то одно запроса - это бред и подтасовка фактов. Именно на этот факт мы с Dima T и указали. На очень специфичный способ выполнения запроса с Count(*). И показали, что в любых других запросах статистика производительности получается совершенно иная. Тем не менее, лично Вы почему-то упорно игнорирует все другие типы запросов и настаиваете на том, что анализ производительности надо выполнять только и исключительно по запросу Count(*). Почему, собственно? С моей точки зрения, именно это и называется "бред и подтасовка фактов". Кстати, чтобы опять не скатится в перебранку, приведите свой собственный тест, который показал бы правоту Ваших слов. Что Вы от меня хотите добиться? Зачем теоретику, который не имеет отношения к реальной разработке ПО какие-то тесты, знания и т.д.? Вы - вредитель. Вам об этом открыто заявляют. В ходе беседы мы определились, что "тормозов" нет, миллисекунды и т.д. не существенны, что возможна разработка ПО и возможны рек-и по использованию бин.индексов (целый список - лень писать). Паковка также ежедневно, а то и ежемесячно, а то и вообще никогда не практикуется по множеству причин (целый список - лень писать). Далее Вы вместе с Димой продолжаите нести пароноидальный бред и постить безумные идеи - они веселят, не более того. Ок - я сижу и наблюдаю. Не пишите про "тормоза" индекса. "Тормоза" это не индексы - а нечто иное. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 15:56 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
ВладимирМDima TУ меня есть обычный индекс, есть значение которое я пишу в удаляемые записи чтобы они не мешали выборкам (значение которое не используется при нормальной работе, например, -1). Вот этот -1 я и буду искать по этому индексу. Это означает, что у Вас не будет контроля уникальности первичного ключа. Впрочем, можно просто инвертировать значение ключа. Менять знак, оставляя абсолютное значение без изменения. Соответственно, просто искать значения меньше нуля Будет уникальность, во-первых я специально nNaklId не трогаю в своем коде. Во-вторых присвоение свежего ID: Код: plaintext
Хотя можно и штатный контроль целостности оставить добавив во все таблицы пустую запись с ID=-1 ВладимирМВ общем-то, верю, что можно написать. Просто, не вижу смысла. Это значительно более громоздкое решение, чем периодическая упаковка. Ничего громоздкого: 1. сделать три функции MyDelete(), MyAppend() и MarkDeleted() для проверки что все помеченные были правильно удалены. 2. заменить в коде delete in MyTable на MyDelete('MyTable') и append blank in MyTable на MyAppend('MyTable') Вобщем сделаю - выложу. PS Это можно пользовать в любой версии фокса, у меня на 6-ке еще много чего работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 16:24 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
Юристишко-выпускникЧто Вы от меня хотите добиться? Примеров, а не голословных утверждений. Хоть каких-нибудь примеров, которые можно было бы реально проверить. Потестировать. Юристишко-выпускникВ ходе беседы мы определились, что "тормозов" нет, миллисекунды и т.д. не существенны, Стоп. Либо "тормозов нет", либо "тормоза есть, но не существенны". В данном споре - это принципиальная разница. Юристишко-выпускникчто возможна разработка ПО и возможны рек-и по использованию бин.индексов (целый список - лень писать). Да, конечно. Только вот Вы не привели НИ ОДНОЙ рекомендации по использованию бин.индексов. Кроме, разумеется, голословных утверждений, что их надо использовать... Юристишко-выпускникПаковка также ежедневно, а то и ежемесячно, а то и вообще никогда не практикуется по множеству причин (целый список - лень писать). Да, конечно. Только вот Вы опять не привели НИ ОДНОЙ причины, почему команду PACK не надо давать вообще. Собственно, в этом-то и проблема. Вы НИЧЕГО не предлагаете. НЕТ Ваших предложений которые можно было бы оценить и сказать: "Да, действительно. Как же это я сам до такого не додумался. Вот, оказывается, в чем я ошибался." Спор ведется по принципу: - Использование (...) показывает (...) - Идиоты! - Но ведь видно же (...) - Зовите саниторов! - Ну, как же... И чего Вы хотите после ТАКОГО способа ведения дискуссии? Вы привели хотя бы ОДИН аргумент, за который можно было бы "уцепиться" и "повертеть" с разных сторон? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 16:30 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
ВладимирМСтоп. Либо "тормозов нет", либо "тормоза есть, но не существенны". В данном споре - это принципиальная разница. Вам проф.разработчики высказали свои приоритеты. Миллисекунды положенные на чашу весов с оторванностью от конеч-го пользователя, не знанием конечн.условий эксплуатации ПО проигрывают, и мы не усматриваем в милисек-х какого-то вреда и ущербности ПО. ВладимирМСпор ведется по принципу: - Использование (...) показывает (...) - Идиоты! - Но ведь видно же (...) - Зовите саниторов! - Ну, как же... Да. Вы - идиот. В том, что ввязались в спорт с проф. разработчиками ВладимирМИ чего Вы хотите после ТАКОГО способа ведения дискуссии? Вы привели хотя бы ОДИН аргумент, за который можно было бы "уцепиться" и "повертеть" с разных сторон? От Вас я не хочу ничего, кроме как то, чтобы пошли на свой фоксклаб, и там терли носы детям. Аргументов приведено множество. Аргумент понятный проф.разработчику непонятен теоретику. Тем кому нужно, все поняли. В след.раз утверждать про "тормоза" на таблицах с миллионами записей и про ежедневную паковку не стоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 17:20 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
Юристишко-выпускникДалее Вы вместе с Димой продолжаите нести пароноидальный бред и постить безумные идеи - они веселят, не более того. Ок - я сижу и наблюдаю. Я деньги зарабатываю на безумных идеях. И большинство связано с повышением производительности классических подходов. Иногда удается вместо классического решения найти безумное, которое работает в разы быстрее. И если в задаче производительность стоит на первом месте - безумство оправданно. Поэтому и провожу всегда всякие тесты на скорость, проверяю все варианты. То что для тебя непринципиальная потеря времени - для меня важно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 17:55 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
Dima TЯ деньги зарабатываю на безумных идеях. странно, а чем я занимаюсь? гмм, замечу, у меня федерик констанс на руке, а ботинки - честер. наверное нужно начать заниматься безумством, чтобы сменить на бригет и позалини? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 18:15 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
Юристишко-выпускникАргументов приведено множество. Ссылку, пожалуйста. Хотя бы на один аргумент. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 18:21 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
ВладимирМЮристишко-выпускникАргументов приведено множество. Ссылку, пожалуйста. Хотя бы на один аргумент. теоретик, разговора не получится, я Вас не понимаю. там по-еврейски http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=830283&msg=10315242 + читать аргументы тех, кто принимал участие в обсуждении кроме Вас и Димы. далее, там Вас тоже ткнули носом в то, что для практиков не нужно обсасывание всего и всея http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=832460&msg=10312450 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 18:30 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
Юристишко-выпускникВладимирМпропущено... Ссылку, пожалуйста. Хотя бы на один аргумент. теоретик, разговора не получится, я Вас не понимаю. там по-еврейски http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=830283&msg=10315242 + читать аргументы тех, кто принимал участие в обсуждении кроме Вас и Димы. далее, там Вас тоже ткнули носом в то, что для практиков не нужно обсасывание всего и всея http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=832460&msg=10312450 И после этого Вы называете себя "профессионалом"? Ну, ну... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 18:49 |
|
Выделить удаленные записи в Grid
|
|||
---|---|---|---|
#18+
ВладимирМИ после этого Вы называете себя "профессионалом"? Ну, ну... конечно, - не теоретиком. с Вами договориться не получится, я вспоминаю беседу про "абстракцию". еще раз: - для профи важна венгерская нотация; - для Вас суть беседы сводится к тому, что "можно Машку за ляжку и еще и на печи". беседа превращается в хрен знает что и обо всем и не о чем ... потом, когда Вы надоедаете - Вас одергивают, что Вы не с детьми беседуете, Вы - не унимаетесь все одно. еще раз: то что для Вас "тормоза", для меня "без разницы - закрыл глазки и не вижу". у меня задача - не теорию писать. когда объясните мне, зачем лазить по форумам, поучать и т.д., - тогда может поговорим. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 19:11 |
|
|
start [/forum/topic.php?fid=41&msg=37147541&tid=1584516]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 288ms |
total: | 429ms |
0 / 0 |