Здравствуйте, Андрийко, Вы писали:
СП>>Вьюха из dbo.Tests выбирает только те записи, которые работали с последней прошивкой.
А>... исхдя из этого (если я правильно понял задачу)
А>запросик можно привести к виду (возможно он будет эффективней за счет уменьшения кол-во обращения к Tests):
А>А>SELECT TestID FROM Tests WHERE exists(select * from ROMDate where ROMDate.Date <= Tests.TestDate )
А>
Не совсем так, да и запрос это — фейковый, т.е. умозрительно отражающий реальную базу...
Но проблема-то не в запросе — запрос выполняется достаточно быстро для наших грязных целей, когда оптимизатор работает нормально.
А>и еще, исходя из вашего запроса и то как я понял задачу выборки последней прошивки, поле TestType особой роли не играет
Играет, по каждому типу своя последняя дата. Впрочем, как я уже сказал, задача — понять, почему дуркует оптимизатор, а не оптимизировать запрос...
А>поля TestID и TestDate(+TestType ) — сделайте на нее покрывающий индекс на поля след. последовательности: (TestType,) ну а если я не прав, тоды
См. выше — база не моя, индексы не я тюнингую. Но и

нам не страшен — ведь достаточно выбирать данные из всех таблиц, и оптимизатор работает нормально. Понять просто хотелось, почему он работает неправильно в данном случае.
Ну да ладно, уже видно, что решения найти ремотно не получается