SELECT pe.prodtree_element_id prodID, pe.prodtree_element_name_s, li.line_name, av2.value
FROM prodtree_element pe
LEFT JOIN prodtree_link pl
ON pe.prodtree_element_id = pl.to_prodtree_node_id
LEFT JOIN line li
ON pe.line_code = li.line_code
INNER JOIN attribute_values av
ON av.attribute_definition_id = #statusCode#
LEFT JOIN attribute_values av2
ON pe.prodtree_element_id = av.prodtree_element_id
WHERE pe.prodtree_element_func_type <> 'WIZARD'
AND pe.prodtree_element_topo_type = 'NODE'
"# statusCode #" - это статический идентификатор, который совпадает с идентификатором в таблице определения атрибута (скажем, 22 для аргумента). Проблема в том, что запрос имеет серьезные проблемы с завершением в любое разумное время. Большая проблема в том, что мне нужно, чтобы она закончилась раньше, но количество записей огромно, что нужно откатить назад (около 30-50 000). Мне нужны данные из нескольких таблиц, где он начинает замедляться. Это всего лишь часть того, что мне нужно, мне также нужны целые другие таблицы данных, соответствующие текущему «prodtree_elment_id».
Я использую ColdFusion, но даже выполнение запроса непосредственно в SQL Server 2005 создает 15-30 + минутное ожидание для этого запроса (если он даже завершается). Есть ли какой-нибудь мыслимый способ ускорить этот запрос, чтобы он занимал не более 5 минут или меньше?