Магия сохраняет силу


Эксперимент 3


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

Рассмотрим представление V3: Для каждого рабочего центра найти среднее время обработки изделий в местоположениях этого рабочего центра заданного типа. Представление V3 похоже на V1 за тем исключением, что мы отфильтровываем некоторые местоположения и исключаем из результата столбец itemn.

(V3): itlvagg(wkcen, avgtime) AS (SELECT DISTINCT wkcen, AVG(loctime) FROM itl WHERE locan ≥ 'loca50' AND locan ≤ 'loca55' GROUPBY itemn, wkcen)

(Q3): SELECT wkc.deptn, wkc.wkcen, avgtime FROM wkc, itlvagg WHERE nmach ≤ 3 AND wkc.wkcen = itlvagg.wkcen

В запросе Q3 запрашивается информация из представления V3 о рабочих центрах, имеющих не более трех машин. Запрос выполняется путем вычисления полного представления itlvagg и соединения результата с таблицей wkc.

Запрос Q3 переписывается методами корреляции и магических множеств таким образом, чтобы использовать предикат (nmach ≤ 3) во избежание вычисления полного соединения. Предикату удовлетворяют только 10 рабочих центров; в представление передаются десять значений связывания – по одному в случае корреляции и как множество в случае магических множеств. Мы также использовали вариант Q3 с предикатом (nmach ≤ 6), которому удовлетворяют 100 рабочих центров.

При перезаписи методом корреляции предикат (wkc.wkcen = itlvagg.wkcen) проталкивается в представление. Магическое множество получается способом, аналогичным примененному в Эксперименте1. Дополнительное магическое множество s_mag содержит релевантные рабочие центры и используется для ограничения представления (M3b). Сокращенное представление используется для формирования ответа на запрос (M3c).

(M3a): s_mag(deptn, wkcen) AS (SELECT deptn, wkcen FROM wkc WHERE nmach ≤ 3)

(M3b): mag_itlvagg(wkcen, avgtime) AS (SELECT DISTINCT itl.wkcen, AVG(loctime) FROM s_mag, itl WHERE locan ≥ 'loca50' AND locan ≤ 'loca55' AND s mag.wkcen = itl.wkcen GROUPBY itl.wkcen, itl.itemn)




Начало  Назад  Вперед



Книжный магазин