Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Вопрос про lockreqs / 25 сообщений из 37, страница 1 из 2
25.10.2006, 12:55
    #34079851
Евгений Фадеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
О чем может говорить следующая ситуация:
для некоторой таблицы lockreqs (полученный из sysptprof) астрономический, при этом количество чтений - микроскопическое (скажем соотношение миллионы/десятки миллионов на сотни), а записей/удалений (iswrites/isrewrites/isdeletes) нет вообще (либо пренебрежимо мало - единицы)? Причем все это за очень короткие интервалы (десятки секунд - минуты).
...
Рейтинг: 0 / 0
25.10.2006, 13:55
    #34080138
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
Евгений ФадеевО чем может говорить следующая ситуация:
для некоторой таблицы lockreqs (полученный из sysptprof) астрономический, при этом количество чтений - микроскопическое (скажем соотношение миллионы/десятки миллионов на сотни), а записей/удалений (iswrites/isrewrites/isdeletes) нет вообще (либо пренебрежимо мало - единицы)? Причем все это за очень короткие интервалы (десятки секунд - минуты).select for update ?

UPD: хотя и простой селект тоже будет увеличивать lockreqs.
...
Рейтинг: 0 / 0
25.10.2006, 17:01
    #34081067
Евгений Фадеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
Журавлев Денисselect for update ?Возможно. Кода много, его не я писал и вполне возможно что таких конструкций там есть. То есть это типа блокировки намерений?

Журавлев ДенисUPD: хотя и простой селект тоже будет увеличивать lockreqs.Но чтений (read'ов) при этом происходить (регестрироваться) не будет?
...
Рейтинг: 0 / 0
25.10.2006, 17:27
    #34081176
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
Евгений ФадеевНо чтений (read'ов) при этом происходить (регестрироваться) не будет?будут. Не заметил слово микроскопическое, про соотношение не понял. Значит мои предположения не верны. Еще блокировки накладываются из-за констрейнтов, чтения таблицы может не быть, а у индекса наверно будет чтение.
...
Рейтинг: 0 / 0
25.10.2006, 17:37
    #34081213
Евгений Фадеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
Журавлев Денис Евгений ФадеевНо чтений (read'ов) при этом происходить (регестрироваться) не будет?будут. Не заметил слово микроскопическое, про соотношение не понял. Значит мои предположения не верны.Это ключевая часть вопроса... Я, честно говоря, в сильном замешательстве. Чтений нет (100-200 штук), а запросов блокировок - десятки, если не сотни, миллионов.
Журавлев Денис Еще блокировки накладываются из-за констрейнтов, чтения таблицы может не быть, а у индекса наверно будет чтение.Констрейнтов, практически нет (что, с моей точки зрения, полный беспредел, но это к делу отношения не имеет). А вот мысль про индексы - интересная.
То есть при чтении из индекса isreads не накручивается, а запросы на блокировки идут? Я правильно понимаю?
...
Рейтинг: 0 / 0
25.10.2006, 17:54
    #34081293
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
кстати что у нас с полем bfrd - где смотрели кол-во чтений-то?
...
Рейтинг: 0 / 0
25.10.2006, 18:00
    #34081315
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
Код: 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.
partnum    lkrqs lkwts dlks  touts isrd  iswrt isrwt isdel bfrd  bfwrt seqsc rhitratio
0x20009c   0     0     0     0     3     0     0     0     42    0     3     100


informix@nag:/informix/etc> echo "select i0 from testlocks where i0=1 for update;"|dbaccess a
6 row(s) retrieved.

partnum    lkrqs lkwts dlks  touts isrd  iswrt isrwt isdel bfrd  bfwrt seqsc rhitratio
0x20009c   343   0     0     0     10    0     0     0     54    0     4     100


informix@nag:/informix/etc> echo "select i0 from testlocks where i0=1 for update;"|dbaccess a
6 row(s) retrieved.

partnum    lkrqs lkwts dlks  touts isrd  iswrt isrwt isdel bfrd  bfwrt seqsc rhitratio
0x20009c   686   0     0     0     17    0     0     0     66    0     5     100


select {+explain} i0 from testlocks where i0=1 for update

DIRECTIVES FOLLOWED:
EXPLAIN
DIRECTIVES NOT FOLLOWED:

Estimated Cost: 12
Estimated # of Rows Returned: 342

  1) informix.testlocks: SEQUENTIAL SCAN

        Filters: informix.testlocks.i0 = 1

...
Рейтинг: 0 / 0
25.10.2006, 18:11
    #34081359
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
Код: 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.
informix@nag:~> echo "update statistics high for table;"|dbaccess a
Statistics updated.


partnum    lkrqs lkwts dlks  touts isrd  iswrt isrwt isdel bfrd  bfwrt seqsc rhitratio
0x20009c   0     0     0     0     0     0     0     0     0     0     0     0

informix@nag:~> echo "select  i0 from testlocks where i0=1 for update;"|dbaccess a
6 row(s) retrieved.

partnum    lkrqs lkwts dlks  touts isrd  iswrt isrwt isdel bfrd  bfwrt seqsc rhitratio
0x20009c   7     0     0     0     0     0     0     0     6     0     0     100

informix@nag:~> echo "select  i0 from testlocks where i0=1 for update;"|dbaccess a
6 row(s) retrieved.

partnum    lkrqs lkwts dlks  touts isrd  iswrt isrwt isdel bfrd  bfwrt seqsc rhitratio
0x20009c   14    0     0     0     0     0     0     0     12    0     0     100

QUERY:
------
select {+explain} i0 from testlocks where i0=1 for update

DIRECTIVES FOLLOWED:
EXPLAIN
DIRECTIVES NOT FOLLOWED:

Estimated Cost: 2
Estimated # of Rows Returned: 6

  1) informix.testlocks: INDEX PATH

    (1) Index Keys: i0   (Serial, fragments: ALL)
        Lower Index Filter: informix.testlocks.i0 = 1

...
Рейтинг: 0 / 0
25.10.2006, 18:20
    #34081391
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
informix@nag:~> echo "update statistics high for table;"|dbaccess a

Database selected.


Statistics updated.

Database closed.

Такое и раньше работало или опять индусы? Пойду синтакс читать.
...
Рейтинг: 0 / 0
25.10.2006, 18:39
    #34081441
Евгений Фадеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
Я смотрю последством селектов из sysptprof.

В общем для bufread'ов цифры тоже ого-го! То есть десятки миллионов. О чем это говорит?
...
Рейтинг: 0 / 0
25.10.2006, 18:45
    #34081456
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
Евгений ФадеевЯ смотрю последством селектов из sysptprof.

В общем для bufread'ов цифры тоже ого-го! То есть десятки миллионов. О чем это говорит?О том что чтение из буферов, а не с диска, кеширование на чтение у вас работает, поздравляю
...
Рейтинг: 0 / 0
25.10.2006, 18:59
    #34081496
Евгений Фадеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
Журавлев Денис Евгений ФадеевЯ смотрю последством селектов из sysptprof.

В общем для bufread'ов цифры тоже ого-го! То есть десятки миллионов. О чем это говорит?О том что чтение из буферов, а не с диска, кеширование на чтение у вас работает, поздравляю А-а-а... То есть read'ы это физические чтения с диска? А bufread's, соответственно, из памяти (буферов)?
Тогда понятно, спасибо. Я поначалу чумал, что наоборот...
...
Рейтинг: 0 / 0
25.10.2006, 19:08
    #34081523
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
Евгений ФадеевА-а-а... То есть read'ы это физические чтения с диска? А bufread's, соответственно, из памяти (буферов)?
Тогда понятно, спасибо. Я поначалу чумал, что наоборот...
Ну я не очень копенгаген в этом вопросе но думаю что это типа Number of times the ISAM read function is called. Или The number of reads against this partition .
...
Рейтинг: 0 / 0
25.10.2006, 19:16
    #34081537
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
В любом случае ситуация
Код: plaintext
1.
partnum    lkrqs lkwts dlks  touts isrd  iswrt isrwt isdel bfrd  bfwrt seqsc rhitratio
0x20009c   343   0     0     0     10    0     0     0     54    0     4     100
абсолютно нормальна, на странице ведь не одна запись, их там много.

Хотя не очень понятно в каких единицах эти числа, таблица-то всего 2 страницы.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
informix@nag:~> onstat -z

informix@nag:~> onstat -g ppf 2097308

partnum    lkrqs lkwts dlks  touts isrd  iswrt isrwt isdel bfrd  bfwrt seqsc rhitratio
0x20009c   0     0     0     0     0     0     0     0     0     0     0     0

informix@nag:~> echo "select  i0 from testlocks where i0=1 for update;"|dbaccess a

partnum    lkrqs lkwts dlks  touts isrd  iswrt isrwt isdel bfrd  bfwrt seqsc rhitratio
0x20009c   343   0     0     0     7     0     0     0     12    0     1     100
...
Рейтинг: 0 / 0
26.10.2006, 11:01
    #34082611
Тан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
Журавлев Денис Евгений ФадеевА-а-а... То есть read'ы это физические чтения с диска? А bufread's, соответственно, из памяти (буферов)?
Тогда понятно, спасибо. Я поначалу чумал, что наоборот...
Ну я не очень копенгаген в этом вопросе но думаю что это типа Number of times the ISAM read function is called. Или The number of reads against this partition .
Если таблица по индексу читается, то isread накрутятся для индекса
...
Рейтинг: 0 / 0
26.10.2006, 11:41
    #34082814
Евгений Фадеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
ТанЕсли таблица по индексу читается, то isread накрутятся для индексаЭто я понял по тому странному факту, что в столбце tabname появляются имена индексов :))
...
Рейтинг: 0 / 0
26.10.2006, 12:59
    #34083238
Евгений Фадеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
В общем еще один вопрос (вдогонку к первому): что есть reads, bufreads и pagreads? А также следует ли считать seqscans количеством fullscan'ов по таблице или это что-то другое?
...
Рейтинг: 0 / 0
26.10.2006, 15:15
    #34084021
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
Евгений ФадеевВ общем еще один вопрос (вдогонку к первому): что есть reads, bufreads и pagreads?
reads - это число чтений с диска (число обращений).
bufreads - это число чтений из памяти (число обращений), я полагаю может включать в себя reads а может и не включать.
pagreads - сколько страниц прочитано, размер страницы (2-4-8...кб) надо смотреть.


Евгений ФадеевА также следует ли считать seqscans количеством fullscan'ов по таблице или это что-то другое?Да именно оно. Это было видно уже тут (план с сексканом (SEQUENTIAL SCAN), поэтому lkrqs увеличивается на 343 (343 строки в таблице), seqsc увеличивается на 1).
...
Рейтинг: 0 / 0
26.10.2006, 15:32
    #34084116
Евгений Фадеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
Ок, спасибо.
Журавлев Денисbufreads - это число чтений из памяти (число обращений), я полагаю может включать в себя reads а может и не включать. Судя по тому, что есть (и немало) таблицы для которых isreads > bufreads - не включает.
...
Рейтинг: 0 / 0
26.10.2006, 15:43
    #34084178
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
Евгений ФадеевСудя по тому, что есть (и немало) таблицы для которых isreads > bufreads - не включает.Наверно. Правда я когда писал, думал о light scans (чтение в пул сессии мимо буферов).
...
Рейтинг: 0 / 0
31.10.2006, 16:36
    #34094996
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
Журавлев Денис
Код: plaintext
1.
2.
3.
4.
informix@nag:~> echo "update statistics high for table;"|dbaccess a
Database selected.
Statistics updated.
Database closed.
Такое и раньше работало или опять индусы? Пойду синтакс читать.
Ты имеешь ввиду US для отдельной таблицы ?
Работало и раньше.
...
Рейтинг: 0 / 0
31.10.2006, 17:18
    #34095209
cpr
cpr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
большое число запросов на блокировку при малом количестве чтений конечно говорит о том, что чтение происходит из буферного кэша. Но это же означает что вероятнее всего запрос неоптимален. при этом еще должен cpu быть довольно большим.
...
Рейтинг: 0 / 0
31.10.2006, 17:19
    #34095220
Евгений Фадеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
cprбольшое число запросов на блокировку при малом количестве чтений конечно говорит о том, что чтение происходит из буферного кэша. Но это же означает что вероятнее всего запрос неоптимален. при этом еще должен cpu быть довольно большим.Вот я и пытаюсь найти где неоптимально :) Выходит, правда, пока не очень...
...
Рейтинг: 0 / 0
31.10.2006, 17:25
    #34095250
cpr
cpr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
а тормозящий запрос найден или нет?
...
Рейтинг: 0 / 0
31.10.2006, 17:38
    #34095300
cpr
cpr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про lockreqs
глянул в соседний тред, похоже проблема одна.
делай так
1 запускаешь в одном терминале onstat -rz -p
2 в другом делаешь регулярно запрос в sysmaster

select first 10 username as usr,lockreqs,sqs_statement[1,50]
from syssesprof, syssessions, syssqlstat
where syssesprof.sid=syssessions.sid
and (bufreads+lockreqs+bufwrites+seqscans)>0
and syssessions.sid==sqs_sessionid
order by 2 desc

в верхних строчках будет всплывать тормозящий запрос
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / Вопрос про lockreqs / 25 сообщений из 37, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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