"Плавающее" время выполнения процедуры

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 28 дек 2006, 13:50

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

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Сообщение stix-s » 28 дек 2006, 14:12

kdv писал(а):короче. что там ядро делает, и как это оно делает, в принципе пофиг.
то, что идея месить одни и те же тыщи записей несколько раз бракованная, было ясно с самого начала.
следовательно, надо поменять алгоритм обработки этих самых записей.
да, согласен я насчет массовых апдейтов, но в моей ситуации пока вариантов не вижу

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение hvlad » 28 дек 2006, 14:40

stix-s писал(а):
hvlad писал(а): Как это сделать
а) GCPolicy = background и дождаться окончания сборки мусора после каждого апдейта. Селекты тут не помогут ибо не собирают тмусор
б) GCPolicy != background + селект после апдейта. В другой тр-ции конечно
в) любой GCPolicy + FW=OFF
ых. я же и пишу, шо:
а) GCPolicy = background
что значить дождаться?
Покурить в сторонке 20 сек. Пока ЦПУ уляжется. Или он после коммита ничего не делает ?
stix-s писал(а):IBA мне кажет, что версий нет, следовательно мусор собран
После коммита смотришь ? Если нет версий, то нет повода тормозить следующему апдейту. В сказки я давно уже не верю
stix-s писал(а):б) это и делаю - GCPolicy = background, апдейт в пишущей, соммит, селект в читающей
"GCPolicy != background "
и
"это и делаю - GCPolicy = background"

ась ?

Читающая read-committed + readoly ? Если нет то её тоже нужно коммитить
stix-s писал(а):в) не, не хочу FW=OFF
Твоё дело

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Сообщение stix-s » 28 дек 2006, 14:40

WildSery писал(а): Стотыщ записей - не так уж много. Можно всосать все TXT суперконвертилкой, которая в памяти всё соберёт и выплюнет готовый к обработке тэйбл.
Мона, но готовую таблицу в памяти мне придется собирать на основании данных справочников в ФБ - либо запросами по каждому поводу дергать, либо все 7 справочных таблиц в память засасывать а там уже записей под 600 000 и реальная тенденция к увеличению, так шо я в раздумьях и пока мучаю ФБ

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Сообщение stix-s » 28 дек 2006, 14:52

hvlad писал(а): Покурить в сторонке 20 сек. Пока ЦПУ уляжется. Или он после коммита ничего не делает ?
Ничего, утихает зараза.
hvlad писал(а): После коммита смотришь ? Если нет версий, то нет повода тормозить следующему апдейту. В сказки я давно уже не верю
да, я тоже не верю, но перепроверю :)
hvlad писал(а): ась ?
Читающая read-committed + readoly ? Если нет то её тоже нужно коммитить
да
пишущая -
write
nowait
concurrency

читающая
read
nowait
rec_version
read_committed

есть еще одна, прицеплена к
TpFIBDatabase
для чтени ягрантов там и пр
но для работы с данной таблицей я ее не пользую
write
nowait
read_committed
rec_version

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 28 дек 2006, 14:53

stix-s писал(а):Мона, но готовую таблицу в памяти мне придется собирать на основании данных справочников в ФБ - либо запросами по каждому поводу дергать, либо все 7 справочных таблиц в память засасывать а там уже записей под 600 000 и реальная тенденция к увеличению, так шо я в раздумьях и пока мучаю ФБ
Типа как сейчас у тебя - не "дёргаешь"?
В общем, дело тёмное, без специфики конкретные советы давать что пальцем в небо.
А про мусор тебе уже размусолили. Почти стихи.

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Сообщение stix-s » 29 дек 2006, 08:21

WildSery писал(а): А про мусор тебе уже размусолили. Почти стихи.
угу, а я вот стою на асфальте в лыжи обутый, то ли лыжи не едеть, то ли я .........
1 перустановил ФБ 2.0.0.12748 SS
2 загнал парсером 50 000 строк в таблицу
3 прогнал процедурой - 10 сек
4 курю бамбук
5 смотрю IBA - нет версий, GCPolicy = background - собраны
6 - запускаю процедуру - счастье - 10 сек
7 - курю бамбук - смотрю IBA - нет версий - нет версий
8 - косяк, зависла транзакция - начали копиться версии

Код: Выделить всё

LOG_TMP (134) 
    Primary pointer page: 151, Index root page: 152 
    Average record length: 126.21, total records: 48947 
    Average version length: 9.00, total versions: 381697, max versions: 8 
    Data pages: 1088, data page slots: 1088, average fill: 95%
а процедуре по барабану! выполняется все равно 10 сек
:shock: :shock:

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 29 дек 2006, 10:06

может, ты раньше сервер не рестартовал при изменении конфига?
кроме того, я тебе давал ссылку на аналогичное обсуждение настроек сборки мусора на sql.ru.

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Сообщение stix-s » 29 дек 2006, 10:58

kdv писал(а): может, ты раньше сервер не рестартовал при изменении конфига?
кроме того, я тебе давал ссылку на аналогичное обсуждение настроек сборки мусора на sql.ru.
рестартовал
да и по ссылке все по полочкам разложено вот я понять и не мог почему у меня не так
сегодня при перустановке FB сам сервак перезагружал и все пришло к нормальному виду
а вот при очередной попытке коннекта к базе вылетело:

Код: Выделить всё

EFIBInterBaseError: Bad parameters on attach or create database.
CHARACTER SET WIN1251 is not defined
перестартанул ФБ, и началась катавасия время выполнения 1-2 мин
я так начинаю подозревать, что у меня WIN дурит

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение hvlad » 29 дек 2006, 11:49

stix-s писал(а):
kdv писал(а): может, ты раньше сервер не рестартовал при изменении конфига?
кроме того, я тебе давал ссылку на аналогичное обсуждение настроек сборки мусора на sql.ru.
рестартовал
да и по ссылке все по полочкам разложено вот я понять и не мог почему у меня не так
сегодня при перустановке FB
Так может ты не тот конфиг правил ? :)

stix-s писал(а):сам сервак перезагружал и все пришло к нормальному виду
а вот при очередной попытке коннекта к базе вылетело:

Код: Выделить всё

EFIBInterBaseError: Bad parameters on attach or create database.
CHARACTER SET WIN1251 is not defined
intl потерял, что ли ?
stix-s писал(а):перестартанул ФБ, и началась катавасия время выполнения 1-2 мин
Это ты версий накопил ранее, а сейчас они собираться побежали :) Или авто-свип сработал

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Сообщение stix-s » 29 дек 2006, 13:23

hvlad писал(а): Это ты версий накопил ранее, а сейчас они собираться побежали :) Или авто-свип сработал
Не, нефига IBA кажет не так уж и много версий, чтобы бы ло так тормозно.
А вообще я уже пьян, так что всех С НГ, всех благ и пр и трю, как протрезвею, вернусь к теме, дома попробую

Ответить