正在查询的表有数十亿条记录,而select查询的where子句基于非索引列。因此,正常的选择查询会进行全表扫描。因此需要更多时间。 我正在尝试使用并行功能来查看它是否有助于缩短时间。但是想知道,如果并行真的有助于在非索引列的where子句的单个表上选择查询吗?
示例:
Select /*parallel(customer_data,4)*/ customer_id,name from customer_data where time_create >= :<min_time> AND customer_status='P'
答案 0 :(得分:0)
通常,将并行性添加到全表扫描的查询中会有所帮助。但总有一些事情需要考虑。
您的示例显示注释,而不是提示 - 您缺少+(加号)符号,因此不会应用并行性。你应该
select /*+ parallel( customer_data, 4 ) */ customer_id, name
...
从表中检索多少行?这个问题的答案不是关于你可以使用并行性的地方,而是关于你