|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Задание для самостоятельной работы 7Оптимизация производительности запросаОптимизация запросов SQL Server, команда SET STATISTICS IO ON Задание:Ваше приложение должно внести изменения в таблицу sales_fact_1998 базы данных Foodmart, увеличив расходы магазина (store_cost) для магазина номер 15 (столбец store_id) на 15 процентов, а расходы магазина номер 13 — на 10 процентов. В профилировщике вы увидели следующий код: BEGIN TRAN UPDATE [sales_fact_1998] SET store_cost = store_cost*1.15 where store_id = 15 UPDATE [sales_fact_1998] SET store_cost = store_cost*1.1 where store_id = 13 COMMIT TRAN Оптимизируйте эту транзакцию таким образом, чтобы при ее запуске выполнялось в два раза меньше операций ввода-вывода и докажите, что такое уменьшение произошло. Решение:Более эффективный код для выполнения операций вставки может выглядеть, например, так: BEGIN TRAN UPDATE [sales_fact_1998] SET store_cost = CASE WHEN store_id = 15 THEN store_cost*1.15 WHEN store_id = 13 THEN store_cost*1.1 END WHERE store_id = 15 OR store_id = 13 COMMIT TRAN Убедиться, что действительно произошло снижение количества операций ввода-вывода в два раза, можно, использовав команду SET STATISTICS IO ON и посчитав общее количество операций логического чтения.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||