Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / вопрос про блокировки / 19 сообщений из 19, страница 1 из 1
30.01.2008, 12:24
    #35097076
froz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про блокировки
Здравствуйте. Помогите пожалуйста разобраться. IDS 9.4 win2003 serv .
Есть провторяющийся запрос чтоб отследить изменения свободного места в дбспейсах.

select name, sum(nfree) , sum(chksize) from sysdbspaces, syschunks where sysdbspaces.dbsnum=syschunks.dbsnum
group by 1

Но при вызове dbaccess и подключению к sysmaster появляется блокировка
onstat -k

Locks
address wtlist owner lklist type tblsnum rowid key#/bsiz
c1185e0 0 32b1eae8 0 HDR+S 100002 201 0
1 active, 120000 total, 32768 hash buckets, 0 lock table overflows

onstat -g sql
Sess SQL Current Iso Lock SQL ISAM F.E.
Id Stmt type Database Lvl Mode ERR ERR Vers Explain
98 - sysmaster CR Not Wait 0 0 9.03 Off

если же информацию о пространствах получать через onstat -d то подобного не возникает.
как можно сделать так чтобы и информацию получать в нужном виде и блокировок избегать?
...
Рейтинг: 0 / 0
30.01.2008, 12:32
    #35097115
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про блокировки
SET ISOLATION TO DIRTY READ;
...
Рейтинг: 0 / 0
30.01.2008, 12:35
    #35097130
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про блокировки
И при любом подключении ОДНА блокировка есть всегда - к sysfdatabases - собственно индицрует что ты к ней "приконнекчен" :)
Проблема то в чём?
...
Рейтинг: 0 / 0
30.01.2008, 12:43
    #35097173
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про блокировки
АнатоЛойИ при любом подключении ОДНА блокировка есть всегда - к sysfdatabases - собственно индицрует что ты к ней "приконнекчен" :)
Проблема то в чём?+1 Не дает другому пользователю например дропнуть базу или открыть эксклюзивно.
...
Рейтинг: 0 / 0
30.01.2008, 12:45
    #35097179
froz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про блокировки
Проблема в том что мог ли многократный вызов подобного запроса не дать другим пользователям завершить свои сессии и сколько памяти этот вопрос мог выесть?
...
Рейтинг: 0 / 0
30.01.2008, 13:21
    #35097370
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про блокировки
после выполнения запроса dbaccess закончил работу? тогда и блокировка снялась
а вот
Код: plaintext
SET ISOLATION TO DIRTY READ;
в начале скрипта всё таки поставьте
...
Рейтинг: 0 / 0
30.01.2008, 13:29
    #35097404
froz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про блокировки
SET ISOLATION TO DIRTY READ действительно не вызывает блокировок. Но в процессе добавления чанка запрос подвисает на время. onstat же работает и не виснет... в чем разница?
...
Рейтинг: 0 / 0
30.01.2008, 13:31
    #35097412
froz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про блокировки
как сделать так чтоб

SET ISOLATION TO DIRTY READ;
select SUBSTR(name, 1, 40) name, sum(nfree) free , sum(chksize) total from sysdbspaces, syschunks where sysdbspaces.dbsnum=syschunks.dbsnum
group by 1

работал так же четко как onstat -d ?
...
Рейтинг: 0 / 0
30.01.2008, 13:54
    #35097512
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про блокировки
ух ты...
новые подробности выясняются

давай с другой стороны - а чем тебе не нравится вариант "собственно, и используй для своих нужд onstat, раз он делает то же, что и твой запрос - и при этом не подвисает при добавлении чанка" :)
...
Рейтинг: 0 / 0
30.01.2008, 13:56
    #35097516
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про блокировки
froz..
работал так же четко как onstat -d ?никак
...
Рейтинг: 0 / 0
30.01.2008, 14:25
    #35097638
froz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про блокировки
онстат дает результат в неудобном виде. там надо складывать чанки чтоб получить размер спейса. а их тоже много - около 200. задача - отследить динамику использования пространств.
...
Рейтинг: 0 / 0
30.01.2008, 14:32
    #35097680
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про блокировки
frozонстат дает результат в неудобном виде. там надо складывать чанки чтоб получить размер спейса. а их тоже много - около 200. задача - отследить динамику использования пространств.ну делайте запрос раз в сутки, в 3:00.
...
Рейтинг: 0 / 0
30.01.2008, 14:39
    #35097712
froz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про блокировки
запрос делается 24 раза в сутки - каждый час...
...
Рейтинг: 0 / 0
30.01.2008, 14:51
    #35097762
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про блокировки
frozонстат дает результат в неудобном виде. там надо складывать чанки чтоб получить размер спейса. а их тоже много - около 200. задача - отследить динамику использования пространств.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
onstat -d

IBM Informix Dynamic Server Version 10.00.UC3     -- On-Line -- Up 00:00:42 -- 76904 Kbytes

Dbspaces
address  number   flags      fchunk   nchunks  pgsize   flags    owner    name
4743b7e0 1        0x60001    1        1        2048     N  B     informix rootdbs
475478c8 2        0x60001    2        3        2048     N  B     informix dev1
47547a20 3        0x60001    5        1        8192     N  B     informix te
 3 active, 2047 maximum

Chunks
address  chunk/dbs  offset     size       free       bpages     flags pathname
4743b938 1     1    0          75000      54448                 PO-B  /informix/data/root.000
475472a8 2     2    0          256000     105850                PO-B  /informix/data/dev1.000
47547430 3     2    0          250000     0                     PO-B  /informix/data/dev1.001
475475b8 4     2    0          250000     249981                PO-B  /informix/data/dev1.002
47547740 5     3    0          125        72                    PO-B  /informix/data/dev2.000
 5 active, 32766 maximum


Код: plaintext
1.
2.
3.
onstat -d|grep data|awk '{a[$3]=a[$3]+$5-$6}END{for(i in a)print i,a[i]}'
 1   20552 
 2   400169 
 3   53 
...
Рейтинг: 0 / 0
30.01.2008, 15:06
    #35097805
froz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про блокировки
спасибо за код. где можно документацию про вывод данных прочитать? GREP не работает
...
Рейтинг: 0 / 0
30.01.2008, 15:12
    #35097837
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про блокировки
это юникс утилиты, можно например cygwin поставить, там есть

Код: plaintext
1.
2.
3.
4.
> onstat -d|awk '/0x60001/{d[$2]=$10}/data/{a[$3]=a[$3]+$5-$6}END{for(i in a) printf "%-15s %d\n",d[i],a[i]}'
rootdbs          20552 
dev1             400169 
te               53 
...
Рейтинг: 0 / 0
30.01.2008, 15:19
    #35097873
froz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про блокировки
а попроще под win2003 serv ничего подобного нет?
...
Рейтинг: 0 / 0
30.01.2008, 15:58
    #35098021
Чемберлен
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про блокировки
frozа попроще под win2003 serv ничего подобного нет?

Для начала придется в окне cmd.exe почитать результаты

help for

потом долго думать...
...
Рейтинг: 0 / 0
30.01.2008, 16:02
    #35098038
froz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про блокировки
вот такая ошибка выдается

awk: '/0x60001/{d[$2]=$10}/data/{a[$3]=a[$3]+$5-$6}END{for(i
awk: ^ invalid char ''' in expression
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / вопрос про блокировки / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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