Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
nc1318 Member Откуда: Сообщений: 13 |
Какими способами можно оптимизировать запрос ? схема northwind SELECT ordr.OrderID,ordr.CustomerID,cust.CompanyName,ordr.ShippedDate,prod.ProductName FROM dbo.Orders ordr INNER JOIN dbo.[Order Details] ord ON ord.OrderID = ordr.OrderID INNER JOIN dbo.Products prod ON ord.ProductID = prod.ProductID INNER JOIN dbo.Customers cust ON ordr.CustomerID = cust.CustomerID INNER JOIN dbo.Employees empl ON ordr.EmployeeID = empl.EmployeeID WHERE ordr.OrderDate >= N'1996-01-01 00:00:00' |
30 май 19, 20:53 [21898007] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37143 |
Критерии оптимальности какие? |
30 май 19, 22:31 [21898072] Ответить | Цитировать Сообщить модератору |
fkthat Member Откуда: Сообщений: 4352 |
По-моему запрос настолько простой, что его оптимизировать никак. Разве что проверить, что все индексы нужные есть и, м.б. поставить хинт nolock (либо поместить в dirty read транзакцию), если это возможно. |
30 май 19, 22:59 [21898082] Ответить | Цитировать Сообщить модератору |
aleks222 Member Откуда: Сообщений: 1236 |
Садись, неуд. Ну.... индексированное представление будет быстрее. |
||
31 май 19, 06:10 [21898148] Ответить | Цитировать Сообщить модератору |
HandKot Member Откуда: Sergiev Posad Сообщений: 3015 |
если устроит, то выкинуть, как минимум, INNER JOIN dbo.Customers cust ON ordr.CustomerID = cust.CustomerID INNER JOIN dbo.Employees empl ON ordr.EmployeeID = empl.EmployeeID т.к поля этих таблиц не участвуют в SELECT и тогда, если опять же нужно, зв условие WHERE поставить ordr.CustomerID Is NOt Null And ordr.EmployeeID Is Not Null хоят мне кажется, что там форинкей и пустых значений быть не должно |
||
31 май 19, 07:50 [21898166] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8316 |
nc1318, создать индексированное представление. Внутреннее объединение является фильтром, его нельзя выкинуть из запроса. |
31 май 19, 15:11 [21898850] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31779 |
Мне кажется, в этой модели таких нет. Лучше это проверить, и выкинуть, чем зря цеплять данные. |
||
31 май 19, 16:05 [21898926] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |