sql分析是的cost值有什么意义?

在做sql分析时,执行计划的每一步都有cost值相对应,似乎是一个很重要的性能指标,我有几点不明白
1.cost是什么?
2.cost是怎么计算出来的?
3.一个sql语句是否cost越少越好?
4.评判一个sql的好坏是不是只要看它的cost,而不用考虑其他?
5.评判一个sql的好坏的指标,除了cost还有什么?
请各位大侠指教
谢谢!
---------------------------------------------------------------

cost是SQL语句执行所占的系统资源的多少,当然是COST越少越好。但也不尽相同,因为判断一个SQL语句的好坏,不光看所占资源的多少,更主要的是所用时间的多少,我认为,在现在这个信息的时代,时间就是金钱,因此提高运行速度也是必然的。
所以我认为,除了COST以外,运行的速度还是非常关键的指标。
---------------------------------------------------------------

I agree 小数点同学的。
关键在于,你tunning的标准是什么,cost first,还是execute time first,或者其他。

---------------------------------------------------------------

cost是一个估计值,它与使用该执行计划执行语句所需的资源期望使用量成比例。这些资源包括 (但不仅限于) I/O、CPU 时间和内存。但具体怎么算,我也不清楚,请知道的多指教,不过我觉得如果定期生成统计数字,基于成本的优化程序应是首选,因为我想使用系统资源少,耗费的时间也就短,当然运行的也就快,要不然oracle也不会推荐使用基于开销的优化程序了。
---------------------------------------------------------------

首先利用分析表角度证明楼上看法不全正确
开销大,换来效率高(对一数据量大表作索引后,寻找速度快,但相应多作了一个索引表,让系统多作一查找)
反之,不作索引,那开销小,但效率就下降

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus