如题,有没有权威测试数据,谢谢。

解决方案 »

  1.   

    也许你理解错了,两者的关键是跟扫描行数是没关系的,区别在于解析。
    对于少量的数据表来说,两者没什么区别;如果数据量大了的话,前者在解析SQL时消耗较多资源,因为Oracle会根据数据字典将*转换成具体的列名。
      

  2.   

    题目有错误.
    对于oracle来说,读取的数据是以块为单位的,也就说不论你取不取某列的数据,它都会被取到内存,只要它符合筛选条件.
      

  3.   


    --select * 和 select 列名,后者可以使查询时尽量少的数据行扫描吗?
    --都是全表扫描,都是access by rowid
    --所以扫描的行数都是一样的
    --如果有where检索条件,或许会根据具有index的列来检索,那就不会是全表扫描了
      

  4.   

    select 列名比 select * 减少了对数据字典进行列转移的记录块的读取,应该能理解为减少了对数据字典的数据行的扫描。
      

  5.   

    select * 和 select 列名,后者可以使查询时尽量少的数据行扫描吗?不会
      

  6.   

    developer的sql执行面板下方有个执行时间的,可以比较啊。
      

  7.   

    当然不会了
    扫描数据的多少跟你的select项米有关系吧,
    只不过select * 要走字典,理论上比select具体项目要费时间
      

  8.   

    也许你理解错了,两者的关键是跟扫描行数是没关系的,区别在于解析。
    对于少量的数据表来说,两者没什么区别;如果数据量大了的话,前者在解析SQL时消耗较多资源,因为Oracle会根据数据字典将*转换成具体的列名。