SQL查询的性能

马木

我正在大表上执行命令。它有大约7毫米的行。

命令是这样的:

select * from mytable;

现在,我将行数恢复为3毫米左右。我正在使用以下命令:

select * from mytable where timest > add_months( sysdate, -12*4 ) 

我在timest列上有一个索引。但是成本几乎是相同的。我希望它们会减少。我究竟做错了什么?有什么线索吗?先感谢您!

在这里说明计划: 在此处输入图片说明 在此处输入图片说明

最大容量

使用7个mio中的3个索引。的行数很可能甚至会更昂贵,因此oracle对这两个查询都进行了全表扫描,这是IMO正确的。

您可以尝试执行并行FTS(全表扫描)-它应该更快,但是它将使您的Oracle服务器承受更高的负载,因此不要在负载较重的多用户DB上执行此操作。这是一个例子:

select /*+full(t) parallel(t,4)*/ * 
from mytable t
where timest > add_months( sysdate, -12*4 );

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章