Обзор бумаги 📄

Выбор пути доступа в системе управления реляционными базами данных

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

Выбор пути доступа в системе управления реляционными базами данных - это статья 1979 года, в которой излагается метод угадывания наиболее эффективного рецепта для получения результатов данного SQL-запроса.

Этот документ - «библия» оптимизации запросов. На 12 страницах он краток, сначала дает небольшую справочную информацию, а затем переходит к процедуре оценки стоимости различных «планов доступа» для разных типов запросов.

Как я это нашел

Я нашел этот документ, когда читал более свежий и более широкий документ по архитектуре баз данных, в котором ссылка на этот документ была такой, что от чтения было действительно трудно отказаться. Я рада, что сделала.

Предпосылки

Если вы раньше не выполняли SQL-запросы к базе данных, этот документ ничего для вас не будет значить. В частности, вам необходимо выполнить запросы, связанные с объединениями. Вам также потребуются базовые знания о дисках и памяти.

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

Формулы первой и последней стоимости

Первая формула стоимости, указанная в документе, такова:

cost(single relation) = page fetches + W * RSI calls

Последняя формула стоимости:

cost(inner scan of sorted list) = temp pages / N + W * RSI calls
N = product of cardinalities of all the join relations * product of all selectivity factors of all applicable predicates.

Что такое вызов RSI? Что такое коэффициент селективности? Что такое «применимый предикат»? Я тоже не знал до того, как прочитал газету, но теперь знаю. Вам придется самому прочитать это, чтобы узнать!

Самая яркая вещь

При чтении этой статьи меня поразило то, насколько эти оптимизаторы запросов являются мини-программистами, такими же, как вы или я, встроенными в один уровень системы баз данных. Они пытаются написать наиболее эффективную процедуру для получения требуемых результатов, но им приходится угадывать, исследовать и сокращать свои деревья решений.

Другие названия для бумаги

Эта статья также известна как статья Селинджера от ее основного автора, Патрисии Селинджер.