|
Процедура и кэш. ASE 12.5
|
|||
---|---|---|---|
#18+
Всем привет! Подскажите как справиться с такой ситуацией: есть процедура, допустим запускаем ее сегодня, первый раз она отрабатывает несколько минут и возвращает результат, затем, спустя минут 10 (или меньше) запускаем ее еще раз, отрабатывает мгновенно, но если мы запустим ее завтра, то результат будет такой же как мы запустили ее сегодня первый раз, т.е. медленно. Пересмотрел план запроса когда выполняется быстро и медленно - план одинаковый. А вот статистика показала что первый раз было физическое чтение, а второй раз логическое. Т.е., как я себе понимаю происходит вытеснение данных из кэша, и после этого процедура отрабатывает опять медленно, что мне не очень нравится. Как заставить АСЕ не вытеснять данные из кэша? Или может там что-то другое? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2011, 16:20 |
|
Процедура и кэш. ASE 12.5
|
|||
---|---|---|---|
#18+
Imperous, Можно посмотреть какие таблицы использует процедура и привязать их к отдельному, заранее созданному, кэшу. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2011, 20:01 |
|
Процедура и кэш. ASE 12.5
|
|||
---|---|---|---|
#18+
когда-то пробовал, результат нулевой ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2011, 08:47 |
|
Процедура и кэш. ASE 12.5
|
|||
---|---|---|---|
#18+
Imperous, number of index trips number of oam trips The number of oam trips parameter specifies the number of times an object allocation map (OAM) page traverses the MRU/LRU chain before it is considered for swapping out. The higher the value of number of oam trips, the longer aged OAM pages stay in cache. ... NoteIf the cache is relatively small and used by a large number of objects, do not set number of oam trips too high. This may result in the cache being flooded with OAM pages that do not age out, and user threads may begin to time out. только насколько поможет и стоит ли ? разве что в базе занятого примерно размером с кеш :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2011, 10:33 |
|
Процедура и кэш. ASE 12.5
|
|||
---|---|---|---|
#18+
Вообще, вытеснение данных из кэша -- процесс естественный, и с ним особенно бороться не стоит. Раз у вас так происходит, кэша вам не хватает на все данные, и кто-то в промежутках между вызовами этой процедуры заполняет его чем-то другим, нужным ему. Если эта процедура редко используется пользователи могут немного подождать её результаты, то лучше всё оставить так, как есть. Если же действительно нужно её ускорять и стабилизировать, то можно привязывать данные к отдельным кэшам, pin-ить таблицы к кэшу (кажется была такая возможность в ASE) и прочее. Но только учтите, что эффект будет не только на эту конкретную процедуру, но вообще на всю БД, поэтому надо понять, какая таблица(-цы) из используемых реально вытесняется из кэша, и, главное, кардинально влияет на производительность этой процедуры (по идее по ней должно быть большой IO) решить, надо ли эту таблицу(-цы) выделять в отдельный кэш, пинить, или что там ещё. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2011, 10:35 |
|
|
start [/forum/topic.php?fid=55&fpage=20&tid=2010333]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
2ms |
others: | 314ms |
total: | 429ms |
0 / 0 |