|
INITRANS или FREELISTS ?
|
|||
---|---|---|---|
#18+
Вопрос по поводу INITRANS или FREELISTS. У меня на Oracle 8i несколько юзеров (2-4 человека) инсертят и (или) апдейтят несколько одних и тех-же таблиц одновременно из программы на дельфи 5, использующей starttransaction - commit(transaction) (update разных записей естественно). Так вот, периодически их сессии как-будто бы зависают при одновременной работе (т.е. ждут пока осводиться блокировка от другого юзера на эту же таблицу я так понимаю). Что же мне делать? Параметры INITRANS или FREELISTS стоят у всех таблиц по умолчанию =1, может быть увеличть их значения? p. s. вообще-то у нас 2-х процессорный сервер. может еще и FREELISTS GROUPS изменить на 2, предварительно настроив init.ora на 2 процессора? или не стоит так извращаться если скорость работы сервера и так устраивает (база совсем маленькая - мегов 100)? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2002, 08:30 |
|
INITRANS или FREELISTS ?
|
|||
---|---|---|---|
#18+
нефига ты тут не сделаешь, это Oracle не дает работать, это нормальный вариант блокировке при работе... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2002, 13:00 |
|
INITRANS или FREELISTS ?
|
|||
---|---|---|---|
#18+
Ладно, поделюсь опытом в настройке субж для OLTP системы Нужно "задирать" и INITRANS, и FREELISTS. В идеальном случае, оба они должны быть больше, чем одновременно пишущих в базу процессов. В случае, когда идут только изменения, а не вставки, то достаточно подымать INITRANS. Кстати, FREELISTS поднять не пересоздав таблицу нельзя. А вот с FREELISTS GROUPS не игрался -- слишком тонкая штучка. Но эти все рассуждения верны только в том случае, если процессы независимы. Если они могут друг друга блокировать, например пытаются выбрать max(keynum) из таблицы, куда потом будут вставлять запись, то субж тебе не помошник. И заранее -- дальше ты столкнёшься с тем, что у тебя rollback не хватает, и v$rollstat.waits растёт семимильными шагами. Потом начнёшь делить индексы и таблицы по разным дискам, параллельно думая, а как мне уменьшить число индексов с 15 до хотя бы 10 В общем, та ещё развлекуха. Кстати, если общий объём базы меньше чем block_buffers*block_size, то жизнь становится ещё веселее. Кстати, надеюсь сервер не пытается каждый раз парсить запрос??? P.S. Любимое дело ждать "LOCK FOR UPDATE", если приложение плохо спроектированно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2002, 22:47 |
|
INITRANS или FREELISTS ?
|
|||
---|---|---|---|
#18+
Кстати, советую всем сходить по прилагаемой ссылке: очень полезная штука -- этакий рекламный проспект, куда глядеть, если всё вроде хорошо, а опыта в тонкой настройке Оракула нету. "http://www.njoug.org/Optimizing Update Intensive Tables Using Wait Events - 1.ppt" ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2002, 20:45 |
|
INITRANS или FREELISTS ?
|
|||
---|---|---|---|
#18+
Большое спасибо за ответы. 2 vskv - ссылочка просто замечательная, подробно отвечает на вопрос что делать. Как делать - это уже действительно зависит от опыта, но я постараюсь поднять значения параметров в ближайшее время (это ж ночью надо делать - днем юзера не поймут ) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2002, 07:08 |
|
INITRANS или FREELISTS ?
|
|||
---|---|---|---|
#18+
Большое спасибо за ответы. 2 vskv - ссылочка просто замечательная, подробно отвечает на вопрос что делать. Как делать - это уже действительно зависит от опыта, но я постараюсь поднять значения параметров в ближайшее время (это ж ночью надо делать - днем юзера не поймут ) p. s. Сперва хотел обидеться на фразу "Любимое дело ждать "LOCK FOR UPDATE", если приложение плохо спроектированно", а потом поговорил с основным разработчиком программы - а он и правда плохо спроектировал , надеюсь переделает со временем, а то надоело сессии снимать . Вот так то - "Век живи - век учись". ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2002, 07:12 |
|
|
start [/forum/topic.php?fid=52&gotonew=1&tid=1993343]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
13ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 303ms |
total: | 429ms |
0 / 0 |