- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データがないテーブルの問い合わせが遅い)
データがないテーブルの問い合わせが遅い
このQ&Aのポイント
- 一時的に使うTEMPテーブルからデータを抽出するSQLのパフォーマンスが低下しています。SELECT文のCOSTが高く、返答が遅い状態です。
- データがないテーブルからデータを抽出するSQL文は通常はCOSTが低く、返答も早いはずですが、TEMPテーブルを使用した場合には高いCOSTと遅い返答が発生しています。
- 対策としては、夜間にTEMPテーブルをtruncateし、analyze処理を行うことでパフォーマンスを改善することができます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>1.原因として考えられそうなこと レコードがdeleteされていても、HWM(High Water Mark)はレコードが大量に入った時と変わっていません。この状態でフルスキャンかけると、実際のレコードが0件でもすべてのブロックを読み込むので当然遅いです。 >2.有効そうな対策 > (夜間でtruncateしてanalyze処理をかける、等) レコードが0件になるときにtruncateだけで十分でしょう。HWMが下がればOKそうなので。 analyzeはそんなにレコードの状態が変わるのでしたら意味が無いでしょうから。
お礼
すいません、お礼が遅くなりました。 回答ありがとうございます。 結構専門的な話だと思っていたので こんなに早く回答がもらえるとは思って いませんでした。 早速4日(金)の夜からTRUNCATEを開始し 今朝はCOSTが低くなっていることを確認できました。 感謝感謝。