私は SQL の専門家ですが、ORACLE の世界で仕事をしています。自分の境界を広げても何も悪いことはありません....
私はテーブルへの眺めを与えられました。そのビューから削除する権限があります。
Delete from vwGregsViewOnTable where SEQ = 12345
これには 12 分かかります。テーブルには約 2,000 万行ありますが、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 にインデックスを使用させることができるかということです。デフォルトではしたくないようです。