Performance Oracle-视图是否使用表索引(如果存在)
我是一个SQL专家,但我在甲骨文公司工作过一段时间。扩展自己的边界没什么错 有人给了我一张桌子。我确实有权从该视图中删除Performance Oracle-视图是否使用表索引(如果存在),performance,oracle,query-optimization,Performance,Oracle,Query Optimization,我是一个SQL专家,但我在甲骨文公司工作过一段时间。扩展自己的边界没什么错 有人给了我一张桌子。我确实有权从该视图中删除 Delete from vwGregsViewOnTable where SEQ = 12345 这需要12分钟。桌子上大约有2000万行,但是12分钟? 我找了一位DBA,他们确认我正在做表格扫描 我们编写了表格的脚本,下面是部分 CREATE TABLE SYT_SYALERTQUEUE ( IDRECMAIN VARCHAR2(32 BYTE)
Delete from vwGregsViewOnTable where SEQ = 12345
这需要12分钟。桌子上大约有2000万行,但是12分钟?
我找了一位DBA,他们确认我正在做表格扫描
我们编写了表格的脚本,下面是部分
CREATE TABLE SYT_SYALERTQUEUE
(
IDRECMAIN VARCHAR2(32 BYTE),
IDRECPARENT VARCHAR2(32 BYTE),
IDREC VARCHAR2(32 BYTE),
SEQ NUMBER(10),
.
.
.
CREATE INDEX SYNDX00000000000000000002277 ON SYT_SYALERTQUEUE
(SEQ)
LOGGING
TABLESPACE WV90NDX
在我被告知应该使用的列上似乎有一个索引
在本例中,vwGregsViewOnTable是SYT_SYALERTQUEUE上的视图
我的问题是——我怎样才能说服ORACLE使用索引。默认情况下,它似乎不想这样做 回答您的问题:您可以强制Oracle的SQL优化器使用特定索引:
SELECT /*+ INDEX (table indexname)*/ col1, col2
FROM table
WHERE blabla ;
这里的这个东西称为索引。大多数情况下,使用它并不明智。视图的定义是什么?视图是否正在执行阻止使用索引的操作?什么是查询计划?优化器的基数估计是否准确?或者一个或多个对象是否缺少/不正确的统计数据?检查执行计划,您就会知道