이전에는 많은 양의 행이있는 빈 테이블이 있습니다.포어를 가져 오는 빈 테이블에서 삭제
이 테이블에는 약 10 개의 열과 인덱스가 있으며, 다수의 열에는 인덱스가 있습니다.
는DELETE FROM item WHERE 1=1
이이 4 초 정도 걸립니다
SELECT * FROM item
완료하는 데 약 40 초가 걸립니다.
SELECT * FROM ITEM의 실행 계획은 다음을 보여줍니다.
SQL> select * from midas_item;
no rows selected
Elapsed: 00:00:04.29
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=19 Card=123 Bytes=73
80)
1 0 TABLE ACCESS (FULL) OF 'MIDAS_ITEM' (Cost=19 Card=123 Byte
s=7380)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
5263 consistent gets
5252 physical reads
0 redo size
1030 bytes sent via SQL*Net to client
372 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
0 rows processed
왜 이렇게 오래 걸릴지 그리고 어떻게 고쳐야하는지 모든 아이디어는 크게 감사하겠습니다 !!
이 테이블에 몇 개의 데이터 (행)가 있습니까? – bragboy
외래 키에 의해이 테이블을 참조하는 다른 빈 테이블이 있습니까? – dpbradley
마지막으로 지울 때 표에 약 200k 행이 있습니다. 과거에는 그 이상이었습니다 (아마 2mil diff 행이 평생 동안이었습니다) – Will