0

非常に遅い (20 秒) 200K レコードを返す非常に単純なクエリがあります。

SELECT * FROM TABLE ORDER BY ID DESC

私がちょうどするなら

 SELECT * FROM TABLE

迅速な結果を返します。

そのフィールド ID (ALLOW REVERSE SCANS) で INDEX を作成しましたが、非常によく似た応答が返されます。どこに問題がありますか?このクエリの停滞の原因は何ですか? 統計とインデックス テーブルのメタデータを更新しました。

私はデータベースの専門家 (管理者) の助けを期待しています。これは簡単な質問ではないことはわかっています。

ありがとうございました

4

1 に答える 1

0

バッファプールは重要であり、ソート ヒープ パラメータは (sheapthres および sheapthres_shr に沿って) 同時に、ソート オーバーフローがあるかどうかを確認します。これは、メモリ不足のためにソートがディスクに書き込まれることを意味するためです。テーブルスペースが必要です。それらがどこに保存されているか、およびディスクが十分に高速かどうかを確認してください。

アクセスプランを見て、インデックスが考慮されているかどうかを確認してください。

最初のクエリは、並べ替えを必要とせず、テーブル スキャンだけであるため、非常に高速です。

2 番目の場合、テーブルからすべてのデータを取得するため、インデックスは何も実行しないため、インデックスにアクセスしません (「where」には何もないため、何もフィルタリングされません)。

どちらのクエリもテーブル スキャンが必要ですが、最初のクエリは並べ替える必要があり、それが並べ替えの問題です。

于 2013-02-08T13:40:30.830 に答える