powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Тормоза под нагрузкой, имитирующей OLTP: в где искать причину, когда ничего не видно ?
9 сообщений из 34, страница 2 из 2
Тормоза под нагрузкой, имитирующей OLTP: в где искать причину, когда ничего не видно ?
    #38653439
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

я про ограничитель FIRST/ROWS. Или фетч первых записей с клиента
...
Рейтинг: 0 / 0
Тормоза под нагрузкой, имитирующей OLTP: в где искать причину, когда ничего не видно ?
    #38653667
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидостальное обломалось ввиду лок-конфликтов с конкурентамиА лок тайм-аут какой ?
...
Рейтинг: 0 / 0
Тормоза под нагрузкой, имитирующей OLTP: в где искать причину, когда ничего не видно ?
    #38653679
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladТаблоидостальное обломалось ввиду лок-конфликтов с конкурентамиА лок тайм-аут какой ?все транзакции стартуют только так: set tran snapshot NO wait
...
Рейтинг: 0 / 0
Тормоза под нагрузкой, имитирующей OLTP: в где искать причину, когда ничего не видно ?
    #38653689
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как выглядит сообщение\код ошибки о "лок-конфликт с конкурентами" ?
...
Рейтинг: 0 / 0
Тормоза под нагрузкой, имитирующей OLTP: в где искать причину, когда ничего не видно ?
    #38653731
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

вот один из примеров:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Statement failed, SQLSTATE = 40001
deadlock
-update conflicts with concurrent update
-concurrent transaction number is 100662
-At trigger 'DOC_DATA_AIUD' line: 142, col: 25
At trigger 'CHECK_48'
At procedure 'SP_ADD_INVOICE_TO_STOCK' line: 125, col: 9
At procedure 'SP_CANCEL_ADDING_INVOICE' line: 40, col: 5
-At procedure 'SP_ADD_INVOICE_TO_STOCK' line: 246, col: 9
At procedure 'SP_CANCEL_ADDING_INVOICE' line: 40, col: 5
After line 2763 in file tmp_oltp_accountant.tmp
...
Рейтинг: 0 / 0
Тормоза под нагрузкой, имитирующей OLTP: в где искать причину, когда ничего не видно ?
    #38653736
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или вот, самое типичное:
Код: plaintext
1.
2.
3.
4.
5.
6.
-update conflicts with concurrent update
-concurrent transaction number is 655703
-At procedure 'SP_LOCK_SELECTED_DOC' line: 29, col: 5
At procedure 'SP_RESERVE_WRITE_OFF' line: 38, col: 5
-At procedure 'SP_LOCK_SELECTED_DOC' line: 36, col: 9
At procedure 'SP_RESERVE_WRITE_OFF' line: 38, col: 5
After line 3333 in file tmp_oltp_paydesk.tmp
...
Рейтинг: 0 / 0
Тормоза под нагрузкой, имитирующей OLTP: в где искать причину, когда ничего не видно ?
    #38653937
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во, еще тут "перл" попался:
30829 ms, 2 write(s), 39153 fetch(es), 281 mark(s)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
2014-05-27T23:40:20.0900 (2265:0x7f0827fcf570) EXECUTE_STATEMENT_FINISH
        oltp30 (ATT_1056, SYSDBA:NONE, NONE, TCPv4:192.168.43.96)
        C:\MIX\firebird\fb25\bin\isql.exe:4220
                (TRA_3909514, CONCURRENCY | NOWAIT | READ_WRITE)

Statement 841242:
-------------------------------------------------------------------------------
execute block returns( client_order_id bigint, total_lines int, purchase_sum numeric(12,2), retail_sum numeric(12,2) )
as begin
    if ( exists( select * from v_cancel_client_order ) ) then
    begin
      select
         min(p.doc_list_id) client_order_id, count(*) total_lines,
         sum(p.purchase) purchase_sum, sum(p.retail) retail_sum
      from sp_cancel_client_order p
      --   ~~~~~~~~~~~~~~~~~~~~~~~~
      into client_order_id, total_lines, purchase_sum, retail_sum;
      suspend;
   end
end
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PLAN (V_CANCEL_CLIENT_ORDER QDISTR INDEX (QDISTR_DOC_SND, QDISTR_SND_OPTYPE_ID))
PLAN (V_CANCEL_CLIENT_ORDER H INDEX (UNQ_DOC_LIST_OP_ID))
PLAN (P NATURAL)
1 records fetched
  30829 ms, 2 write(s), 39153 fetch(es), 281 mark(s)

Table                             Natural     Index    Update    Insert    Delete   Backout     Purge   Expunge
***************************************************************************************************************
OPTYPES                                          20
DOC_LIST                                        248         2
DOC_DATA                                         30        15
USED_VIEWS                                        1
QDISTR                                         3581                           156
DOC_STATES                                        1
INVNT_TURNOVER_LOG                               16                  15
PERF_LOG                                          1         1         1

Процедурка эта вообще мало что делает, там основную работу триггера фигачат (увы и ах, но пришлось таки часть логики в них затолкать). Она меняет в заголовке документа (doc_list) поле "код_операции", далее срабатывает каскад и прописывает нужные изменения в строках (doc_data, 15 строк). Триггер же в doc_data грохает 156 строк в подчинённой таблице qdistr и добавляет те же 15 строк в журнал (invnt_turnover_log).
Ну крохи же, микроскопом не разглядеть!... Транзакция стартовала с NO WAIT, т.е. ничего ждать не могла. "Широких" таблиц нет. Блобов нет. Мониторинг - "вообще не знаю, что это".
Статистика по индексам в это время НЕ пересчитывалась (проверил по логу), свип в это время также не работал.

Откудова 31 секунда ??

ЗЫ. Не хватает для такого рода задач (профайлинг) "развёртки" времени, потраченного на то и сё...
...
Рейтинг: 0 / 0
Тормоза под нагрузкой, имитирующей OLTP: в где искать причину, когда ничего не видно ?
    #38654001
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

профайлинг есть смысл использовать в конкретный момент времени. Включать его заранее и потом через 13 часов смотреть по логам что там тормозило - это обречь себя на еще большие тормоза все эти 13 часов, ибо "развертка времени" очень недешево обходится.
...
Рейтинг: 0 / 0
Тормоза под нагрузкой, имитирующей OLTP: в где искать причину, когда ничего не видно ?
    #38654144
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrпрофайлинг есть смысл использовать в конкретный момент времени. Включать его заранее и потом через 13 часов смотреть по логам что там тормозило - это обречь себя на еще большие тормоза все эти 13 часов, ибо "развертка времени" очень недешево обходится.дык я почти наверняка могу сказать, что вот на таком-то конкретном вызове некоторой ХП (select * from sp_cancel_client_order) будут тормоза, совсем не надо на 13 часов оставлять его (профайлинг) включенным.
Просто запустил молотьбу, подождал 10-20 минут, а затем
0) запустил отдельный isql, выяснил его аттач;
1) включил "что-то там" на стороне ФБ, чтобы он отслеживал активность только этого аттача;
2) тихо набрал нужную строку и ввёл её; quit; profit.
...
Рейтинг: 0 / 0
9 сообщений из 34, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Тормоза под нагрузкой, имитирующей OLTP: в где искать причину, когда ничего не видно ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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