Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / научите, плз, читать статистику выполнения запроса / 23 сообщений из 23, страница 1 из 1
19.10.2019, 20:27
    #39878682
GrigoriyFomin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
научите читать статистику выполнения запроса или подскажите, где про это можно подробно почитать. Сделал простой апдейт одного поля справочника товаров:
Код: sql
1.
update goods set modart=trim(modart)


В итоге он выполнялся 11 часов. Я так понимаю, проанализировав статистику выполнения можно поправить конфиги сервера и получить более приятный результат.
Комп - win10 x32, FB 3.0.4, суперсервер, конфиги по умолчанию как при установке. Размер базы - 180МБ.
Судя по прочитанному на форуме, значение кэша тут как минимум заниженное.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Plan
PLAN (GOODS NATURAL)

27807 record(s) was(were) updated in GOODS

27807 record(s) was(were) inserted into LOG2IM

------ Performance info ------
Prepare time = 16ms
Execute time = 11h 55m 20s 953ms
Current memory = 87 937 920
Max memory = 166 798 352
Memory buffers = 2 048
Reads from disk to cache = 326 774
Writes from cache to disk = 11 606
Fetches from cache = 0
...
Рейтинг: 0 / 0
19.10.2019, 20:35
    #39878688
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
Как апдейт 30 тыщ записей (даже с логами) может
выполняться 11 часов? Даже на дефолтном конфиге.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
19.10.2019, 20:39
    #39878689
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
GrigoriyFominСделал простой апдейт одного поля справочника товаров:
Код: sql
1.
update goods set modart=trim(modart)

У запроса "обновить все записи" может быть только один план:
Код: plaintext
PLAN (GOODS NATURAL)
Я так понимаю, проанализировав статистику выполнения можно поправить конфиги сервераДля правки firebird.conf/databases.conf не нужна статистика - надо внимательно прочитать комментарии из firebird.conf.Комп - win10 x32, FB 3.0.4, суперсервер, конфиги по умолчанию как при установке. Размер базы - 180МБ.Для базы в 180МБ даже 2ГБ 32-разрядной системы - за глаза.
...
Рейтинг: 0 / 0
19.10.2019, 20:40
    #39878690
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
GrigoriyFomin,

тут фетчей было так много что они походу переполнили разрядность integer. В эксперте такой глюк бывает

Код: plaintext
Memory buffers = 2 048

Для FB 3.0.4 SS это не серьёзно. Увеличивай до 32K тогда ваша мелкая БД целиком в кеш влезет.

Чтоб 27807 записей обновлялись и вставлялись 11 часов это надо сильно постараться. Что за железяка такая?

И да судя по всему запрос у вас для служебных целей запущен. Так надо было триггер то отключить, чтобы быстрее отработало.
...
Рейтинг: 0 / 0
19.10.2019, 20:47
    #39878691
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
Лажа какая-то. Потом будут легенды плодиться, какой фб тормоз. Короче - не верю.

База на каком-нидь облаке через диалап модем.

Больше ничего на ум не приходит, как можно ТАК тупить.
Трехдюймовые дискеты пришлось отбросить, база на них не поместится.
...
Рейтинг: 0 / 0
19.10.2019, 20:53
    #39878694
GrigoriyFomin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
с разрядностью обманул - Win 2016 Server x64, 8 гигов оперативы, 4-х ядреный intel 2.1GHz, винт - redhat virtio scsi Disc Device, база и ядро БД - локальная.
...
Рейтинг: 0 / 0
19.10.2019, 21:01
    #39878696
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
Ivan_Pisarevsky,

или у него какой-то мегахитрый триггер. Заметь у него с диска было 326 774 чтений, значит там точно не одна таблица goods читается.
...
Рейтинг: 0 / 0
19.10.2019, 21:05
    #39878697
GrigoriyFomin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
Симонов ДенисIvan_Pisarevsky,

или у него какой-то мегахитрый триггер. Заметь у него с диска было 326 774 чтений, значит там точно не одна таблица goods читается.

не, триггер там не сильно сложный, хотя.... Вот уже пнули в нужном направлении, на что указывает это количество чтений? Точнее, как его интерпретировать? Это количество считанных из БД записей?
...
Рейтинг: 0 / 0
19.10.2019, 21:20
    #39878703
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
GrigoriyFomin,

нет. Это количество прочитанных с диска страниц. Предположим размер страницы 8K, тогда

326774 × 8192 = 2676932608 = 2.5 Гб. Ваша база прочитана целиком многократно
...
Рейтинг: 0 / 0
19.10.2019, 22:22
    #39878727
GrigoriyFomin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
Симонов Денис, а параметры, связанные с кэшем могут повлиять на это количество считываний?
...
Рейтинг: 0 / 0
19.10.2019, 22:32
    #39878731
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
GrigoriyFomin,

возможно. Но эксперимент надо повести на чём то более быстром. Например

Код: sql
1.
select count(*) from goods 



какого типа поле modart?
...
Рейтинг: 0 / 0
19.10.2019, 22:45
    #39878733
GrigoriyFomin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
Симонов Денис,

varchar(40), кодировка UTF-8. Кстати, оказалось, что заказчик расположил базу на виртуальном серваке, где выставил минимальные иопсы (не сильно понимаю, что это на пальцах).
...
Рейтинг: 0 / 0
20.10.2019, 16:16
    #39878867
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
GrigoriyFominзаказчик расположил базу на виртуальном серваке, где выставил минимальные иопсыМой довод про облако оказался недалек от истины. :)
GrigoriyFominне сильно понимаю, что этоЭто означает вас настолько ограничили в операциях ввода-вывода с диском, что оно так эпично тормозит.

1. настройками фб это не решить.
2. смотреть что там в метаданных, сдается мне там та еще перловка.
3. ИОпсов надо много, я бы сказал, что это первейший ресурс, чем больше, тем лучше.
...
Рейтинг: 0 / 0
20.10.2019, 16:18
    #39878868
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
Если у заказчика инфраструктура на линуксе, на кой туда запихнули винду? Шоб слоники бегали?
...
Рейтинг: 0 / 0
20.10.2019, 16:24
    #39878871
GrigoriyFomin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
кстати, пытался для увеличения производительности разместить базу на рамдрайве, но практически ничего это не дало. То есть кэша ФБ хватает?
...
Рейтинг: 0 / 0
20.10.2019, 16:56
    #39878876
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
Ты пытаешься измерить давление у больного с оторванной рукой.
Есть некая проблема в базе или оборудовании, которую надо выявить и по возможности решить.
...
Рейтинг: 0 / 0
20.10.2019, 17:44
    #39878879
GrigoriyFomin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
982183,

в моем случае (не только в вышеупомянутом), проще докупить тормозящий компонент или покрутить что-то в конфиге, чем рефакторить весь код, которому больше 5 лет и он уже отлажен совместно с бухгалтерами. Сейчас никто не будет спокойно говорить, что по бух.части произошла ошибка и ее нужно поправить - тупо сделают как даст программа, а потом при ревизии начнут искать крайнего и крайний будет явно не бух (их к тому времени может смениться не один).
Пусть это экстенсивный путь развития, но проще докупить памяти и развернуть рамдрайв или проагрейдить ксеон на более мощный, только это эффекта не дает (( Вот и хоцца понять - чем можно помочь файрберду железом или конфигом, не трогая боевую базу?
Поэтому и полез разбирать статистику запроса, чтоб понять, чего поменять по неSQL части, чтоб был заметен прирост производительности.
...
Рейтинг: 0 / 0
20.10.2019, 20:14
    #39878931
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
GrigoriyFominпытался для увеличения производительности разместить базу на рамдрайве, но практически ничего это не дало.Просто вы неправильно кошек готовите.
На винде в \ProgramData\firebird, на линуксе - /tmp/firebird находятся лок-файлы и нельзя серьёзно увеличить производительность, оставив их на "медленном" диске.
И, опять-таки, если вы уже готовы рискнуть (не рекомендую), то можно просто отключить force write gfix-ом - кое-какой прирост производительности у вас будет.

P.S.
Но, таки, "тарифный план с минимальными IOPS-ами" - приговор для (любой) СУБД.
...
Рейтинг: 0 / 0
20.10.2019, 21:16
    #39878960
GrigoriyFomin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
Basil A. Sidorov,

просветите насчет лок-файлов? Я думал все варится внутри FDB файла. Ну еще темповские и firebird.cfg
Насчет иопсов - это один из вариантов тормозов FB. Есть еще одна ситуация - там выделенный под FB полноценный сервак с 16-тиядреным целероном, и проч, но также размещение базы в рамдрайве не дало результата. Как и замена 16-тиядреного целерона на 8миядреный ксеон.
...
Рейтинг: 0 / 0
20.10.2019, 22:19
    #39878993
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
GrigoriyFomin,

да какая там разница сколько вы ядер выделите, если у вас ваш апдейт тормозит в однопользовательском режиме?
...
Рейтинг: 0 / 0
20.10.2019, 22:43
    #39879005
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
GrigoriyFominне трогая боевую базу?Искать надо под фонарем - там светлее!
...
Рейтинг: 0 / 0
21.10.2019, 07:58
    #39879056
m7m
m7m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
GrigoriyFomin,

посмотри все-же на триггера таблицы GOODS
...
Рейтинг: 0 / 0
21.10.2019, 09:05
    #39879066
Шавлюк Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
научите, плз, читать статистику выполнения запроса
m7m,

Мне кажется там неиндексированный поиск по таблице логов
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / научите, плз, читать статистику выполнения запроса / 23 сообщений из 23, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]