1
我正在運行一些關於索引和DML的性能測試。當你不使用索引表上的索引時,我無法理解一些測試結果DML的執行速度比非索引錶慢。我期待在相似的時間間隔內運行這兩者。 我使用的plsql塊如下:(TINDEX_PERFORMANCE_TEST_1表有一個主鍵列「ID」,我沒有在更新語句中使用它,以便在更新時使用下面的語句在索引上不需要更新。 )當您不使用索引時索引表DML性能
那麼,爲什麼索引表執行速度較慢時,索引不使用?感謝所有...
$BEGIN
RUNSTATS_PKG.RS_START;
FOR i IN 1..10000
LOOP
--INSERT INTO TINDEX_PERFORMANCE_TEST_1 VALUES(i,i);
UPDATE TINDEX_PERFORMANCE_TEST_1
SET vtext = TO_CHAR(i)
WHERE vtext = TO_CHAR(i);
--DELETE FROM TINDEX_PERFORMANCE_TEST_1 WHERE ID = i;
END LOOP;
RUNSTATS_PKG.RS_MIDDLE;
FOR i IN 1..10000
LOOP
-- INTO TINDEX_PERFORMANCE_TEST_2 VALUES(i,i);
UPDATE TINDEX_PERFORMANCE_TEST_2
SET vtext = TO_CHAR(i)
WHERE vtext = TO_CHAR(i);
--DELETE FROM TINDEX_PERFORMANCE_TEST_2 WHERE ID = i;
END LOOP;
RUNSTATS_PKG.RS_STOP;
END;
結果:
Run1 ran in 165 hsecs
Run2 ran in 93 hsecs
run 1 ran in 177,42% of the time
大部分出於好奇,你是否嘗試在反轉的表中運行相同的代碼(即沒有索引的表首先運行)? – Allan 2010-08-09 04:01:02