-1
我是一名SQL人員,但我在ORACLE領域擔任過一段時間。 w /擴大界限沒有錯......Oracle - 在視圖中使用表索引(如果存在的話)
我給了一個表的視圖。我有權從該視圖中刪除。
Delete from vwGregsViewOnTable where SEQ = 12345
這需要12分鐘。表中有〜20M行,但是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使用該索引。它似乎並不想默認。
該視圖的定義是什麼?該視圖是否在阻止索引被使用?什麼是查詢計劃?優化器的基數估計是否準確?或者在一個或多個對象上是否丟失/不正確的統計信息? –
檢查執行計劃,你就會知道 –