enter image description here x1c 0d1x表有37个块。
enter image description here
select * from warehouses --> 48 consistent gets
enter image description here
select * from warehouses order by 2 --> 38 consistent gets
请告诉我为什么不同?
enter image description here x1c 0d1x表有37个块。
enter image description here
select * from warehouses --> 48 consistent gets
enter image description here
select * from warehouses order by 2 --> 38 consistent gets
请告诉我为什么不同?
2条答案
按热度按时间bzzcjhmw1#
当按列2排序检索数据时,数据可能更好地聚集在该高速缓存中,从而需要更少的读取。
wvyml7n52#
有(至少)两个可能的原因的差异。
首先,consistent gets包括Oracle在解析查询时执行的任何gets。如果每个查询运行两次,并比较第二次运行的结果,就可以消除差异的来源。
其次,{order by 2}查询意味着从排序区域获取结果。这些获取不会算作一致的获取,这是有序查询报告的获取较少的主要原因。
在SQL*Plus中,您可以使用
如果将arraysize设置为匹配或超过行数;您将在每个查询的一致获取之间获得非常接近(如果不是精确匹配)的结果。
如果你将数组大小设置为1(如果你有很多行,请小心--非常慢!!!)你会看到一个巨大的差异得到使用。无序查询每行有+1个get,而有序查询则没有。