powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Помогите разобраться с кэшем
21 сообщений из 21, страница 1 из 1
Помогите разобраться с кэшем
    #33289639
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASA9.0.2.3182
Использую AWE кэш, в строке запуска указываю размер = 4096М.
1) Поясните что значит "Выделенное адресное пространство":
I. 18/09 19:57:20. Выполняется на Windows 2003 Build 3790 Service Pack 1
I. 18/09 19:57:21. 4096000K памяти использовано для кэширования
I. 18/09 19:57:21. Физическая память, выделенная для изображений: 4049712К
I. 18/09 19:57:21. Выделенное адресное пространство: 1482464К
I. 18/09 19:57:21. Использование страницы максимального размера 8192 байт
В диспетчере задач видно, что выделяется 4Гига, а вот вопрос как использует
их сервер?

2) И еще, как можно узнать содержимое кэша, как он используется? CacheRead
не дает представления о том насколько эффективно используется кэш. Как
узнать есть ли необходимость/возможность увеличивать/уменьшать размер кэша
без практического влияния на производительность?


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Помогите разобраться с кэшем
    #33289944
serg08
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
 2 ) И еще, как можно узнать содержимое кэша, как он используется? CacheRead
не дает представления о том насколько эффективно используется кэш. Как
узнать есть ли необходимость/возможность увеличивать/уменьшать размер кэша
без практического влияния на производительность? 
Чтение Кеша никак не скажет об
эффективности. Т.е. сочетание "содержимое кэша, как он используется?" две
разный разницы
Вообще эффективность кеша оценивается очень просто- по процентному
соотношению попадания в кеш для ASE - Cache hit ratio(параметр мониторирования)
Если процент всегда высок( 98%-100% ), то наверное можно у него отнять памяти, если она нужна в другом месте.
...
Рейтинг: 0 / 0
Помогите разобраться с кэшем
    #33291719
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, допустим с эффективностью использования кэша все понятно.
Но что значит следующая строка?:
"Выделенное адресное пространство: 1482464К"
Откуда это число? Есть подозрения, что сервер не использует предоставленную ему память. Как проверить точно?
...
Рейтинг: 0 / 0
Помогите разобраться с кэшем
    #33291840
sybdba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg08
Вообще эффективность кеша оценивается очень просто- по процентному
соотношению попадания в кеш для ASE - Cache hit ratio(параметр мониторирования)
Если процент всегда высок( 98%-100% ), то наверное можно у него отнять памяти, если она нужна в другом месте.
;) да уж, понизим процент попадания в кэш - нехай сервер читает с диска, а то ему заняться видно нечем больше ;)
...
Рейтинг: 0 / 0
Помогите разобраться с кэшем
    #33291896
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно вопрос к знатокам ASA :
ASA может читать данные не через кэш ?
...
Рейтинг: 0 / 0
Помогите разобраться с кэшем
    #33291944
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivМожно вопрос к знатокам ASA :
ASA может читать данные не через кэш ?
Без понятия - по идее кэш страниц, кэш планов и кэш компилированных процедур сервер использует по собственному усмотрению, желанию и согласно рекомендациям оптимизатора. Можно конечно порыться в настройках сервера, но обычно все само собой работает нормально и пока необходимости пытаться где то что изменить стандартное поведение сервера, что навязать свои планы запросов не возникало.
...
Рейтинг: 0 / 0
Помогите разобраться с кэшем
    #33291947
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если есть желание, то по идее про кэш можно почитать здесь:
http://www.ianywhere.com/developer/product_manuals/sqlanywhere/0902/en/html/dbugen9/00000206.htm
...
Рейтинг: 0 / 0
Помогите разобраться с кэшем
    #33291990
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UsersGuide это конечно хорошо. Но вся документация у меня и так есть. И
естественно я плотно с ней ознакомился прежде чем сюда задавать вопросы.
Есть такой момент, который мне жутко не нравится. Если перед каким-то
здоровым запросом по паре таблиц сделать два банальных селекта select
count(*)..., то этот запрос выполняется за 10-15 минут, а если не делать
предварительного шаманства с select count(*), то запрос может выполнятся
часами. В связи с чем возникает желание разобраться, почему сервер посчитал,
что ему проще ненапрягаясь перерыть дисковым чтением 100 млн. таблицу за Х
часов, чем потратить Х минут на чтение этой таблицы в кэш и разобраться с
ней в памяти? Ну да ладно, с этим можно бороться обыкновенной избыточностью
данных и дублировать нужные данные в двух таблицах. Либо, у меня появилась
мысль, повлиять на оптимизатор установкой его политики не в "first row", а в
"all row".
Но почему при старте сервер говорит что выделено 1,5гига, а используется 4 -
вот что необъяснимо... Прямо загадка какая-то.


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Помогите разобраться с кэшем
    #33292044
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нууу . для начала optimization_goal и должно стоять в "All-Rows". Оно даже по умолчанию на новых БД создается и в Central предлагается, не понятно зачем был выбран "First-Row". Во вторых я вообще не понимаю, как это:
авторВ связи с чем возникает желание разобраться, почему сервер посчитал,
что ему проще ненапрягаясь перерыть дисковым чтением 100 млн. таблицу за Х
часов, чем потратить Х минут на чтение этой таблицы в кэш и разобраться с
ней в памяти?
Почему перерыть диск чтением у сервера займет больше, чем возможно убить весь кэш ненужными данными для других сессий и в итоге все равно перерыть чтением весь диск ? Как это в кэш быстрее загрузится с винта, чем просто чтение с винта ? Моя не понимай :) Давайте уж рассказывайте, что за запросы выполняются по таблице со 100 млн. записей, сколько примерно возвращают, какие индексы, какой план запроса, где по нему затыки, какой кстати размер страницы в БД (многие ведь частенько поставят 32кб и радуются, думая, что это однозначно убыстрит сервер). Вполне возможно запрос можно переписать, где то не хватает индексов, статистика не соотвествует действительности ... в общем цепляйте план запросов сюда из ISQL в XML, тогда реально можно будет по нему посмотреть и сказать, что не так.

P.S. А бороться за повышение производительности запросов путем повышения мощности сервера, доступной памяти и играми с настройками желательно после того, как все пути оптимизации были перепробованы и затык уже явно не лечится "мягкими" методами. К примеру у меня БД на 7 гб, с таблицами по 15 миллионов записей на ASA спокойно без напрягов выполняла достаточно сложные запросы с подзапросами на P4 с 512 RAM всего и под кэш было отдано всего 360 мб. А все потому, что по таблицам были созданы только наиболее оптимальные индексы, которые очень удачно использовались оптимизатором запросов. И такого в принципе небольшого размера кэша вполне хватало на все случаи жизни.
...
Рейтинг: 0 / 0
Помогите разобраться с кэшем
    #33292415
serg08
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наверное слабовато у меня с теорией!!!! Чего то я недопонимаю!!
Код: plaintext
1.
2.
3.
Sybdba

;) да уж, понизим процент попадания в кэш - нехай сервер читает с диска, а то ему заняться видно нечем больше ;)
КАК ЭТО С ДИСКА??????

Код: plaintext
1.
2.
3.
MasterZiv

ASA может читать данные не через кэш ?
КАК это не через КЕШ?????
Код: plaintext
1.
2.
 ненапрягаясь перерыть дисковым чтением  100  млн. таблицу за Х 
часов,
Дисковое чтение всё равно идёт в кеш. Просто его(дискового) не будет, если в кеше есть нужные страницы. Их просто в кеше не было.
Может кто нибудь знает программы которые читают данные(с диска или других средств хранения) не через оперативную память. Для сервера его область оперативной памяти -Кеши.
Чего то я недопонимаю!!
...
Рейтинг: 0 / 0
Помогите разобраться с кэшем
    #33292748
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) optimization_goal точно никогда не крутил. Базу в свое время создавал в централе, данные переливал через полный unload/load из 6-й версии. Подозреваю, что эта опция переползла со старой базы, но проверить не могу, скрипт релоада завален обломками времени..)
Просто сейчас стал смотреть настройки и бросилось в глаза что там стоит вот так, а не иначе.
2) Поднимать тему с пересечением больших объемов данных не хотел бы, т.к. тут это мы уже обсуждали. Но напомню, что производился один здоровый селект, такого вида:
select a,b,olap_functions()
from (select a,b,sum(c)
from (select t1.a,t2.b,t1.c
from t1 key join t2
where t1.d between '' and ''
) as vv()
group by a,b
) as v()
индекс по t1.d имеется. Понятное дело, что запрос слишком нехороший.
Так вот, именно вот про этот запрос я говорил "проще ненапрягаясь перерыть дисковым чтением 100 млн. таблицу за Х
часов, чем потратить Х минут на чтение этой таблицы в кэш и разобраться с
ней в памяти". Оно и понятно, если вторая таблица в кэше, то сервер с диска тянет только первую(и вот тут-то и помогает дисковый кэш), и пробегаясь по ней делает все что надо, а если кэш пустой, то сервер поочередно читает то первую, то вторую таблицу. Возможно, кстати, на такое поведение и повлиял пункт 1.
3) Напомню, первоначальная тема топика связана с эффективностью использования кэша сервером АСА9, а также с административным функциями связаными с получением максимальной информации о кэше АСА и его использовании. О запросах давайте тут не будем, все равно проблему решаю конструктивно (перестройкой структуры).
4) По поводу чтения с диска через память. Да, диск всегда читается через память, но одно дело читать через один буфер размером 64К, другое дело читать через буфер 64К и складывать в сторонке в памяти, авось пригодится. И вот тут меня и интересует, складывает ли АСА что-то в "сторонке"? Что именно лежит сейчас в "сторонке"? Мне кажется странным что не сделан такой функционал, что тут сложного? Или это никому не нужно?
...
Рейтинг: 0 / 0
Помогите разобраться с кэшем
    #33292878
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И все таки я хоть убей не понимаю, причем тут в данной ситуации кэш ? Запрос нужно или переписывать или через времянки оптимизировать. А пихать все, что читает сессия ASA в кэш не может - какой в этом смысл ? Одна сессия читает одно, другая в этот момент другое, третья вообще чего то из других таблиц делает - и что, им друг друга вытеснять непрерывно ? Кэш создан для того, чтобы обеспечивать доступ к наиболее часто востребованным страницам (данным) БД. Соотвествующе при запросе, который охватывает 100 лямов записей уже ежу понятно, что смысла чего то из считываемых данных пихать в кэш нет, в надежде, убивая все другое - авось другим сессиям, да пригодится.
...
Рейтинг: 0 / 0
Помогите разобраться с кэшем
    #33292963
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нет борьбы-то за кэш, то что юзают одни сессии нормально работает и с кэшом в 1гиг. Все остальное выделено под одну задачу. Я сомневаюсь, что что-то вытесняется из кэша. И проделав два(или даже один) шаманских селекта никак не влияет на работу других сессий, а на работу некоего запроса влияет принципиально(даже план не меняется)!!! И дело не в сессиях. К примеру, один сервер, одна сессия, почему АСА сам не может догадаться, что не нужно разрываться на две таблицы одновременно, а последовательно закачать сначала меньшую к себе в память(это на порядок быстрее), а потом последовательно бежать по второй, пересекать с данными из памяти и результат откладывать опять-таки в кэш? Даже если есть сессии которые что-то вытесняют из кэша, они не вытеснят такой объем никогда, у них потребности меньше в тыщи раз. Ему что, памяти жалко? А зачем тогда она ему нужна? Не хочет ее заполнять, а оставить на потом, типа авось пригодится? Я вот как раз не понимаю поведение сервера АСА.

P.S.: По умолчанию, в АСА стоит как раз first-row. Только что проверил. Думаю, надо сначала попробывать с all-row, возможно это и объяснит желание сервера быстрее хоть что-нибудь выдать, вместо потратить меньшее время на всю выборку.
...
Рейтинг: 0 / 0
Помогите разобраться с кэшем
    #33292976
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iLLer wrote:

> P.S.: По умолчанию, в АСА стоит как раз first-row. Только что проверил.
> Думаю, надо сначала попробывать с all-row, возможно это и объяснит
> желание сервера быстрее хоть что-нибудь выдать, вместо потратить меньшее
> время на всю выборку.

Вообще говоря, смысл "first-row" именно в том, что ты описал, только в
RTFM-е об этом написано более пространно и по-английски :).
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Помогите разобраться с кэшем
    #33293013
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iLLerА нет борьбы-то за кэш, то что юзают одни сессии нормально работает и с кэшом в 1гиг. Все остальное выделено под одну задачу. Я сомневаюсь, что что-то вытесняется из кэша. И проделав два(или даже один) шаманских селекта никак не влияет на работу других сессий, а на работу некоего запроса влияет принципиально(даже план не меняется)!!! И дело не в сессиях. К примеру, один сервер, одна сессия, почему АСА сам не может догадаться, что не нужно разрываться на две таблицы одновременно, а последовательно закачать сначала меньшую к себе в память(это на порядок быстрее), а потом последовательно бежать по второй, пересекать с данными из памяти и результат откладывать опять-таки в кэш? Даже если есть сессии которые что-то вытесняют из кэша, они не вытеснят такой объем никогда, у них потребности меньше в тыщи раз. Ему что, памяти жалко? А зачем тогда она ему нужна? Не хочет ее заполнять, а оставить на потом, типа авось пригодится? Я вот как раз не понимаю поведение сервера АСА.
Если All-Rows не поможет, то еще попробуйте отключить коллекцию кэша параметром "-cc-" и посмотреть, что получиться.

iLLerP.S.: По умолчанию, в АСА стоит как раз first-row. Только что проверил. Думаю, надо сначала попробывать с all-row, возможно это и объяснит желание сервера быстрее хоть что-нибудь выдать, вместо потратить меньшее время на всю выборку.
В BOL черным по белому написано:
Default all-rows
...
Рейтинг: 0 / 0
Помогите разобраться с кэшем
    #33293188
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм, что-то тут не чисто с этим optimization_goal.
Сейчас настройку посмотрел, там теперь вообще стоит "Response-time".
Возникает вопрос, сервер сам может выставлять эту опцию, в зависимости от каких-то внешних и внутренних факторов? Ведь никто ничего не трогал в базе со вчерашнего дня, а вчера было "first-row"! Только сервер перегружали и все.
Будем разбираться дальше.
...
Рейтинг: 0 / 0
Помогите разобраться с кэшем
    #33293224
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
))) Это же одно и тоже, что first-row, что response-time. Вопрос снят.
...
Рейтинг: 0 / 0
Помогите разобраться с кэшем
    #33293554
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ха, поменяв опцию Optimization_goal на 'all-rows' вылечил проблему (как мне кажется). По крайней мере план изменился, и по нему видно, что сервер решил отбросить использование внешнего ключа. Вот она собака где порылась.
P.S.: А еще кто-то говорит, что ASA это "несерьезная детская игрушка"...) Очень даже приличный сервер, надо только уметь готовить.
...
Рейтинг: 0 / 0
Помогите разобраться с кэшем
    #33293665
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я уже давал ссылочку насчет впечатления "детской игрушки":
http://tinyurl.com/dzzu7
Действительно странно, что легкость в инсталяции, управлении, нулевое администорование и качественный оптимизатор многие воспринимают как "не стоящее внимание" по принципу "раз легко, значит не серьезно"
...
Рейтинг: 0 / 0
Помогите разобраться с кэшем
    #33293733
sybdba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg08Наверное слабовато у меня с теорией!!!! Чего то я недопонимаю!!
Код: plaintext
1.
2.
3.
Sybdba

;) да уж, понизим процент попадания в кэш - нехай сервер читает с диска, а то ему заняться видно нечем больше ;)
КАК ЭТО С ДИСКА??????


ну если данных нет в кэше, то откуда серверу их взять? с диска сессна
в итоге - встаем в сторонку и ждем пока сервер начитает необходимые данные с диска и вернет нам право поработать
...
Рейтинг: 0 / 0
Помогите разобраться с кэшем
    #33294480
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg08Наверное слабовато у меня с теорией!!!! Чего то я недопонимаю!!
Код: plaintext
1.
2.
3.
Sybdba

;) да уж, понизим процент попадания в кэш - нехай сервер читает с диска, а то ему заняться видно нечем больше ;)
КАК ЭТО С ДИСКА??????

Код: plaintext
1.
2.
3.
MasterZiv

ASA может читать данные не через кэш ?
КАК это не через КЕШ?????
Код: plaintext
1.
2.
 ненапрягаясь перерыть дисковым чтением  100  млн. таблицу за Х 
часов,
Дисковое чтение всё равно идёт в кеш. ...
область оперативной памяти -Кеши.


Вот и я про то же. Но ASA я не знаю, поэтому и спрашиваю.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Помогите разобраться с кэшем
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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