"Alexandr Kochmin" <[EMAIL PROTECTED]>
ñîîáùèë/ñîîáùèëà â Ãîâîñòÿõ ñëåäóþùåå: news:[EMAIL PROTECTED]
>
> VH> Ããðà ÿñü ñ boot.ini òû ìîæåøü ýòî óâåëè÷èòü äî 3GB, afaik.
>
> è ïðà âäà Firebird òà êîå ïîéìåò?
AFAIK òîë
??>> ???
??>> Ну вот я работаю в Форум-Авто, мы как раз запчасти оптом продаем.
??>> В таблице запчастей ~80 тыс. Откуда миллионы-то взялись?
DL> Tecdoc закачал небось с кроссами.
Наверное. Это у его заказчиков от большого ума.
Anton Chernousov пишет:
Уважаемые коллеги,
До сих пор использовал ервин,
теперь вот намерен полностью перейти на открытый софт +)
открытый-не открытый, но для русскоговорящих бесплатный
сходи на http://www.sqlly.com
может понравится ;-)
--
Regards,
Ovchinnikov Vasily
ova at tkvc ru
> ???
> îà ÃÃà à ÃÃÃÃÃÃà à æÃÃÃÃ-áÃÃÃ, Ãà ÃÃà ÃÃà ÃÃÃÃÃÃÃà ÃÃÃÃà ÃÃÃÃÃÃ
Ã.
> ÷ ÃÃÃÃÃÃÃ
ÃÃÃÃÃÃÃÃ
à ~80 ÃÃÃ. ïÃÃÃÃà ÃÃÃÃÃÃÃÃ-Ãà ÃÃÃÃÃÃÃ?
Tecdoc ÃÃÃÃÃÃÃ ÃÃ
ÃÃÃÃ Ã ÃÃÃÃÃÃÃÃ.
äÃÃÃÃÃÃ
Hello, Anton!
Anton Chernousov wrote:
Уважаемые коллеги,
До сих пор использовал ервин,
теперь вот намерен полностью перейти на открытый софт +)
Ктонить из вас использует открытые CASE средства для работы в Firebird
и если да то какие именно +)
Открытые? это ты загнул.
--
Dmitri Kouzmenko, w
??>> Ну вот я работаю в Форум-Авто, мы как раз запчасти оптом продаем.
??>> В таблице запчастей ~80 тыс. Откуда миллионы-то взялись?
f> А софт какой используете для учета, пкупной или самописный?
Самописный, ясен пень :-)
Slava Ekimov:
> Ну вот я работаю в Форум-Авто, мы как раз запчасти оптом продаем.
> В таблице запчастей ~80 тыс. Откуда миллионы-то взялись?
А софт какой используете для учета, пкупной или самописный?
Ð> Ðаименований ÑоваÑов ÑейÑÐ°Ñ ~6-10 лимонов
Ð> + неÑколÑко поÑÑавÑиков Ñо Ñвоими Ñенами
Ð> на ÑÑи ÑоваÑÑ
Ð> + неÑколÑко деÑÑÑков ÑÑловий поÑÑавки по
Ð> ÑÑ
Уважаемые коллеги,
До сих пор использовал ервин,
теперь вот намерен полностью перейти на открытый софт +)
Ктонить из вас использует открытые CASE средства для работы в Firebird
и если да то какие именно +)
___
Черноусов Антон
[EMAIL PROTECTED]
http://golodnyj.blogspot.com
Hello, Константин!
Константин wrote:
Обновление прайс листов и списка товаров :(
Наименований товаров сейчас ~6-10 лимонов
+ несколько поставщиков со своими ценами
на эти товары
+ несколько десятков условий поставки по
этим поставщикам
В общем если кто когда-нибу
DK> фигней вы занимаетесь. что это за обработка
DK> такая, что миллионы записей затрагивает.
Обновление прайс листов и списка товаров :(
Наименований товаров сейчас ~6-10 лимонов
+ несколько поставщиков со своими ценами
на эти товары
+ несколько десятков условий поставки по
Всё заработало, или частично ? :)
С ServerType=1 вроде всё. С ServerType=0 какие-то чудеса. Из тестового
приложения та же самая строка подключения работает, а из рабочего нет.
Есдинственное что в рабочем проекте предпоследняя бета провайдера, а в
тестовом последняя. Сегодня не разобрал
Hello, Dmitry!
Kovalenko Dmitry wrote:
Выбрось вообще savepoints из головы.
Я вот никак не могу догнать смысла этой фразы. Это типа как про
массивы? Или типа, не с Вашим рылом?
да, это типа как массивы. Внутренняя хрень, с которой сервер
как-нибудь сам разберется.
Ты читал www.ibase.ru/dev
BigEndian процессоров.
Ого, я даже слова такого не слышал...
Не всегда так.
byte byteValue=-1;
int value=byteValue0xff;
в итоге мы получим value==255ж, это хитрый хот для перевода signed byte
в unsigned byte;
Точно, не сообразил...
Вот это ты правильно нашел надо это заменить на
while (
Hello, Konstantin!
Константин wrote:
исходя из того с чем я лично столкнулся
если есть несколько UNQ да ещё составной PK
любые insert или update с количеством
обрабатываемых записей > 1 000 000
способно достаточно мощный сервак застопорить
на несколько часов ...
фигне
> KD> Ни триггеры, ни ограничения на время реликации у нас не отключаются ;)
>
> Круто ... а обьёмы БД и репликаций хоть порядок скажи ?
Крутого там ничего нет. Просто перед тем как ломиться создавать
реализацию "немного" подумали.
База сейчас 20GB. Данных там гиг на 15, остальное логи. Хотя,
KD> Когда у меня такое случилось второй раз я покурил свои алгоритмы и
KD> больше такое не случалось.
Да курю я курю - уже дым из ушей :(
KD> Ни триггеры, ни ограничения на время реликации у нас не отключаются ;)
Круто ... а обьёмы БД и репликаций хоть порядок скажи ?
KD> И вообще, зав
> Выбрось вообще savepoints из головы.
Я вот никак не могу догнать смысла этой фразы. Это типа как про
массивы? Или типа, не с Вашим рылом?
Коваленко Дмитрий.
> исходя из того с чем я лично столкнулся
> если есть несколько UNQ да ещё составной PK
> любые insert или update с количеством
> обрабатываемых записей > 1 000 000
> способно достаточно мощный сервак застопорить
> на несколько часов ...
> Последний раз (слава богу пока
Особено угнетает ситуация с UNQ ...
Они (UNQ) просто необходимы при интерактивной
работе пользоватеей, но жутко тормозят на
массовых update и insert кот. нужны например
при репликации когда все пользователи выганяются
нафиг ;)
Естественно, для чистоты эксперемента,
Hi sasha :
Попытался я тут вкурить что ты сказал чтобы Карлосу сообщить и не понял
что ты предлагаешь проверять.
Это не то что ты подумал.
Если ты имел ввиду метод
public static int VaxInteger(byte[] buffer, int index, int length)
Это метод которое читает число, используется для того точб
Ему отдали не полностью заполненный буфер. Но читает он его неправильно. О
чём
и должён сообщить, а не полагаться на проверку границ массива компилятором
(которая
может и не помочь). Если бы он буфер не 8 байт а 128 выделил, то путешестоввал
бы по
нему х\з сколько времени.
Он попроси
On Wed, 25 Apr 2007 19:38:01 +0400, Константин <[EMAIL PROTECTED]> wrote:
> DK> давай проверим. дай примерную задачу для теста,
>Сравнил на своих (реальных) данных.
> Заливка insert'om 1000 записей:
> - без индексов за 20 мс.
> + PK (составной из 2х bigint полей) 120 мс.
> + U
Hi, многоуважаемый All!
Сори, глюконул TheBat, пришлось создать новый пост вместо ответа
Dmitri Kuzmenko ...
DK> давай проверим. дай примерную задачу для теста,
Сравнил на своих (реальных) данных.
Заливка insert'om 1000 записей:
- без индексов за 20 мс.
+ PK (составной и
VH> Ищи повторные апдейты той же записи в одной тр-ции
Такого в принципе не может быть !!!
(я имею ввиду в моих данных)
Хотя я конечно проверю ...
Спасибо...
С уважением,
Константин Григорьевич.
===
"Константин"
> К> счас попробую, но ведь логика работы
> К> изменится :(
>
>Попробовал. На тех же данных при прочих равных условиях
>запрос сожрал всего 400 Mb ...
>Вот и думай тут где собака порылась :(
Ищи повторные апдейты той же записи в одной тр-ции
--
Х
К> счас попробую, но ведь логика работы
К> изменится :(
Попробовал. На тех же данных при прочих равных условиях
запрос сожрал всего 400 Mb ...
Вот и думай тут где собака порылась :(
Спасибо за наводку ...
Буду пытатся разбить на несколько частей ...
С у
>> А мне все равно интересно, почему битмап (или что-то еще?) столько сожрал...
VH> В момент слияния сейвпойнтов у нас 2 таких битмапа.
VH> Но тут что-то ещё, т.к. битмап не должен столько жрать сам по себе.
VH> И вообще - я вижу подзапрос с log_change и исключение вылетает
VH> в log_cha
Oleg LOA wrote:
Дима и ты.опять кровавое гэбьё :-):-):-):-)
Ты радуйся, что я по старческой тупости никак не могу доверенную
модерилку включить. Тебе ДК ангелом покажется. Изрёк хотелку - бан на
месяц, упомянул екзекут - навечно с гвоздями...
--
Regards. Ded.
VH> Апдейт как часто вызывается ?
для данного случая ~ 70% от общего к-ва
вызовов, те. где-то 2 млн. раз
VH> А для одной и той же записи вызывается ?
Не понял что ты имеешь ввиду ...
VH> Если его убрать, тоже память жрётся ?
счас попробую, но ведь логика работы
измен
"Константин" ...
> CREATE PROCEDURE LOG_CHANGE(
...
> update changes
> set ver = :ver, user_ID = :user_ID
> where id = :id and ver = -1;
> end
> insert into changes (id, change, ver, user_ID) values (:id, :types, -1,
> :user_ID);
Апдейт как часто вызывается ? А для одной
DY> А мне все равно интересно, почему битмап (или что-то еще?) столько сожрал...
А что ты подразумеваешь под "битмап" ?
На самом деле и я не понимаю чего так много было сожрано...
Табличка в IBAnalist - размер ~360Мб
суммарно индексы ~200Мб (включая неиспользуемы в запросе)
С
"Dmitry Yemanov" ...
>
> Константин wrote:
> >
> > Довольно обьемый запросец на вставку дубликатов записей ;)
> >
> > insert into table (id, ver, ...)
> >select id, (select ver from log_change(id, ...)), ... from table
> > where
> >
> > Табличка много милионик (~6 млн. записей) ус
>> Мда ... спасибо буду думать дальше над смыслом жизни ... :(
DK> да ты как сибирские мужики и японская пила.
DK> - А ну-ка, сожрет запрос, перемалывающий в памяти более двух гиг?
DK> - н
:) да нет, это условие ТЗ такое еба...е
С уважением,
Константин Григорьевич.
=
Константин wrote:
Довольно обьемый запросец на вставку дубликатов записей ;)
insert into table (id, ver, ...)
select id, (select ver from log_change(id, ...)), ... from table
where
Табличка много милионик (~6 млн. записей) условие
where оганичивает до ~3,5 млн. записей
прибл
Hello, Константин!
Константин wrote:
VH> Адресное про-во процесса (в обычных условиях) ограничено 2GB.
VH> Играясь с boot.ini ты можешь это увеличить до 3GB, afaik.
VH> Далее - на 64-битную ось
Мда ... спасибо буду думать дальше над смыслом жизни ... :(
да ты как сибирские мужики и
Hello, Dorin!
Dorin Marcoci wrote:
Но почему все-же в первом случае оптимайзер не выбирает
"правильный"(contract_id, data) индекс.
Есть же:
where O.CONTRACT_ID = C.ID order by O.DATA
потому что order by o.data позволяет использовать
только ПЕРВЫЙ СЕГМЕНТ композита.
Индекс вроди подходит,
Dorin Marcoci wrote:
Но почему все-же в первом случае оптимайзер не выбирает
"правильный"(contract_id, data) индекс.
Есть же:
where O.CONTRACT_ID = C.ID order by O.DATA
Или order by "имеет больше веса" чем where?
Не умеет такого оптимизатор. В YA Олег это делал, но в FB это еще не
переех
>> Хорошо, ты говоришь для процесса
>> Для классика подразумевается что 2 Gb предел
>> для одного коннекта, или всё-же как для порождаемых
>> процессов под каждый коннект это ограничение общее ?
VH> Неужели не понятно написано - ограничение _для процесса_ ?
VH> Причём
"Константин" ...
> >> VH> Играясь с boot.ini ты можешь это увеличить до 3GB, afaik.
> >>
> >> и правда Firebird такое поймет?
>
> VH> Я не проверял, но с ходу не вижу причин "не понять"
>
> Хорошо, ты говоришь для процесса
> Для классика подразумевается что 2 Gb предел
>
Привет!
Хоть сегодня и не пятница, но меня чего-то толкнуло на размышления.
Есть у меня справочник - мультиязычный (сейчас там 2 языка, но в
теории их может быть любое количество). В этом справочнике -
идентификатор сущности вкупе с идентификатором языка - первичный ключ,
вставка осуществляется т
>> VH> Играясь с boot.ini ты можешь это увеличить до 3GB, afaik.
>>
>> и правда Firebird такое поймет?
VH> Я не проверял, но с ходу не вижу причин "не понять"
Хорошо, ты говоришь для процесса
Для классика подразумевается что 2 Gb предел
для одного коннекта, или всё-же ка
"Alexandr Kochmin" ...
>
> VH> Играясь с boot.ini ты можешь это увеличить до 3GB, afaik.
>
> и правда Firebird такое поймет?
Я не проверял, но с ходу не вижу причин "не понять"
--
Хорсун Влад
VH> Адресное про-во процесса (в обычных условиях) ограничено 2GB.
VH> Играясь с boot.ini ты можешь это увеличить до 3GB, afaik.
VH> Далее - на 64-битную ось
Мда ... спасибо буду думать дальше над смыслом жизни ... :(
С уважением,
Константин Григорьевич.
===
VH> Играясь с boot.ini ты можешь это увеличить до 3GB, afaik.
и правда Firebird такое поймет?
VH> Далее - на 64-битную ось
а хотя 32 битам осталось жить недолго ;)
--
С уважением
Кочмин Александр
Firebird Foundation associate member #257
"ÐонÑÑанÑин"
> Unsuccessful execution caused by an unavailable resource.
> unable to allocate memory from operating system.
ЧÑо ÑÑÑ Ð½Ðµ ÑÑно ? Ðинда не дала...
> СожÑало памÑÑи 2,2 Gb (0.5 RAM + 1.7 Gb Swap) Ñвободно еÑÑ ~2 Gb Swap
Ð>ТоÑнее понÑÑно ÑÑо Ð½ÐµÑ Ð¿Ð°Ð¼ÑÑи, но ÑÑо FB не Ð¿Ð¾Ð½Ð¸Ð¼Ð°ÐµÑ Ð±Ð¾Ð»Ñе 2 Gb ?
не понимаеÑ
--
С Ñважением
ÐоÑмин ÐлекÑандÑ
Firebird Foundation associate member #257
OM>
OM>> Смотри конкатенацию строк и присвоение в другие строковые переменные
OM>
OM> это то я понимаю
OM> но 1248 процедур, 572 триггера
OM>
OM> хотя бы примерно - наводку... или запрос какой, который бы нашел эту
OM> фигню
OM>
OM>
IbExpert
инструменты - анализ процедур\триггеров\п
Hi, многоуважаемый All!
Firebird-2.1.0.1-0_win32
Довольно обьемый запросец на вставку дубликатов записей ;)
insert into table (id, ver, ...)
select id, (select ver from log_change(id, ...)), ... from table
where
Табличка много милионик (~6 млн. записей) условие
where огани
Смотри конкатенацию строк и присвоение в другие строковые переменные
это то я понимаю
но 1248 процедур, 572 триггера
хотя бы примерно - наводку... или запрос какой, который бы нашел эту фигню
"sasha" ...
>
> > А теперь ?
>
> А теперь заработало c ServerType=1.
Всё заработало, или частично ? :)
> C ServerType=0 (Альварезова
> реализация протокола) не работает. Валится на Connection.Open. Пока не
> дебажил...
Должно работать, ищи :)
> PS А с той кривой обработкой буфера
А теперь ?
А теперь заработало c ServerType=1. C ServerType=0 (Альварезова
реализация протокола) не работает. Валится на Connection.Open. Пока не
дебажил...
PS А с той кривой обработкой буфера ты Карлосу сообщил или мне передать?
"Dmitri Kuzmenko" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
>> ðÏÞÅÍÕ ÔÁË?
>
> ÐÏÔÏÍÕ. óÍÏÔÒÉ ÎÁ ËÏÌ-×Ï Fetches.
>
ðÏÓÍÏÔÒÅÌ, ÐÏÎÑÌ. óÐÁÓÉÂÏ.
îÏ ÐÏÞÅÍÕ ×ÓÅ-ÖÅ × ÐÅÒ×ÏÍ ÓÌÕÞÁÅ ÏÐÔÉÍÁÊÚÅÒ ÎÅ ×ÙÂÉÒÁÅÔ
"ÐÒÁ×ÉÌØÎÙÊ"(contract_id, data) ÉÎÄÅËÓ.
åÓÔØ ÖÅ:
where O.CONTRACT_ID = C.ID
Hello, Dorin!
Dorin Marcoci wrote:
Добавляя O.CONTRACT_ID в order by чтобы оптимайзер выбрал IDX_OPER_CTRDT
(CONTRACT_ID, DATA) а не TB_OPER_DTCT (DATA, CONTRACT_ID) уменьшает время
выполнения в разы. Я сначала думал что он сразу выберет первый индекс, ведь
в where мы указываем O.CONTRACT_ID
"sasha" ...
>
> > Сегодня должно быть обновление
>
> Чё-то ничего не появилось новенького :-(
А теперь ?
--
Хорсун Влад
Hello, Sergey!
Sergey Tulaev wrote:
Влад Филиппов говорит, что в 10.11 это исправлено.
Скачал с сайта ibase.ru. Поставил.
Глюк с Numeric остался.
Похоже обновился только IBX for win32! Но там этой ошибки небыло изначально!
понятно. Влад, собственно, мне сообщил что в 10.11 for Win32
такой п
ðÒÉ×ÅÔ ×ÓÅÍ!
äÏÂÁ×ÌÑÑ O.CONTRACT_ID × order by ÞÔÏÂÙ ÏÐÔÉÍÁÊÚÅÒ ×ÙÂÒÁÌ IDX_OPER_CTRDT
(CONTRACT_ID, DATA) Á ÎÅ TB_OPER_DTCT (DATA, CONTRACT_ID) ÕÍÅÎØÛÁÅÔ ×ÒÅÍÑ
×ÙÐÏÌÎÅÎÉÑ × ÒÁÚÙ. ñ ÓÎÁÞÁÌÁ ÄÕÍÁÌ ÞÔÏ ÏÎ ÓÒÁÚÕ ×ÙÂÅÒÅÔ ÐÅÒ×ÙÊ ÉÎÄÅËÓ, ×ÅÄØ
× where ÍÙ ÕËÁÚÙ×ÁÅÍ O.CONTRACT_ID = C.ID ;(
óÅÌÅËÔÉ×ÎÏÓÔ
Oleg Matveyev wrote:
gbak:restoring index RDB$FOREIGN319
gbak: WARNING:Implementation limit exceeded
gbak: WARNING:block size exceeds implementation restriction
gbak: WARNING:Implementation limit exceeded
gbak: WARNING:block size exceeds implementation restriction
gbak: WARNING:
"Oleg Matveyev" wrote in message news:[EMAIL
PROTECTED]
>
> Кстати, кстати... я тут вспомнил
> Яфил же меня предупреждал при ресторе причем давно:
>
> gbak:restoring index RDB$FOREIGN319
> gbak: WARNING:Implementation limit exceeded
> gbak: WARNING:block size exceeds implementation
Кстати, кстати... я тут вспомнил
Яфил же меня предупреждал при ресторе причем давно:
gbak:restoring index RDB$FOREIGN319
gbak: WARNING:Implementation limit exceeded
gbak: WARNING:block size exceeds implementation restriction
gbak: WARNING:Implementation limit exceeded
gbak: WARNI
dtDoc какого типа ? И в каком диалекте БД ? А в каком диалекте
создавалась процедура ?
dtDoc DATE
диалект первый
т.е. дата со временем
Сравни её BLR до и после перекомпиляции, IBE умеет показывать BLR
погляжу.
At procedure 'PRCSENDMAIL_MOVELINKTOORDER'
At trigger 'TRGDOCUMENT_AU'
Восстановления из какого бекапа? В смысле, чем сделанного? FB2 или YA?
+1
бакап из Ya, если имеет значение - с ключем -convert
алиасы для внешних таблиц так и не получились - решил от них избавится.
Диалект был разный раньше и сейчас?
первый, не менялся.
Vlad Horsun wrote:
Полный скан индекса быстрее, чем таблицы
У меня были примеры обратного. Надо покопаться в архивах...
--
Дмитрий Еманов
"Oleg Matveyev" ...
> Первый день на боевом дежурстве FB201, ... глюк?
>
> arithmetic exception, numeric overflow, or string truncation Arithmetic
> overflow or division by zero has occurred. UPDATE C_Document SET ibActive=1,
> dtDoc = 'NOW' WHERE id=59753
dtDoc какого типа ? И в каком диалек
"Dmitry Yemanov" ...
>
> Dmitry Lendel wrote:
> >
> > Можно ли как-то оптимизировать CONTAINING?
>
> Нет.
>
> > Индекс по полю поможет?
>
> Каким образом?
Полный скан индекса быстрее, чем таблицы. Так что, если фулл скан индекса
даст менее, скажем, трети таблицы, то выигрыш должЁн быть, даже
Oleg Matveyev wrote:
arithmetic exception, numeric overflow, or string truncation Arithmetic
overflow or division by zero has occurred. UPDATE C_Document SET ibActive=1,
dtDoc = 'NOW' WHERE id=59753
At procedure 'PRCSENDMAIL_MOVELINKTOORDER'
At trigger 'TRGDOCUMENT_AU'
Ну ладно, обычное дел
> ÷ÃÃà æÃÃÃÃÃÃà ÃÃÃÃÃÃÃ, ÃÃà à 10.11 ÃÃà ÃÃÃÃÃÃÃÃ
ÃÃ.
>
óÃÃÃÃà à ÃÃÃÃà ibase.ru. ðÃÃÃÃÃÃÃ.
çÃÃà à Numeric ÃÃÃÃÃÃÃ.
ðÃÃÃÃÃ
ÃÃÃÃÃÃÃÃà ÃÃÃÃÃà IBX for win32! îà ÃÃà ÃÃÃà ÃÃÃÃÃà ÃÃ
ÃÃÃÃ ÃÃÃÃÃ
Первый день на боевом дежурстве FB201, ... глюк?
arithmetic exception, numeric overflow, or string truncation Arithmetic
overflow or division by zero has occurred. UPDATE C_Document SET ibActive=1,
dtDoc = 'NOW' WHERE id=59753
At procedure 'PRCSENDMAIL_MOVELINKTOORDER'
At trigger 'TRGDOCUMENT_AU
> ëÁËÉÍ ÏÂÒÁÚÏÍ? ôÕÔ ÄÁÖÅ ÐÏÌÎÏÔÅËÓÔÏ×ÙÊ ÎÅ ÐÏÍÏÖÅÔ × ÏÂÝÅÍ ÓÌÕÞÁÅ, IMHO.
á ÄÒÕÇÉÅ ÒÅÛÅÎÉÑ? ÷ ÏÂÈÏÄ?
äÍÉÔÒÉÊ
Dmitry Lendel wrote:
Можно ли как-то оптимизировать CONTAINING?
Нет.
Индекс по полю поможет?
Каким образом? Тут даже полнотекстовый не поможет в общем случае, IMHO.
--
Дмитрий Еманов
ðÒÉ×ÅÔ
íÏÖÎÏ ÌÉ ËÁË-ÔÏ ÏÐÔÉÍÉÚÉÒÏ×ÁÔØ CONTAINING?
éÎÄÅËÓ ÐÏ ÐÏÌÀ ÐÏÍÏÖÅÔ?
äÍÉÔÒÉÊ
Hello, Sergey!
Sergey Tulaev wrote:
ÐаннÑе из полей NUMERIC(X,Y) оÑобÑажаÑÑÑÑ Ð½ÐµÐ²ÐµÑно. То еÑÑÑ Ð² полÑÑ
полнÑй
бÑед, напÑÐ¸Ð¼ÐµÑ Ð²Ð¼ÐµÑÑо нÑÐ»Ñ - "0,0522".
Delphi 2006.NET update 2
IBX Ñодной 10.10
Ðлад Филиппо
72 matches
Mail list logo