П
осле того как я в 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/.
< Предыдущая | Следующая > |
---|