【发布时间】:2020-05-22 11:38:30
【问题描述】:
我有一个表DB_TBL,其中历史数据在每个月的 5 日从工具中插入。作为其历史数据,插入的行数非常大。例如,我检查了本月的计数及其 1626521。
此表包含 50 列。但我有兴趣只检查 5 列。前端有 gui 使用这 5 列,我在其中提供过滤器以每次获取一个月数据,例如上个月的 01.01.2020 和 31.01.2020 之间的closure_date。
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 吗?
【问题讨论】:
-
发布您的表定义。
-
您如何衡量绩效?这是实际的查询执行时间还是包括 GUI 渲染?
-
两种方式都需要很多时间..从 gui 我正在从这些数据创建 csv 作为报告的一部分
-
我的意思是,您是否在数据库查询工具中自行运行此查询并检查性能?
-
是的,我在 db Visualizer 中运行并检查了性能
标签: sql oracle indexing query-performance