Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Различает ли движок время реального выполн-я и время ОЖИДАНИЯ при set trans lock timeout>0 / 4 сообщений из 4, страница 1 из 1
15.04.2014, 21:38:00
    #38615895
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Различает ли движок время реального выполн-я и время ОЖИДАНИЯ при set trans lock timeout>0
hi all

DDL:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> recreate table t(id int, x int); commit;
SQL> insert into t values(1, 100); commit;
SQL> set term ^;
SQL> create or alter procedure p as
CON> declare x int;
CON> begin
CON> select x from t where id=1 for update with lock into x; update t set x=x*x where id=1;
CON> end^
SQL> set term ;^
SQL> commit;

session #1
SQL> update t set x=200 where id=1;

session #2
SQL> set transaction read committed record_version lock timeout 30;
SQL> execute procedure p; -- висяк на 30 секунд. Идём в session #1

session #1
SQL> commit;

Трейс для session #2:
Код: 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.
38.
39.
40.
41.
42.
43.
44.
45.
46.
2014-04-15T21:28:55.3380 (9652:0x7f85779bb590) EXECUTE_STATEMENT_START
        oltp30 (ATT_9526, SYSDBA:NONE, NONE, TCPv4:192.168.43.96)
        C:\MIX\firebird\fb25\bin\isql.exe:3424
                (TRA_6040336, READ_COMMITTED | REC_VERSION | WAIT 30 | READ_WRITE)

Statement 222011:
-------------------------------------------------------------------------------
execute procedure p

2014-04-15T21:28:55.3380 (9652:0x7f85779bb590) EXECUTE_PROCEDURE_START
        oltp30 (ATT_9526, SYSDBA:NONE, NONE, TCPv4:192.168.43.96)
        C:\MIX\firebird\fb25\bin\isql.exe:3424
                (TRA_6040336, READ_COMMITTED | REC_VERSION | WAIT 30 | READ_WRITE)

Procedure P:

2014-04-15T21:29:05.4640 (9652:0x7f85779bb590) EXECUTE_PROCEDURE_FINISH
        oltp30 (ATT_9526, SYSDBA:NONE, NONE, TCPv4:192.168.43.96)
        C:\MIX\firebird\fb25\bin\isql.exe:3424
                (TRA_6040336, READ_COMMITTED | REC_VERSION | WAIT 30 | READ_WRITE)

Procedure P:
  10126 ms, 771 fetch(es), 7 mark(s)

Table                             Natural     Index    Update    Insert    Delete   Backout     Purge   Expunge
***************************************************************************************************************
RDB$INDICES                           117        24
RDB$RELATION_CONSTRAINTS               86
T                                       2                   1

2014-04-15T21:29:05.4640 (9652:0x7f85779bb590) EXECUTE_STATEMENT_FINISH
        oltp30 (ATT_9526, SYSDBA:NONE, NONE, TCPv4:192.168.43.96)
        C:\MIX\firebird\fb25\bin\isql.exe:3424
                (TRA_6040336, READ_COMMITTED | REC_VERSION | WAIT 30 | READ_WRITE)

Statement 222011:
-------------------------------------------------------------------------------
execute procedure p
0 records fetched
  10126 ms, 771 fetch(es), 7 mark(s)

Table                             Natural     Index    Update    Insert    Delete   Backout     Purge   Expunge
***************************************************************************************************************
RDB$INDICES                           117        24
RDB$RELATION_CONSTRAINTS               86
T                                       2                   1

Что там делалось ВНУТРИ ХП и на чём на самом деле было застревание, в трейсе не видно.
Зверское время в 10 сек на самом деле не имеет прямого отношения к реальной произв-сти. Это время ожидания, оно могло быть вызвано не только падением произв-сти сервера, но и тем, что сессия-1 ушла "на обед" (на 30 сек :)).

Так что вопросик тут как бэ - см сабж.
...
Рейтинг: 0 / 0
15.04.2014, 21:58:48
    #38615902
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Различает ли движок время реального выполн-я и время ОЖИДАНИЯ при set trans lock timeout>0
движок рапортует время выполнения операции, а не производительность. Оное выполнение может состоять из работы ЦПУ, работы диска, ожидания, чего угодно еще. Не надо видеть в этой цифре что-то иное чем она есть на самом деле.
...
Рейтинг: 0 / 0
15.04.2014, 22:06:26
    #38615906
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Различает ли движок время реального выполн-я и время ОЖИДАНИЯ при set trans lock timeout>0
А учесть как-то время простоев - это без шансов, я так понимаю ?

(вопрос не праздный: вижу по логу в базе, что бесконца идут ожидания на получение записи при select for update with lock. Если стартовать транзакции с NO wait, то даже при средней нагрузке будут сразу отлупы, т.е. документы меняться вообще не будут, пустая возня получится)
...
Рейтинг: 0 / 0
15.04.2014, 22:35:57
    #38615921
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Различает ли движок время реального выполн-я и время ОЖИДАНИЯ при set trans lock timeout>0
шансы есть, но обещаний не будет
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Различает ли движок время реального выполн-я и время ОЖИДАНИЯ при set trans lock timeout>0 / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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