car*_*rlo 2 sql oracle query-optimization full-table-scan
我有一个表负责存储日志.DDL是这样的:
CREATE TABLE LOG(
"ID_LOG" NUMBER(12,0) NOT NULL ENABLE,
"DATA" DATE NOT NULL ENABLE,
"OPERATOR_CODE" VARCHAR2(20 BYTE),
"STRUCTURE_CODE" VARCHAR2(20 BYTE),
CONSTRAINT "LOG_PK" PRIMARY KEY ("ID_LOG")
);
Run Code Online (Sandbox Code Playgroud)
有这两个指数:
CREATE INDEX STRUCTURE_CODE ON LOG ("OPERATOR_CODE");
CREATE INDEX LOG_01 ON LOG ("STRUCTURE_CODE", "DATA") ;
Run Code Online (Sandbox Code Playgroud)
但是这个查询产生了一个完整的表扫描:
SELECT log.data AS data1,
OPERATOR_CODE,
STRUCTURE_CODE
FROM log
WHERE data BETWEEN to_date('03/03/2008', 'DD-MM-YYYY')
AND to_date('08/03/2015', 'DD-MM-YYYY')
AND STRUCTURE_CODE = '1601';
Run Code Online (Sandbox Code Playgroud)
为什么我总是看到一个FULL TABLE SCAN
列DATA
和STRUCTURE_CODE
?
(我也试过创建两个不同的索引STRUCTURE_CODE
,DATA
但我总是进行全表扫描)
归档时间: |
|
查看次数: |
366 次 |
最近记录: |