Организация баз данных, основы работы с СУБД SQL Server, страница 4

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 запрос был не оптимален, и мы его оптимизировали с помощью индексации

До оптимизации :

            После оптимизации:

Оптимизация с помощью индексации во втором, третьем и четвертом запросе ничего не дала…. Ниже приведены результаты :