我正在做这样的查询,需要 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" ;