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#”是与属性定义表中的 id 匹配的静态 id(为了参数,假设为 22)。问题是,查询在任何理智的时间内完成都会遇到很大的麻烦。更大的问题是,我有点需要它早点完成,但是它必须收回的记录数量巨大(大约 30-50,000)。我需要来自多个表的数据,这就是它开始变慢的地方。这只是我需要的一部分,我还需要与当前“prodtree_elment_id”匹配的整个其他表的数据。
我正在使用 ColdFusion,但即使直接在 SQL Server 2005 中运行查询也会为该查询创建 15-30 分钟的等待时间(如果它甚至完成)。是否有任何可以想象的方法来加快这个查询最多需要 5 分钟或更短的时间?