Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
SergSuperДа нет, скорее всего надо отключить рекурсивное выполнение триггеров Thank you, it helps! В таком виде работает: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 18:38 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
как командой не помню, в EM - для базы Properties/Options/Recurcive triggers - надо убрать галочку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 18:40 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
protector Задача проверки констрейнтов, не реализуемых стандартными методами, обычно и возлагается на тригеры. А эти констрейнты могут быть очень сложные и что в таком случае делать? Селект-то из таблицы не сделаешь в for each row. Вот и приходится всё делать через одно место. ;) Posted via ActualForum NNTP Server 1.1 Я сейчас поддерживаю систему, конкурирующую с SAP/R3. Так вот, она - система, - работает только на Oracle. В ней Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Ди из имеющихся 131 триггера все - поддержка системных функций (системных в смысле пакета, не в смысле Оракле). Имеет смысл учесть. Впрочем, я не очень представляю себе, как это сделать в таком объеме на MS SQL. Пакетов там по-прежнему нет... Или я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 18:53 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
[quot SergSuper] К щастью дискуссия не ушла во флейм и появились действительно рабочие примеры, за что всем не поленившимся написать большое спасибо. Кстати хотелось бы увидеть как это делается на DB2 и InterBase. [quot] Что-ж выкладываю пример для Interbase. Так-же полный скрипт. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Заполнил 700 записей через генератор тестовых данных IBExpert. Потом сделал. Код: plaintext 1. Тригер такой Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext Сразу скажу, что при глубине дерева более 700 этот тригер работать не будет, т.к. ограничении 700 рекурсивных вызовов для Винды и 1000 для Linux. Согласитесь, что тригер в одну строчку писать всегда приятней :) Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 19:04 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
Pi protector Задача проверки констрейнтов, не реализуемых стандартными методами, обычно и возлагается на тригеры. А эти констрейнты могут быть очень сложные и что в таком случае делать? Селект-то из таблицы не сделаешь в for each row. Вот и приходится всё делать через одно место. ;) Я сейчас поддерживаю систему, конкурирующую с SAP/R3. Так вот, она - система, - работает только на Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. А интересно, почему их там нет? И как поддерживается целостность данных? Через клиента? И чем удобно отсутствие констрейнтов? Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 19:14 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
protector А интересно, почему их там нет? И как поддерживается целостность данных? Через клиента? И чем удобно отсутствие констрейнтов? 1. Если бы логика поддерживалась клиентом - то тогда откуда бы взялась поддержка исключительно на Оракле? Нелогично, согласитесь! На самом деле архитектура - "правильная" трехслойная (см. картинку) 2. Вся бизнес-логика поддерживается через пакеты Оракла. Вот почему их так много - см. мой пост выше. Кстати, система полностью объектная! Насколько я знаю, она - единственная полностью объектная в первой мировой пятерке пакетов класса Business Suite. 3. Чем удобна поддержка правил через программный код? Во-первых, администрированием. Нет проблем с начальным заполнением таблиц и прочего. Во-вторых, в реально большой системе правила обычно описываются достаточно сложно, и всегда наступает момент, когда приходится к системным констрейнтам добавлять процедурные. И тогда наступает морока - где же что и как реализовано. Но когда изначально все сделано через процедуры - то гораздо легче ориентироваться. Конечно, система имеет свои правила - а как бы иначе объектная прикладная система могла бы существовать на необъектнем Оракле, например, версии 7.3 или раньше? Так вот, отказавшись от констрейнтов ,разарботчики построили свою систему правил, и приняв ее, ты оказываешься в предсказуемом мире. Кроме того, система теперь может работать в распределенном режиме. Надеюсь, распространяться об ограничениях на системные констрайнты в распределенном мире с поддержкой синхронизации не приходится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 19:55 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
Ну что ж, пятница удалась, нормально поговорили. А все же, сможет ли кто-нибудь сказать мне причины проблемы в моем посте от 29 Октября, 14:31 в этой ветке Код: plaintext 1. 2. 3. Очень хотелось бы услышать ответ. Можно здесь, а можно и здесь Этот вопрос как раз из тех, что показывают разницу в парадигмах... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 20:05 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
Кстати, а есть ли на этом сайте указывать ссылку на конкретный пост? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 20:06 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
PiКстати, а есть ли на этом сайте указывать ссылку на конкретный пост? Есть :) Нажмите на id нужного сообщения и скопируйте с адресной строки браузера ссылку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 22:26 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
автор 1. Приведенный пример в Oracle выглядит сложнее. С этим я с товарищем Pi полностью согласен. Выражаясь его языком - выглядит как этот тот самый геморрой. Но приведенный пример и на SQL не выглядит привлекательно (я, например не врач геммороев не видел, не могу сравнить с ними примеры). Кроме того, если сравнивать примеры, то нужно отметить, что ради выполнения одного триггера в MS SQL понадобилось настраивать опцию всей БД - отключение рекурсий. А если для дркугого триггера она все-таки нужна? Что они будут делать вместе? Нет в примере Оракла и циклов, но есть пакет (ради реализации того, что в ASA делает глобальная переменная). И то и другое есть некоторое отдаление от SQL - языка БД в сторону процедурного языка. А задача внешне выглядит как не требующая ничего кроме триггера и в нем только DML. Возможно, в дальнейших усовершенствованиях нуждаются и триггера и, наверное, SQL для приведенных СУБД. Наверное, эта ситуация будет улучшаться в дальнейших версиях. Все-таки,пока кажется, что в примере для Оракла в этом смысле непроцедурности больше, чем в MS SQL т.е. больше языка БД. Там непроцедурность связана только с обходом рекурсий, с данными работает один запрос в триггере, без циклов (этой печати процедурности). Речь конечно идет только о приведенных примерах. Примеры ASA и Inerbase немного выглядят получше. Но я не понял, это глобальная переменная сессии или где ее область видимости? Не может быть конфлитка из-за нее между сессиями или транзакциями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 22:37 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
ASCRUS Насколько я понимаю, чтобы все это проделать в Оракле одним чистым запросом отделаться нельзя будет. Возможно. Но привидите пример, когда в Оракле одним чистым запросом отделаться нельзя будет, а в ASA можно. Хотелось бы посмотреть. Хотя ясно, что это все уже выходит за пределы реляционной алгебры. Т.е. производители СУБД, отвечая требованиям стремятся расширять SQL в сторону не выразимых в реляционной алгебре запросов. В данном случае транзитивных замыканий. У меня тоже найдется, наверное, интересный пример запроса для того, чтобы посмотреть как это у Вас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 22:56 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, в примере Оракла тоже есть цикл, не внимательно посмотрел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2004, 00:07 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
vadiminfo Но приведенный пример и на SQL не выглядит привлекательно (я, например не врач геммороев не видел, не могу сравнить с ними примеры). Да это ж я над Pi иронизировал, неужели можно было серьёзно воспринимать? Но кстати и по количеству строчек и по количеству идентификаторов на MS SQL короче... vadiminfo нужно отметить, что ради выполнения одного триггера в MS SQL понадобилось настраивать опцию всей БД - отключение рекурсий. А если для дркугого триггера она все-таки нужна? Я лично никогда не ставлю рекурсивность триггеров. Её ввели с 7-й версии непонятно зачем. Мне тоже кажется это неудачным решением - установкой одной галочки меняется вся логика базы. А здесь привел пример для такой настройки чтоб наглядней было. Лучше б сразу написал почеловечески :) vadiminfo Все-таки,пока кажется, что в примере для Оракла в этом смысле непроцедурности больше, чем в MS SQL т.е. больше языка БД. А копирование записей по одной из одной таблицы в другую - тоже процедурностью отдаёт. Чем мне нравится на MS SQL и особенно на SyBase - нет операций по одной записи и нет рекурсий, а в последнем еще и цикла. А кстати что - удалять с помощью рекурсивного запроса нельзя? Может удалось бы обойтись без временной таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2004, 00:45 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
Я переписал Оракловый триггер из примера, который привел softwarer, чтобы в нем не было цикла. Он сработал на том же примере, что привел softwarer. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Конечно, все это может быть нуждается в более глубоком тестировании. Я по прежнему думаю, что главное не то что бы работало любой ценой, а чтобы средства решения задачи максимально соотносились с ней. В частности, удаление данных - это то для чего есть язык БД. Триггеры - это просто способ выполнить нужные инструкции DML в ответ на изменение данных. Т.е. мы могли бы говорить о триггерах SQL. Это имеет значение и для модели данных. Она лучше читается. И соответственно упрощается разработка и сопровождение. Конечно, в сложных случаях языка БД может не хватить для удаления данных, связанных между собой достаточно сложно. Но это недостаток языка БД. В данном случае версия SQL Оракла позволяет удалить легко, но чтобы реализовать каскадное удаление все еще нужны средства PL/SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2004, 01:21 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
авторА кстати что - удалять с помощью рекурсивного запроса нельзя? Может удалось бы обойтись без временной таблицы? Ну если засунуть его в представление или хранимку (они могут использоваться как параметризированные представления в запросах), то можно :) Вполне возможно в выходящей 9.0.2 такие проблемы синтаксиса будут решены вообще окончательно - довольно долго на форуме обсуждения развития ASA шла дискуссия о вводе в семантику WatcomSQL возможности обьявления временного представления с поддержкой области видимости, фактически это аналог COMMON TABLE EXPRESSION, но не на SELECT, а на весь блок BEGIN...END и всего, что из него вызывается. Если сделают, будет замечательно. Сейчас я пока только узнал про 9.0.2, что там будет опция ограничения ресурсов на сессию, позволяющая устанавливать квоту на использование размера временных таблиц и вес обрабатываемых запросов - я так понимаю разработчики ASA не зря 6 последних месяцев так много общались на форумах с ораклистами, которые в том числе работают на ASA и готовы рассказать, чего же им не хватает по сравнению с Ораклом. Если они будут так же продолжать придерживаться текущих мировозрений: "Простота без ограничений - залог успеха" и "Развитие продукта зависит от потребностей пользователей, а не политики менеджеров", плюс дальше тащить лучшие решения с других СУБД, то лично я только ЗА :) Кстати вполне допускаю мысль что действительно довольно динамичное развитие ASA связано с тем, что во первых Sybase сосредоточен на своей ASE, он не вмешивается в дела дочерней iAnywhere (бывший Watcom) и главное - у него действительно плохо с менеджментом, так что в реале ASA развивается только по пожеланиям ее пользователей и наверное может у них там считаться настоящей "народной" коммерческой СУБД. Наглядный пример этого - на фоне того, что ASA стала еще и веб-сервером, сейчас с удовольствием подключились к ее развитию веб-интерфейсов PHP-шники и в этом направлении она уже стала из месяца в месяц расти и расширяться :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2004, 01:27 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
авторЯ по прежнему думаю, что главное не то что бы работало любой ценой, а чтобы средства решения задачи максимально соотносились с ней. В частности, удаление данных - это то для чего есть язык БД. Триггеры - это просто способ выполнить нужные инструкции DML в ответ на изменение данных. Т.е. мы могли бы говорить о триггерах SQL. Это имеет значение и для модели данных. Она лучше читается. И соответственно упрощается разработка и сопровождение. Конечно, в сложных случаях языка БД может не хватить для удаления данных, связанных между собой достаточно сложно. Но это недостаток языка БД. В данном случае версия SQL Оракла позволяет удалить легко, но чтобы реализовать каскадное удаление все еще нужны средства PL/SQL. Я не очень понимаю между Вашими терминами "язык БД", "DML" и "PL/SQL" (который все еще нужен). У меня в ASA есть диалект WatcomSQL, который обхватывает собой все - DDL, DML, язык хранимых процедур, расширения, администрирование и резервное копирование, репликацию, защиту и даже обработку HTML и XML и создание различных видов веб-сервисов. В нем так же можно работать и с обьектами Java как родными, хранить сериализованные обьекты Java в полях таблиц и обрабатывать их в запросах, обращаясь к полям и методам обьектов записей (правда Java тут ни разу и не пригодилась). Разве в Оракле PL/SQL не является таким же единым стандартном, почему Вы ему отводите только роль языка хранимых процедур ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2004, 01:44 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
ASCRUS Я не очень понимаю между Вашими терминами "язык БД", "DML" и "PL/SQL" (который все еще нужен). Язык БД(DL) - в данном случае SQL, точнее его диалект. DML - язык манипулирования данными - подязык языка БД, наряду с DDL - языком описания данных. Я придаю им значение поскольку они собственно и реализуют модель данных БД. В частности, DML реализует компоненту модели - манипулирование данными. Удаление - входит в это манипулирование. Про PL/SQL я сказал, что он все еще нужен там, где должно было хватить DL. Т.е. речь шла конкрето об удалении, а не вообще о всех задачах связанных с БД. ASCRUS ). У меня в ASA есть диалект WatcomSQL, который обхватывает собой все - DDL, DML, язык хранимых процедур, расширения, администрирование и резервное копирование, репликацию, защиту и даже обработку HTML и XML и создание различных видов веб-сервисов. В нем так же можно работать и с обьектами Java как родными, хранить сериализованные обьекты Java в полях таблиц и обрабатывать их в запросах, обращаясь к полям и методам обьектов записей (правда Java тут ни разу и не пригодилась). Разве в Оракле PL/SQL не является таким же единым стандартном, почему Вы ему отводите только роль языка хранимых процедур ? Эти средства выходят за рамки модели данных - тут уже элементы приложения пошли. Тут другое дело. PL/SQL - язык хранимых процедур. И для Java у Оракла есть даже своя машина. И тоже может запускаться из PL/SQL Java. Более того, Оракл поддерживает Объектно реляционную модель данных, полуструктурированную модель данных XML, элементы документальных и геоинформационных моделей. Более того, вложенные таблицы Оракла некоторые относят к сетевым моделям данных. Репликацию он поддерживает и систему сробщений. Да и много еще чего. Я слышал, что полная дока по Ораклу 10 000 страниц. Я про другое. Реляционная модель все-таки базовая модель Оракла. Модель данных играет важную роль в технолгиях БД. И потому все что ее касается, желательно реализовать по возможномти на языке БД. В частности, удаление. Конечно, в реляционную модель, не входят, например, ограничения целостности общего вида. Или нужно много разных команд DL запускать из приложения. Или реализовывать часть логики приложения на сервере БД. Тогда естественно, что язык БД на это и не расчитан. Тогда PL/SQL. Или Java, если не хватает PL/SQL. А для удаления применение процедурных языков выглядит как заплатка. Это уже все-таки пошли программные ухищрения. Кстати, насчет стандартов. Про какие стандарты Вы говорите? Язык БД - SQL имеет стандарты. С++ имеет. А PL/SQL наверное не собираются подгонять ни под какие стандарты. Кстати, стандарты по SQL писались с учетом ведущих СУБД, где Оракл учитывался. Я почитываю толстые книги по БД вообще и там часто вижу Оракловый синтаксис. Сегодня в связи с нашим общением здесь заглянул в одну такую книгу. Там в разделе Триггера (я хотел про концепцию триггеров вообще посмотреть) описываются Оракловые. NEW и OLD есть, а про inserted и deleted ни слова. Хотя с другой стороны, это еще ничего не значит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2004, 02:43 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
SergSuper большое спасибо, впервые увидел, как адепты разных платформ достаточно продуктивно обменивались методами решения одной из задач, что характерно, без (ну почти) гнутия пальцев. Ведь могут :) Кстати, можно не убирать рекурсивность триггеров в Вашем примере, достаточно в первой строке вставить нечто вроде Код: plaintext Пока читал дискуссию, не раз возникало сожаление, что разные "вкусности" "живут" в разных платформах, и нет ни одной, на которой было бы все. Отдельное спасибо ASCRUS, ему не программированием заниматься надо, а идти в менеджеры по продажам, возможно платформа Sybase получила бы большее распространение, нежели сейчас. Шальная мысль, может и правда перейти на ASA ? :) vadiminfoописываются Оракловые. NEW и OLD есть, а про inserted и deleted ни слова.NEW и OLD есть не только у Oracle, что, впрочем не важно. Насколько я понимаю, то процедурные расширения на данный момент выходят за рамки стандарта и отданы на откуп производителям СУБД, хотя и есть робкие попытки все таки его выработать. Лично мне кажется, что время уже упущено, так как по историческим причинам каждый производитель уже так долго следует своим курсом, что загнать всех на одно шоссе практических шансов нет. Тем более, что многие "фичи" часто тесно связаны с особенностью реализаций соответствующих engine. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2004, 04:11 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
PL99Есть в ASA еще одна удобная фича, о которой, по-моему, почему-то до сих пор не упомянули - можно создать несколько триггеров каждого вида Фича удобная - но я в какой-то момент пришел к выводу, что она скорее вредна. Причина - она не дает принципиальных преимуществ, но подталкивает к плохому стилю программирования. Имхо: если триггера абсолютно независимы (чаще всего это бывает, когда навешены некие "стандартные", часто автосгенерированные триггера - типа аудита) - все, в общем, нормально, и порядок выполнения постановочно не при чем. Если же порядок имеет значение - надо выделить подпрограммы (вообще в триггерах лучше не писать "большого" кода, имхо), а в триггере явно вызывать их в нужном порядке. Во-первых, это "читабельнее", а во-вторых - снимает вторичные проблемы (например - что будет, если я сделаю disable среднему триггеру в такой цепочке? полагаю - ничего хорошего). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 13:04 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
PiКогда пересел на MS SQL (6.5), то необходимость drop trigger Trigger_tr (невозможность его отключить) приводила к полному безобразию Думаю, такие недоработки бывают везде. Хотя на вашем месте я бы написал процедурку, которая перед дропом сохраняла бы текст дропаемых объектов ;) Так, в Оракле до девятой, кажется, версии вместе с ключом дропался индекс, поддерживающий этот ключ ("вместе" - это в смысле disable constraint приводил к удалению индекса). И пока не было deferrable constraint-ов, это было весьма неудобно - надо провести "тихий" хак, а тут дропается индекс и все пользователи это живо ощущают. Сейчас, правда, есть и deferrable и нормальная возможность сохранить индекс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 13:10 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
vadiminfoЯ переписал Оракловый триггер из примера, который привел softwarer, чтобы в нем не было цикла. Он сработал на том же примере, что привел softwarer. Вполне нормально. К сожалению, я публиковался очень наспех. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 13:15 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
ChAОтдельное спасибо ASCRUS, ему не программированием заниматься надо, а идти в менеджеры по продажам, возможно платформа Sybase получила бы большее распространение, нежели сейчас. Шальная мысль, может и правда перейти на ASA ? :) К сожалению, "удобство программирования" является далеко не первым из возможных аргументов в пользу выбора той или иной СУБД. Хотя свою и заметную цену, безусловно, имеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 13:20 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
ChA без (ну почти) гнутия пальцев. Ведь могут softwarer"удобство программирования" является далеко не первым из возможных аргументов в пользу выбора той или иной СУБДКак бы, в курсе... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 15:41 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
Кто-то спрашивал как будет для DB2. Я устал перечитывать переделал триггер ASCRUS'a Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 16:29 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=32763427&tid=1554012]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
31ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 172ms |
| total: | 295ms |

| 0 / 0 |
