них, ще не скопійованого в кеш, вона запитує операцію читання з диска (фізичний ввід-вивід) і поміщає щойно отриманий блок в голову буферного списку. Так як довга списку під час роботи бази даних залишається фіксованою, додавання блоку з боку голови списку призводить до того, що блок у хвості списку віддаляється (тобто більш не є кешуватися). p align="justify"> Примітка - насправді операції в кеші виконуються за допомогою покажчиків в зв'язковому списку певного виду. Новий головний блок - це насправді та ж область пам'яті, що старий хвостовій блок, в яку записані нові дані, а покажчики переміщені для зміни місця блоку в списку. p align="justify"> Коли база даних виявляє, що потрібний блок даних вже знаходиться в списку (що вимагає строго логічного вводу-виводу), вона переміщує цей блок з поточного положення в голову списку. Оскільки блок, який бере участь в логічному введенні-виведенні, всього лише переміщається, а не додаються до списку, ніякі блоки з хвоста списку не виштовхуються. І знову база даних обробляє переміщення логічного блоку за допомогою покажчиків; на фізичному рівні дані в пам'яті не копіюються. p align="justify"> Так як при виконанні логічного введення-виведення блоки переміщаються назад до голови списку, в підсумку кеш стає відсортованим: останні за часом використання (most recently used, MRU) блоки знаходяться ближче до голови, а блоки з найбільш давнім використанням (least recently used, LRU) - до кінця списку "[8, С. 30].
2. Оптимізація запитів
.1 Синтаксична оптимізація запитів
Для реляційних систем оптимізація є як проблемою, так і можливістю підвищення продуктивності. Проблема оптимізації полягає в тому, що деякі системи для досягнення певного рівня продуктивності вимагають оптимізації. Оптимізація дозволяє поліпшити роботу системи, так як однією з сильних сторін реляційного підходу є те, що перше застосування оптимізації до реляційному висловом переводить цей вираз на більш ефективний семантичний рівень. Загальне призначення оптимізатора полягає у виборі ефективної стратегії для обчислення даного реляційного вираження. p align="justify"> Оптимізація запитів в реляційних СУБД - це спосіб обробки запитів, коли з початкового поданням запиту виробляється найбільш оптимальний план його виконання шляхом перетворень цього запиту. Відповідні перетворення початкового подання запиту виконуються спеціальним компонентом СУБД - оптимізатором запитів, і оптимальність виробленого ним плану виконання запиту залежить від критеріїв, які в нього закладені. Основним завданням вбудованих оптимізаторів запитів є перетворення запиту в деякий внутрішнє подання, більш зручне для машинних маніпуляцій, а також пошуку найбільш оптимального плану виконання (т.е вибір такої послідовності операцій, яка є найменш дорогий, з точки зору продуктивності) цього внутрішнього подання.
Незважаючи на те, що оптимізатори зап...