通常、返されるのに約 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...*)
。
では、ネストされた選択クエリで機能しなくなったのはなぜですか? とても奇妙に思えますが、デバッグする方法がわかりませんか? 前もって感謝します!!
- -編集 - -
恥ずかしいことに、インデックスを適切に管理していないことが問題でした。注文テーブルのインデックスが断片化されているため、クエリが突然機能しなくなりましたが、再構築して再編成すると、クエリが再び機能するようになりました。話の教訓 - あなたのデータベースを大事にしてください!!