AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.04.2010, 15:14   #41  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от SRF Посмотреть сообщение
А сколько времени удаляются из AX 600000 записей (не по частям) ?
Цитата:
Сообщение от Shirmin Oleg Посмотреть сообщение
Если за один раз, то еще дольше (примерно раза в два)
.
Старый 27.04.2010, 15:52   #42  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Shirmin Oleg Посмотреть сообщение
Так что запись в лог не тормозит, тормозит сам delete_from.
Да что ж за человек то, а?

А что пишется в лог?
Туда пишется информация об одной записи или о всех удаленных?
Напомню, что в databaselog информация об изменениях находится в blob-поле в виде контейнера.
__________________
полезное на axForum, github, vk, coub.
Старый 27.04.2010, 16:04   #43  
Shirmin Oleg is offline
Shirmin Oleg
Участник
 
89 / 35 (2) +++
Регистрация: 26.03.2004
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
А если ради эксперимента отключить через Администрирование логирование удалений в этой таблице?
У нас эта таблица не включена в логирование именно потому, что там много данных и они могут периодически заменяться. Логирование не тормозит, в моем случае запись в лог происходит всего 6 раз за всю процедуру удаления, тормозит сама обработка delete_from (100000 записей - примерно 10 минут)
Старый 27.04.2010, 16:07   #44  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от Shirmin Oleg Посмотреть сообщение
После того, как отрабатывает удаление (delete_from), в лог все равно происходит вставка
Знаю, что дурацкий вопрос, но все же: зачем на таблице из которой надо периодически удалять 600000 записей (а я так понимаю, что перед тем как что-то удалить, это что-то надо туда сначала записать), настраивать Database log ?
__________________
-ТСЯ или -ТЬСЯ ?
Старый 27.04.2010, 16:07   #45  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Shirmin Oleg Посмотреть сообщение
В 2009 в лог пишется после каждой отработки delete_from (один раз на один удаляемый блок). LogType = Delete, Table - 40478 (ид. SALESTABLE_TELECOMPHONTRA40478)
Цитата:
Сообщение от Shirmin Oleg Посмотреть сообщение
У нас эта таблица не включена в логирование...
Как это не включена? Если в лог пишется после каждой обработки delete_from?
__________________
полезное на axForum, github, vk, coub.
Старый 27.04.2010, 16:45   #46  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Shirmin Oleg Посмотреть сообщение
В 2009 в лог пишется после каждой отработки delete_from (один раз на один удаляемый блок). LogType = Delete, Table - 40478 (ид. SALESTABLE_TELECOMPHONTRA40478)
Цитата:
Сообщение от mazzy Посмотреть сообщение
Как это не включена? Если в лог пишется после каждой обработки delete_from?
Офигеть, какая интересная информация.
Спасибо.

Если в ax2009 настроить Database Log И отключить его в коде, то запись в Database Log все равно пишется, но один раз на весь Delete_from и с пустым контейнером.

Итак, берем простейший проверочный код (используется неважная таблица, которая хранит log обработки заказов)
X++:
static void Job1(Args _args)
{
    SalesParmLine   SalesParmLine;
    ParmId          ParmId;

    select minof(ParmId) from SalesParmLine;
    ParmId = SalesParmLine.ParmId;

    SalesParmLine.skipDeleteActions(true);
    SalesParmLine.skipDatabaseLog(true);
    delete_from SalesParmLine
    where SalesParmLine.ParmId == ParmId; // по ParmID есть индекс
}
Если не включать Database log, то на SQL отправляется вполне ожидаемый запрос
Нажмите на изображение для увеличения
Название: 1.PNG
Просмотров: 190
Размер:	53.0 Кб
ID:	5751
точно такой же как и через Query в Management Studio.

Далее включаем database log.
Естественно, вместо запроса delete_from Аксапта будет удалять каждую запись по отдельности и заносить каждую запись в Database log.
(скриншот не привожу - очевидно)

Далее в ax2009 добавляем метод skipDatabaseLog(true);
На SQL отправляется команда "delete from".
Однако, как сказал Shirmin Oleg, в database log все равно добавляется запись. С Пустым RecID и c пустым контейнером.
Нажмите на изображение для увеличения
Название: 2.PNG
Просмотров: 247
Размер:	51.8 Кб
ID:	5752
Нажмите на изображение для увеличения
Название: 3.PNG
Просмотров: 204
Размер:	57.6 Кб
ID:	5753
Нажмите на изображение для увеличения
Название: 4.PNG
Просмотров: 237
Размер:	111.4 Кб
ID:	5754
Нажмите на изображение для увеличения
Название: 5.PNG
Просмотров: 229
Размер:	80.9 Кб
ID:	5755

прикольно.
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: lev (5), S.Kuskov (5).
Старый 27.04.2010, 16:49   #47  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Shirmin Oleg Посмотреть сообщение
У нас эта таблица не включена в логирование...
Врете вы. Если бы таблица не была включена, то и в Database log бы ничего не добавлялось.

Цитата:
Сообщение от Shirmin Oleg Посмотреть сообщение
Так что запись в лог не тормозит, тормозит сам delete_from.
Теперь осталось только одно выяснить - у вас на SQL отправляется команда delete from? или выполняется select по одной записи?

Вы можете открыть Profiler и привести скриншот?
__________________
полезное на axForum, github, vk, coub.
Старый 27.04.2010, 16:52   #48  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Shirmin Oleg Посмотреть сообщение
Так что запись в лог не тормозит, тормозит сам delete_from.
И еще. Индекс то у вас по полю TELECOMPHONTRA40478.month есть?
Или команда delete_from выполняет Table Scan, как предупреждал sukhanchik?
__________________
полезное на axForum, github, vk, coub.
Старый 27.04.2010, 16:59   #49  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от mazzy Посмотреть сообщение
И еще. Индекс то у вас по полю TELECOMPHONTRA40478.month есть?
Цитата:
Сообщение от Shirmin Oleg Посмотреть сообщение
Есть индекс по recid и (неуникальный) по периоду
.
За это сообщение автора поблагодарили: mazzy (2).
Старый 27.04.2010, 18:04   #50  
Shirmin Oleg is offline
Shirmin Oleg
Участник
 
89 / 35 (2) +++
Регистрация: 26.03.2004
Цитата:
Сообщение от mazzy Посмотреть сообщение
Врете вы. Если бы таблица не была включена, то и в Database log бы ничего не добавлялось.
Действительно вру. Прошу прощения, невнимательно проверял. Таблица была включена в логирование. Отключил, но заметно скорость не возросла. Удалял 500000 записей и измерял время на каждом куске по 100000 на каждом участке время разное, но в среднем - те же 10 минут

Цитата:
Сообщение от mazzy Посмотреть сообщение
Теперь осталось только одно выяснить - у вас на SQL отправляется команда delete from? или выполняется select по одной записи?

Вы можете открыть Profiler и привести скриншот?
Profiler имеется в виду Профайлер кода? Я не знаю, как в профайлере посмотреть на SQL запрос, подскажите, пожалуйста.
Старый 27.04.2010, 19:11   #51  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Shirmin Oleg Посмотреть сообщение
Profiler имеется в виду Профайлер кода?
SQL Server Profiler
Старый 27.04.2010, 20:19   #52  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Shirmin Oleg Посмотреть сообщение
Я не знаю, как в профайлере посмотреть на SQL запрос, подскажите, пожалуйста.
О, блин...

Сначала обругали Аксапту ("тормозит", "от безысходности"), а теперь такая фигня выясняется.
В общем, не нужно мучать Аксапту прямыми запросами. У нее и штатными неплохо получается.

Убежден, что у вас какие-то настройки остались, из-за которых Аксапта переходит в режим удаления каждой записи по отдельности. Но этим сообщением разожгли любопытство не-по-деццки

Давайте попробуем дойти до конца этой истории.
Есть два варианта:
1.
Предлагаю свою совершенно бесплатную помощь, чтобы разобраться в данном конкретном случае с медленным удалением командой delete_from.
В этом варианте нужно от вас:
1.1. Доступ к вашей Аксапте и к профайлеру вашего SQL.
1.1.1. Для работы с профайлером нужен будет права администратора SQL.
1.1.2. Можно использовать режим, когда вы сами подключаетесь к Аксапте и к SQL, а мне расшариваете экран (штатный виндовый Ассистент, расшаривание экрана в Skype или любая аналогичная технология). Я по микрофону или в чате буду говорить что надо сделать.
1.2. Назначьте время (любое, кроме среды, можно выходные, можно ночером). Двух-трех часов будет достаточно чтобы запустить несколько раз это несчастное удаление и определить что у вас случилось. Желательно, чтобы в это время пользователи не работали (но можно и при работающих)
1.3. Свяжитесь со мной (в личку, на mazzy@mazzy.ru, по скайпу mazzy.ru, по телефону +7 (903) 771-66-00.

2.
Попробуйте таки разобраться самостоятельно.
Я буду показывать на SQL 2008 Eng. В SQL 2005 аналогично.

2.1.
запустите профайлер.
Название: 1.PNG
Просмотров: 1306

Размер: 38.4 Кб

2.2.
Запустите новую сессию File \ New Trace
2.3.
В окне укажите сервер, где крутится SQL с базой Аксапты, логин и пароль
Название: 2.PNG
Просмотров: 1328

Размер: 39.5 Кб

2.4.
В следующем окне выберите шаблон Standard (он ставится по умолчанию)
Нажмите на изображение для увеличения
Название: 3.PNG
Просмотров: 143
Размер:	37.3 Кб
ID:	5758

2.5.
Если вы запускаете профилирование при работающих пользователях, то вам нужно будет отфильтровать только свои запросы, чтобы не мучаться с чужими.
Этот шаг - самый сложный для объяснения (не могу придумать как объяснить откуда взять значения фильтров).
Поэтому - сделайте самостоятельное профилирование при отсутствующих пользователях.

Нажмите Run.
2.6. Поначалу Профайлер покажет кучу всего (кэширование, syslastvalue)
сотртите ненужное ластиком
дождитесь момента когда новые строчки перестанут поступать в окно.
запустите вашу обработку в Аксапте

2.7. остановите профилирование через полминуты-минуту после запуска (чтобы не набирать новых строчек)
Нажмите на изображение для увеличения
Название: 4.PNG
Просмотров: 229
Размер:	100.9 Кб
ID:	5759

2.8. при помощи поиска Ctrl+F найдите строчки, в которых упоминается ваша навороченная таблица.

Сделайте скриншоты запросов к вашей таблице и запросов вокруг, положите сюда. Интересует текстовая часть в нижней половине окна.
__________________
полезное на axForum, github, vk, coub.
Старый 28.04.2010, 11:27   #53  
Shirmin Oleg is offline
Shirmin Oleg
Участник
 
89 / 35 (2) +++
Регистрация: 26.03.2004
Цитата:
Сообщение от mazzy Посмотреть сообщение
О, блин...
Сначала обругали Аксапту ("тормозит", "от безысходности"), а теперь такая фигня выясняется.
Не согласен, Аксапту я не ругал. Ведь и вправду тормозит. А по поводу "такой фигни" - да, я чайник в администрировании и пользовании средствами SQL Management Studio,
но с большим удовольствием научусь

А "безысходность" - не про Аксапту, а про СОМ CCADOCOnnection, кот. не реагировал на изменение таймаута

Цитата:
Сообщение от mazzy Посмотреть сообщение
В общем, не нужно мучать Аксапту прямыми запросами. У нее и штатными неплохо получается.
Я не против штатных средств, я очень даже за. Но разница во времени выполнения очень уж большая

Скрины прилагаю
Миниатюры
Нажмите на изображение для увеличения
Название: 1.JPG
Просмотров: 274
Размер:	146.5 Кб
ID:	5767   Нажмите на изображение для увеличения
Название: 2.JPG
Просмотров: 230
Размер:	145.9 Кб
ID:	5768  

Нажмите на изображение для увеличения
Название: 3.JPG
Просмотров: 213
Размер:	142.5 Кб
ID:	5769   Нажмите на изображение для увеличения
Название: 4.JPG
Просмотров: 248
Размер:	146.3 Кб
ID:	5770  

Нажмите на изображение для увеличения
Название: 5.JPG
Просмотров: 323
Размер:	142.0 Кб
ID:	5771  
Старый 28.04.2010, 11:42   #54  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Отлично. Спасибо.

Жалко только что вы колонки убрали. Очень интеерсно было бы посмотреть на колонки Duration, Reads, Writes. Ну, да бог с ними.

Итак, на 5 скриншоте четко видно, что посылается команда "Delete from". И видны условия. Отлично.

Цитата:
Сообщение от Shirmin Oleg Посмотреть сообщение
Я не против штатных средств, я очень даже за. Но разница во времени выполнения очень уж большая
Продолжаем разговор.
Давайте определимся между чем у вас получается разница.

Запрос, который посылает Аксапта - виден на 5ом скриншоте.
Какой запрос вы посылаете из management Studio?

================
Можете сделать скриншот таблицы из Аксапты? так, чтобы были видны все индексы и параметры самой таблицы. Вот так:
Миниатюры
Нажмите на изображение для увеличения
Название: 1.PNG
Просмотров: 284
Размер:	70.1 Кб
ID:	5773  
__________________
полезное на axForum, github, vk, coub.
Старый 28.04.2010, 11:59   #55  
Shirmin Oleg is offline
Shirmin Oleg
Участник
 
89 / 35 (2) +++
Регистрация: 26.03.2004
Цитата:
Сообщение от mazzy Посмотреть сообщение
Какой запрос вы посылаете из management Studio?
delete from SALESTABLE_TELECOMPHONTRA40478 where SALESTABLE_TELECOMPHONTRA40478.month = '2010-03-01'

Цитата:
Сообщение от mazzy Посмотреть сообщение
Можете сделать скриншот таблицы из Аксапты? так, чтобы были видны все индексы и параметры самой таблицы.
Миниатюры
Нажмите на изображение для увеличения
Название: 6.JPG
Просмотров: 440
Размер:	92.8 Кб
ID:	5774  
Старый 28.04.2010, 12:35   #56  
Bober is offline
Bober
Участник
 
311 / 104 (4) +++++
Регистрация: 29.05.2007
А зачем стоит свойство Cachelookup = NotInTTS ?
Старый 28.04.2010, 13:03   #57  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Bober Посмотреть сообщение
А зачем стоит свойство Cachelookup = NotInTTS ?
Для чистоты эксперимента возможно (хотябы временно) стоит убрать кэширование вообще.

И ещё я предлагаю в индекс MonthIdx вторым полем добавить RecId.
Старый 28.04.2010, 13:16   #58  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Понятно. Спасибо.

Итак:
Аксаптовский delete_from работает НЕ медленнее.
Аксапта - хорошая девочка - и четко следует указаниям программиста, посылая команду "delete from" с правильными условиями.

Разница проявляется не в ядре аксапты. А в том, что на SQL посылаются разные условия к команде.
Причем разные условия - потому что программист в Management Studio, скорее всего, "забыл" про компании.

Цитата:
Сообщение от Shirmin Oleg Посмотреть сообщение
delete from SALESTABLE_TELECOMPHONTRA40478 where SALESTABLE_TELECOMPHONTRA40478.month = '2010-03-01'
Минуточку!!!!
это же совсем другие условия в запросе!!!

Обратите внимание, что Аксапта удаляет в пределах одной компании.
А вы удаляете данные изо всех компаний!!! (у вас нет условия dataareaid == "tz")

А почему вы в студии удаляете данные изо всех компаний?
Если вам компании неважны, то почему вы включили свойство SavePerCompany = Yes? Выключите это свойство и не будет компаний в этой таблице.

==================
Вы используете при запуске аксапты параметр, который позволяет изменить место dataareaid в индексе?
(подозреваю, что нет)

==================
Согласен с S.Kuskov, что сейчас удаление из аксапты не использует индекс. Либо использует, но делает дополнительный поиск по recid.

Как это ни странно, но удаление из студии у вас, скорее всего, вообще не использует индексы, а делает TableScan. И похоже table scan в конечном итоге работает быстрее. Как это ни странно.

Похоже, что вы удаляете почти все записи в таблице. 80%-90%-100% записей. так?

==================
Стесняюсь попросить... Вы планы обоих запросов показать сможете?
Или тоже объяснять нужно?

Если планы показать сложно, то
Рекомендация - вообще уберите индекс по month. Тогда, скорее всего, в обоих случаях (запрос из студии и запрос из аксапты) будет использоваться один и тот же план запроса. Или выключите свойство SavePerCompany, если вам не нужны компании в этой таблице.
__________________
полезное на axForum, github, vk, coub.
Старый 28.04.2010, 14:57   #59  
Shirmin Oleg is offline
Shirmin Oleg
Участник
 
89 / 35 (2) +++
Регистрация: 26.03.2004
Цитата:
Сообщение от mazzy Посмотреть сообщение
А почему вы в студии удаляете данные изо всех компаний?
Если вам компании неважны, то почему вы включили свойство SavePerCompany = Yes?
В этой таблице нет данных по другим компаниям (и не должно быть), зачем св-во SavePerCompany установлено в Yes сказать не могу (ставил не я, а спросить уже не у кого)

Цитата:
Сообщение от mazzy Посмотреть сообщение
Вы используете при запуске аксапты параметр, который позволяет изменить место dataareaid в индексе?
(подозреваю, что нет)
Нет

Цитата:
Сообщение от mazzy Посмотреть сообщение
Похоже, что вы удаляете почти все записи в таблице. 80%-90%-100% записей. так?
Нет, всего в таблице на данный момент около 11000000 записей, я же за один заход удаляю примерно 500000 - 600000

Цитата:
Сообщение от mazzy Посмотреть сообщение
Стесняюсь попросить... Вы планы обоих запросов показать сможете?
Или тоже объяснять нужно?
Если можно, объясните, пожалуйста

Цитата:
Сообщение от mazzy Посмотреть сообщение
Рекомендация - вообще уберите индекс по month
Этого индекса изначально не было. Его я добавил уже в процессе оптимизации, с ним стало значительно быстрее
Старый 28.04.2010, 15:17   #60  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Shirmin Oleg Посмотреть сообщение
В этой таблице нет данных по другим компаниям (и не должно быть), зачем св-во SavePerCompany установлено в Yes сказать не могу (ставил не я, а спросить уже не у кого)
так уберите, если не нужно.
(для начала измените настройку не в рабочей, а в тестовой базе)

Цитата:
Сообщение от Shirmin Oleg Посмотреть сообщение
Нет, всего в таблице на данный момент около 11000000 записей, я же за один заход удаляю примерно 500000 - 600000
Ок. Будем смотреть планы запросов.

Цитата:
Сообщение от Shirmin Oleg Посмотреть сообщение
Этого индекса изначально не было. Его я добавил уже в процессе оптимизации, с ним стало значительно быстрее
А что стало быстрее? Аксаптовский запрос или запрос из студии?
__________________
полезное на axForum, github, vk, coub.
Теги
ax2009, ccadoconnection, delete_from, оптимизация, удаление

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Задвоение RecId при вставке записей через COM коннектор db DAX: Программирование 1 23.04.2009 15:12
Класс OfficialsServ_RU - удаление записей из OfficialsTrans_RU Logger DAX: Программирование 3 14.09.2006 15:58
Запуск программы из Аксапты через 2-хзвенку Migel_84 DAX: Программирование 25 27.04.2006 09:41
Проблема с запуском business connector'a через удал доступ yooshi DAX: Программирование 1 07.11.2005 08:56
Удаление записей из InventDim и SalesTable DreamCreator DAX: Программирование 4 08.12.2004 17:23

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:30.