我有一个相对简单的查询,通常需要不超过 10 秒才能返回。如下:
SELECT personid
FROM vw_has_copyright
WHERE (Orderid IN (SELECT orderid
FROM orders WHERE eventid = 1234))
GROUP BY personid
ORDER BY personid
现在它只是在我运行这个查询时挂起。如果我运行select orders.orderid from orders where orders.eventid = 1234
- 然后使用从此查询生成的列表,select personid from vw_has_copyright where Orderid in (*my list here...*)
它工作正常。
那么为什么它不再使用嵌套选择查询呢?看起来很奇怪,但我不确定如何调试它?提前致谢!!
- -编辑 - -
相当尴尬的是,问题在于我没有正确维护我的索引。由于我的订单表索引上的高度碎片化,查询突然停止工作,但是在重建和重组它们之后,查询现在又可以工作了!故事的寓意 - 照顾你的数据库!