【发布时间】:2014-07-02 14:16:36
【问题描述】:
我不明白为什么这个(按范围分区)表在这个查询中是全表扫描:
UPDATE customer_table
SET username = '',
phone = '',
ip = '',
cell = '',
channel = ''
WHERE id = '';
我也创建了这个索引:
CREATE INDEX customer_table_UPD_EXT_SYS ON customer_table
(USERNAME, CLI, IP, MSISDN, CANALE, TN)
谁能帮帮我?
【问题讨论】:
-
您需要更多信息。例如,如果
customer_table非常小,那么全表扫描是实现查询的最有效方式。此外,如果id是一个字符串,那么id = ''在Oracle 中永远不会计算为真,因为空字符串被视为NULL(默认情况下)。 -
您好,这张表每个分区大约有100万条记录,所以必须避免全表扫描。在查询中,我插入了值 '',但在实际查询中,它们将被 valorized
标签: sql oracle sql-execution-plan