Классика баз данных - статьи




Распространение технологии


Для обнаружения преимуществ распространения технологических средств и принципов в различные производственные области обычно требуется умственное напряжение. Но в требовательной среде баз данных неиспользование таких преимуществ может приводить к неожиданной деградации производительности, вызывающей большое неудовлетворение заказчиков. В приложениях баз данных обычно содержится набор запросов, для выполнения которых требуется множество вариаций нескольких конкретных возможностей, что оказывает давление на механизмы обработки запросов. Когда в некоторую область, находящуюся под давлением, вводится новое средство, стратегии запросов меняются для обеспечения возможности использования этого средства. Если распространение средства является неполным, непокрытые случаи могут не сочетаться с новыми стратегиями выполнения, что вызывает деградацию производительности.

Распространение технологии требуется в ходе интеграции каждого нового средства. Оно также является выгодным в проектной и исследовательской деятельности. Например, в [Gra94] представлен подробный баланс распространения нескольких свойств (дуализм) между методами соединения хэшированием и сортировкой со слиянием. Если обе стратегии соединения сосуществуют, дуализм может быть полезен не только на концептуальном уровне, но также и в реализации.

В течение цикла разработки Rdb мы использовали многочисленные преимущества распространения понятий. Путем введения «убывающих» индексов мы допустили возможность любых комбинаций возрастания/убывания составных атрибутов ключа. Однако в некоторых важных приложениях заказчиков имеются многочисленные запросы вида «выдать из последовательности записей X десять записей ниже C и десять записей выше C», которые могут быть эффективно разрешены с помощью двух (возрастающего и убывающего) индексов на X. Несмотря на эту возможность, цена двойного объема памяти и дополнительных обновлений индексов для подхода с двумя индексами была чрезмерной. Это вынудило нас реализовать обратное индексное сканирование и, таким образом, обеспечить решение отмеченной проблемы с помощью одного индекса.




Содержание  Назад  Вперед