我正在尝试运行以下查询,我正在加入索引字段(hdr.M_KEYID)上的表 我仍然在解释计划中看到TABLE ACCESS FULL。 你能不能让我知道我哪里出错了,怎么改变它以使它更快
以下是每个表的索引
MY_H2S上的索引
M_KEY0
M_KEY1
MY_HBS的索引
M_DATE
M_KEYID
M_DATE
查询:
select
bdy.M_DATE as M_DATE,
M_KEY0 as M_KEY0,
M_KEY1 as M_KEY1 ,
(M_B_F+M_A_F)/2 as M_PRICE,
bdy.M_DATE as M_DATE
from
MY_H2S hdr left join MY_HBS bdy on hdr.M_KEYID = bdy.M_KEYID
解释计划:
----------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 182K| 12M| 458 (1)| 00:00:06 |
|* 1 | HASH JOIN OUTER | | 182K| 12M| 458 (1)| 00:00:06 |
| 2 | TABLE ACCESS FULL| MY_H2S | 124 | 3968 | 3 (0)| 00:00:01 |
| 3 | TABLE ACCESS FULL| MY_HBS | 182K| 7288K| 455 (1)| 00:00:06 |
----------------------------------------------------------------------------------
请问你能否知道我哪里出错了,以及如何让它变得更快
答案 0 :(得分:0)
评论太长了。
就我个人而言,我希望Oracle将--Enable CDC for RDS DB Instance
exec msdb.dbo.rds_cdc_enable_db '<database name>'
--Begin tracking a table
use <dbname_where_cdc_enabled>
exec sys.sp_cdc_enable_table
@source_schema = N'<source_schema>'
, @source_name = N'<source_name>'
, @role_name = N'<role name>'
, @capture_instance = '<capture_instance>'
--View CDC configuration
exec sys.sp_cdc_help_change_data_capture
用于MY_HBS(M_KEYID)
。但是,有减轻情节:
优化器正在平衡多个考虑因素。线性扫描124条记录的列表并不一定比加载索引,遍历索引,然后加载(单个)数据库更糟糕。