我有表DB_TBL
,其中每月5日从工具中插入历史数据。作为其历史数据,插入的行数非常大。例如,我检查了本月的计数及其1626521。
此表包含50列。但我有兴趣只检查5列。前端有gui使用这5列,我在其中提供过滤器以每次获取一个月的数据,例如上个月的日期为01.01.2020和31.01.2020之间的闭包日期。
Select Client_key, Portfolia_Name, Closure_date,
Currency_Type, Balance from DB_TBL
where CLOSURE_DATE between
to_date ('01.01.2020','dd.mm.yyyy') and to_date ('31.01.2020','dd.mm.yyyy');
此查询非常慢,需要30多分钟才能运行。这个问题与我从gui遇到的相同问题非常关键。我提供了Closure_date
列的索引。但是它仍然不能提高性能。
有什么方法可以改善查询性能?也许我可以创建Virtual based index
或创建View
吗?
首先,我将使用日期文字编写查询:
Select Client_key, Portfolia_Name, Closure_date, Currency_Type, Balance
from DB_TBL
where CLOSURE_DATE between date '2020-01-01' and date '2020-01-31'
对于此查询,您想要db_tbl(closure_date)
上的索引。