Что означают утверждения в объяснениях плана запроса MonetDB?
Я пытаюсь понять план запроса MonetDB.
Есть ли где-нибудь документация, где я могу найти то, для чего остается каждая инструкция? Если нет, может кто-нибудь сказать мне, что возвращаются
sql.projectdelta(X_15,X_23,X_25,r1_30,X_27)
а также
sql.subdelta(X_246,X_4,X_10,X_247,X_249), for example?
В моем запросе я сортирую результат по двум атрибутам (например, по A,B). Можете ли вы сказать мне, почему второй сорт имеет больше параметров, чем первый?
(X_29,r1_36,r2_36) := algebra.subsort(X_28,false,false);
(X_33,r1_40,r2_40) := algebra.subsort(X_22,r1_36,r2_36,false,false);
Является ли algebra.subsort возвращающими (oid, columnType) парами или просто oid?
Спасибо!!
1 ответ
Для понимания вывода оператора объяснения SQL требуется знание языка, подобного ассемблеру MonetDB (MAL).
Что касается функций sql.projectdelta, sql.subdelta и algebra.subsort, вы найдете их сигнатуру и (краткое) описание в папке monetdb lib. Пример:
- [MonetDB_install_folder] \ MonetDB5 \ lib \ monetdb5 \ sql.mal для всех функций sql
- [MonetDB_install_folder]\MonetDB5\lib\monetdb5\algebra.mal для всех функций алгебры
Относительно разного количества параметров для алгебры. Subsort:
(X_29, r1_36, r2_36): = algebra.subsort (X_28, false, false); описывается как:
Возвращает копию BAT, отсортированной по хвостовым значениям, BAT, который указывает, как был изменен порядок ввода, и BAT с информацией о группе. Вход и выход (должны быть) с плотной головой. Порядок убывает, если установлен обратный бит. Это стабильная сортировка, если установлен стабильный бит.
(X_33, r1_40, r2_40): = algebra.subsort (X_22, r1_36, r2_36, false, false); описывается как:
Возвращает копию BAT, отсортированной по хвостовым значениям, BAT, который указывает, как был изменен порядок ввода, и BAT с информацией о группе. Вход и выход (должны быть) с плотной головой. Порядок убывает, если установлен обратный бит. Это стабильная сортировка, если установлен стабильный бит.
Функции MAL могут быть перегружены на основе их возвращаемого значения. algebra.subsort может возвращать 1, 2 или 3 значения в зависимости от того, что вы запрашиваете. Checl algebra.mal для разных возможностей.