甲骨文单列索引和组合索引性能测试

共有两张表t1, t2

t1的表结构

凹坠俏牡チ兴饕妥楹纤饕阅懿馐?


t1和t2通过

插入t1值(“www”、“aaa”、“bbb”);

插入t1值(“www1”、“aaa1”、“bbb1”);

插入t1值(“www2”、“aaa2”、“bbb2”);

插入t1值(“www3”、“aaa3”、“bbb3”);

t2同理构建

插入t1 select * from t1;

插入t2 select * t2;

构建数据共:

t1共262144行

t2共524288行

为保证查询测试准确(不受缓存结果的影响)

在执行下一次查询前都会执行以下语句

ALTER  SYSTEM  FLUSH  SHARED_POOL(清空语句,执行计划缓存)

ALTER  SYSTEM 冲洗,BUFFER_CACHE(清空数据缓存)

选择t1.a1, t2。a1从t1, t2 t1.a3=t2。a3和t2.a1=皐ww”;

选择t1.a1, t2。a1使用(a3)从t1和t2 t2.a1=皐ww”;

我们先用

选择t1.a1, t2。a1从t1, t2 t1.a3=t2。a3和t2.a1=皐ww”;

测试

解释计划选择t1.a1, t2。a1从t1, t2 t1.a3=t2。a3和t2.a1=皐ww”;

SELECT * FROM TABLE (DBMS_XPLAN.DISPLAY);,

1,不建任何索引

凹坠俏牡チ兴饕妥楹纤饕阅懿馐?

t1, t2都是全表扫描

2,在t2。a1建索

凹坠俏牡チ兴饕妥楹纤饕阅懿馐?

t1全表扫描,t2范围索引扫描

3,在t2.a1和t1。a3建非唯一索引

凹坠俏牡チ兴饕妥楹纤饕阅懿馐?


5,在t1.a1, t1.a3建立组合索引,在t2。a3建非唯一索引

选择t1.a1, t2。a1从t1, t2 t1.a3=t2。a3和t2.a1=皐ww”;

凹坠俏牡チ兴饕妥楹纤饕阅懿馐?

根据索引的类型与地方限制条件的不同,有4种类型的索引扫描:

索引唯一扫描(索引独特的扫描)

索引范围扫描(索引范围扫描)

索引全扫描(索引全扫描)

索引快速扫描(索引快速全扫描)



甲骨文单列索引和组合索引性能测试