私はこのようなクエリを実行していますが、完了するまでに6秒かかります:
select *
from ( select aaa."ID"
from "aaa"
where aaa."DELETED" is null
order by aaa."CREATED" desc )
where rownum <= 15;
テーブルに約 160 万のレコードがあり、削除された列と作成された列に別のインデックスを追加しようとしました。作成された列と削除された列の両方を含むインデックスを追加して、同じインデックスを作成しようとしました。別の順序で。何も役に立たないようです。これをスピードアップするにはどうすればよいですか?
休止状態によって生成されるため、クエリをあまり変更できません
編集:クエリがなくaaa."DELETED" is null
ても実行が非常に遅くなります。
編集2:
編集 3: インデックス定義を追加します。正直なところ、これらの数字のほとんどが何を意味するのかわかりません。インデックスの作成に sqldeveloper を使用しています。各インデックスに非常に多くの構成オプションがあることさえ知らなかったので、ドキュメントを調べます。
CREATE INDEX "aaa"."aaa_CREATED_ASC" ON "aaa"."aaa"
(
"CREATED"
)
PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE
(
INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
)
TABLESPACE "SYSTEM" ;
CREATE INDEX "aaa"."aaa_CREATED_DESC" ON "aaa"."aaa"
(
"CREATED" DESC
)
PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE
(
INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
)
TABLESPACE "SYSTEM" ;