|
all threads are blocked
|
|||
---|---|---|---|
#18+
Добрый день, коллеги :) Подскажите, кто как исправил ошибку sybase : all threads are blocked. В доке написано, что она связана с тем, что я читаю или пишу, а кто-то другой заблокировал эти данные. Но программа работала на протяжении нескольких лет и сейчас база вообще юзается несколькими сервисами. Поэтому предположил 1) что кто-то запустил что-то новое на серваке (маловероятно) ИЛИ 2) уменьшили кол-во потоков. читал про опцию THREAD_COUNT. Но не могу найти ее и как изменить. стоит ASA Anywhere 12 СПАСИБО. p.s. параллельно сейчас конвертирую log файл dbtran может там что-то увижу. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2014, 10:59 |
|
all threads are blocked
|
|||
---|---|---|---|
#18+
Все доброго дня см. параметры запуска dbsrv -gt -gtc но может оказаться так что это НЕ поможет ... если на сервер существенно выросла нагрузка и количество допустимых коннектов не лимитировано (ну например вы указали при установке 10000 коннектов) то изучайте куда девается "процессорное время" .. короче оптимизируйте процедуры, запросы и тд. и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 15:33 |
|
all threads are blocked
|
|||
---|---|---|---|
#18+
_Drive_, переписал работу с таблицами в процедуре. Заменил на заполнение временной таблицы и работой уже с ней. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2014, 12:15 |
|
all threads are blocked
|
|||
---|---|---|---|
#18+
Доброго дня, Проанализируйте время исполнения всех операторов (или блоков) процедуры. Я например делал так: declare iExecTime integer; declare dt datetime; set dt = now(); insert into ... select .... set iExecTime = datediff(millisecond, dt, now()); set dt = now(); message '(',@@spid,') usp_myproc:: 1 exec time ',iExecTime,' ms' to console; create index ... on ...(...) update ... set ... from ... set iExecTime = datediff(millisecond, dt, now()); set dt = now(); message '(',@@spid,') usp_myproc:: 2 exec time ',iExecTime,' ms' to console; select ..... from ... where ... set iExecTime = datediff(millisecond, dt, now()); set dt = now(); message '(',@@spid,') usp_myproc:: 3 exec time ',iExecTime,' ms' to console; В результате выявлялся кусок на который тратится больше всего времени ... вот его и оптимизируешь. PS: у нас больше всего съедало времени - insert into proxy_table ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2014, 11:38 |
|
|
start [/forum/topic.php?fid=55&tid=2009848]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
183ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 296ms |
0 / 0 |