понедельник, 28 марта 2011 г.

_small_table_threshold

Давно хотел посмотреть сам на этот механизм, но Льюис уже выложил тесты.

Определение
  • Table < (2%*buffer_cache) = _small_table_threshold is located into the middle point of LRU list when loaded into the buffer cache.
  • Table > (2%*buffer_cache) = _small_table_threshold is located into the cold end of the LRU list when loaded into the buffer cache.


По результатам тестов Льюиса для Oracle 10.2, проверяется содержимое буферного кеша (x$bh), количество touch и количество блоков для таблиц разных размеров:
  1. Для больших таблиц (свыше 10% кеша) touch не увеличивается, используется table scans (long)
  2. Для таблиц больше 25% буферного кеша при сканировании буферы переиспользуются
  3. Для таблиц меньше 10% буферного кеша touch увеличивается, причем первое сканирование таблицы не увеличивает touch (получается table scans (long)), последующие увеличивают (table scans (short))
  4. Для таблиц менее 2% touch count увеличивается каждый раз, используются table scans (short)
  5. Для 9-й и менее версий оракла поведение соответствует определению.

Комментариев нет: