Что означают утверждения в объяснениях плана запроса 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 для разных возможностей.

Другие вопросы по тегам