代价模型:
查询代价估算基于CPU代价和IO代价,所以代价估算模型用以下计算公式表示:
总代价=IO代价 + CPU代价
COST = P*a_page_cpu_time + W*T
公式参数说明:
P:计划运行时访问的页面数。
a_page_cpu_time:每个页面读取的时间花费
W:权重因子,表明IO到CPU的相关性,又称为选择率。表示在关系R中,满足条件”A<op>a“命中的元组数和R的所有元组数N的比值.
T:访问的元组数。
单表扫面代价估算:
单表扫描分:全局扫描和局部扫描,根据不同的扫描方式给出以下代价估算公式。
顺序扫描: N_page*a_tuple_IO_time + N_tuple*a_tuple_CPU_time
公式参数说明:
N_page:数据页面数。
a_tuple_IO_time:一个元组从页面中解析的IO花费。
N_tuple:元组数
a_tuple_CPU_time:一个元祖从页面中解析的CPU花费。
索引扫描:C_index + N_page_index*a_tuple_IO_time
公式参数说明:
C_index:索引的IO花费,C_index=N_page_index * a_page_IO_time.
N_page_index:索引页面数。
a_page_IO_time:一个页面的IO花费
N_tuple_index:索引作用下的可用元组数,N_tuple_index=N_tuple * 索引选择率(R(S)/R(N))