SELECT name, sum(quantity)
FROM (tbl_delivery INNER JOIN tbl_item ON tbl_delivery.model_id=tbl_item.model_id)
GROUP BY name
HAVING sum(quantity)>20
- Получить список суммарной стоимости каждого заказа (поля: наименование, сумма заказа (вычисляемое поле));
SELECT name, sum(quantity*price)
FROM (tbl_delivery INNER JOIN tbl_item ON tbl_delivery.model_id=tbl_item.model_id)
GROUP BY name
- Получить список заказчиков, не заказавших заданного изделия (код модели задается как константа). Причем эта модель должна существовать среди заказанных изделий в таблице ПОСТАВКА) (поля: номер заказа, заказчик).
SELECT request_id, requester
FROM tbl_requests AS b
WHERE EXISTS (
SELECT *
FROM tbl_delivery
WHERE model_id=1045
) AND NOT EXISTS (
SELECT *
FROM tbl_delivery
WHERE (model_id=1045) AND request_id=b.request_id
)
5)Проанализировали планы выполнения запросов.
1 запрос был не оптимален, и мы его оптимизировали с помощью индексации
До оптимизации :
После оптимизации:
Оптимизация с помощью индексации во втором, третьем и четвертом запросе ничего не дала…. Ниже приведены результаты :
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.