У меня проблема с производительностью с выражением select, которое я выполняю.Производительность выписки
Здесь:
SELECT Material.*
FROM Material
INNER JOIN LineInfo ON Material.LineInfoCtr = LineInfo.ctr
INNER JOIN Order_Header ON LineInfo.Order_HeaderCtr = Order_Header.ctr
WHERE (Order_Header.jobNum = 'ttest')
AND (Order_Header.revision_number = 0)
AND (LineInfo.lineNum = 46)
Оператор принимает 5-10 секунд, чтобы выполнить в зависимости от нагрузки на сервер.
Немного статистики стола:
- Material has 2,030,xxx records.
- Lineinfo has 190,xxx records
- Order_Header has 2,5xx records.
Мое заявление возвращается в общей сложности 18 строк, содержащий около 20-25 полей данных. Возврат одного поля или все из них не имеет значения. Является ли эта характеристика типичной? Я могу что-то сделать, чтобы улучшить его?
Я пробовал использовать вспомогательный выбор для извлечения внешнего ключа, предложение IN, и я нашел одно сообщение, в котором помог парень, используя левое внешнее соединение. Для меня все они дают то же самое 5-10 секунд времени выполнения.
Это MS SQL Server 2005, доступ к которому осуществляется через студию управления MS SQL. Время - это прошедшее время в анализаторе запросов.
Любые идеи?
Каковы индексы? Вы знаете, как отображать и анализировать план запроса? – gerleim