DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Оптимизация коэффициента попаданий в кэш буферов базы данных



П осле того как я в 1989 г. пришел в Oracle, мои наставники вскоре научили меня, что коэффициент попаданий в кэш буферов базы дан­ных информативен только в том смысле, что его по-настоящему боль­шое значение обычно свидетельствует о каких-то неполадках [Millsap (2001b)]. За несколько лет, прошедших после моего первого знакомст­ва с этой темой, разгорелась настоящая битва между защитниками ко­эффициента попаданий в кэш буферов базы данных, считающими его основным показателем производительности, и их противниками, по­лагающими, что коэффициент слишком ненадежен для того, чтобы ис­пользовать его для подобных характеристик. На самом деле это была не совсем битва. Существует огромное количество доказательств тому, что коэффициенты попаданий ненадежны; обманчивость аналогичных относительных величин, используемых в других областях, описана неоднократно (например, [Jain (1991)] и [Goldratt (1992)]).
Одним из неоспоримых доказательств (и самым забавным) того, что ко­эффициенты попаданий не заслуживают доверия, является PL/SQL-процедура choose_a_hit_ratio, написанная Коннором МакДональдом. Процедура Коннора позволяет увеличить коэффициент попаданий в кэш буферов базы данных до любого значения в диапазоне от его те­кущего значения до 99,9999999%. Как этого достичь? Добавив в систе­му ненужную рабочую нагрузку. Именно так. Надо задать желаемое значение коэффициента попаданий в кэш буферов, а choose_a_hit_ratio добавляет в систему соответствующую излишнюю нагрузку. Это бес­спорно доказывает, что высокий коэффициент попаданий в кэш буферов базы данных не гарантирует эффективности системы. В своей статье на сайте http://www.oracledba.co.uk Коннор благодарит Джонатана Льюиса (Jonathan Lewis) за некоторые позаимствованные у него прие­мы. А я в свою очередь хотел бы поблагодарить Коннора за то, что он разрешил мне использовать его работу в этой книге.
Оригинал PL/SQL-процедуры Коннора доступен по адресу http:// www.oracledba.co.ukВ примере C.1 та же идея выражена на Perl, что позволяет мне сделать чуть больше, например, выводить приглаше­ния на ввод и печатать хронометрические данные при формировании LIO. Приведенный ниже код можно скачать (как и другие примеры из книги) с сайта O'Reilly http://www.oreilly.com/catalog/optoraclep/.
 









jAntivirus