Осилить документацию Оракл не просто, мешает вольное обращение с терминологией. В одном абзаце может быть и "buffer pool" и "buffer caсhe" и еще что-нибудь. Но в принципе осилить не мудренно.mskmel wrote:Значит таки документацию не осилил. Это три пула с разными названиями, но с одним и тем же алгоритмом.zVlad wrote:Много значит больше одного. Я насчитал, думал сказать три как и говорил выше, но на самом то деле в Оракл есть именно один пул каждого типа. А речь идет о многих пулах одного и того де типа. Их в Оракл нет. Если есть покажите, я пока не увидел.У вас 100ГБ "горячих" объектов, ну так создайте под них пул на 100ГБ. После нагрузки посмотрите оценки количества IO в завимимости от размера пула, и прыгайте дальше. Зачем делать 10 пулов по 10ГБ под горячие объекты?Each buffer pool uses the same LRU replacement policy.
Теперь понятно зачем в DB2 столько пулов. Исходите из того, что сразу в оракле 4ре пула: system, work и по большей части LOB/XML не нужны, эти функции выполняются другими специализированными кусками памяти.zVlad wrote:я вот тут ссылочку подискал (их много на самом деле и при желании Вы можете найти свою):
http://enterprisesystemsmedia.com/artic ... 20qspwjefe" onclick="window.open(this.href);return false;)&ts=1446903806
К счастью да.zVlad wrote:Алгоритм LRU - это единственный алгоритм используемый в Оракл для БП?
FIFO не нужен. Операции чтения\записи, которые подходят для FIFO, вообще до кэша (в вашем понимании) не доберутся. Для обычных операций, объект всё еще может наслаждаться LRU.
А вот сказаное мной и написанное в предложенной статье Вы точно не осилили. Опять домыслы и передергивания.
Причем здесь разные название и одинаковые алгоритмы? Назвали их по разному разработчики Оракл и имплементировали как разные области памяти с разным назначением оставленным на усмотрение Oracle DBA. И это все. И в большенстве случаев Oracle DBA не заморачивается и использует лишь один пул, DEFAULT, что и делает наш DBA.
Вы так не поделились тем что именно Вам понятно о том "зачем в DB2 столько пулов".
В DB2 v8 50 Buffer pools не считая тех что имеют иной чем 4К размер страницы. BP0 используется для таблиц каталога, BP1 умалчиваемый пул для таблиц, BP2 умалчиваемый для индексов. У нас несколько горячих таблиц/индексов имеют свои пулы такого размера как таблицы и часть из них даже зафиксированны в памяти.
Во время старта DB2 выполняется запрос с table scan/index scan на них что помещать их полностью в их пулы и они ничем из этих своих пулов вытеснены быть не могут. Прелесть такого конфигурирования в том что можно не только выделить горячие объекты в отдельные пулыб но и назначит пулам разные свойства. Для пулов где нет вытеснения лучше алгоритм FIFO потому что он менее ресурсоёмкий чем LRU. Кроме того можно учесть в параметрах BP свойства последовательного или случайного обращения.
В Оракле ничего такого просто нет. Поэтому Оракл надо больше памяти чтобы достичь того же уровня производительности что у DB2 с меньшим объемом памяти. Теперь Вам понятно? Просто в памяти DB2 больше порядка и как результат меньше ввод-вывод.