【发布时间】:2020-03-27 15:14:25
【问题描述】:
我需要知道以下哪个查询将最快完成,考虑:
a) 两者都有相同的行,即 5 亿,并且没有任何主键和索引。
b) 表有 30 列(部门、姓名、地址、-------- 买家)
c) 两个查询都是独立执行的,并且是第一次在 Oracle 数据库中执行。
查询 1:
select * from department;
查询 2(从 30 列中选择 4 列):
select dept,name,address,buyer from department;
如果查询 2 将首先完成,谁能详细解释原因?如果它同时完成,那为什么?
【问题讨论】:
-
"第一次独立执行" - 但在同一个数据库中并背靠背,或至少靠近在一起 - 因此从磁盘检索到的第一个查询的数据块在第二个查询时可能仍会被缓存在他们?这可以产生很大的不同。 (然后第一个查询第二次运行速度也会快得多......)将结果从数据库服务器传输到客户端所花费的时间也可能非常不同,只是因为第一个查询有更多(来自所有这些额外的列)。
-
感谢您的信息! @AlexPoole 查询不会背靠背运行。我的意思是我想知道如果两个查询的结果都没有缓存,执行将如何表现。
标签: sql oracle query-performance