我正在尝试评估BitMap索引在Btree索引上的性能。在我的努力中,我发现当我更改运行查询的顺序时,运行查询所花费的时间会有所不同。 例如,当运行两个查询时
查询1 - 仅针对一个事实和维度集(星型模式)运行 包含bitMap索引。
查询2 - 仅针对一个事实和维度集(Star Scehma)运行 包含Btree索引。
-
第1天: - 我跑查询1 ,所用时间为47.53秒。 我跑查询2 ,所用时间为34.08秒
第2天: - 刷新缓冲区缓存 我先运行查询2 ,所用时间为32.66秒 我跑查询1 ,所用时间为12.11秒
两个查询都遵循相同的连接路径,并且只有表名不同,具体取决于表中的索引。如果curl -k -u USER:PASS https://localhost:20343/api/bots
是Btree索引表,则table A
是位图索引表。
我的问题是这些查询的运行顺序是否会影响这些查询的时间?什么会在Oracle中造成这种行为?