请问各位,网上总是说select 后面不要用* ,这样可以节省解析时间,这样都可以节省解析时间,
    单独执行这条SQL时,用*和不用*的执行计划是完全一样的,逻辑读和物理读也完全一样,执行时间也几乎一样,是不是说只有在SQL长时间运行后才能判断是否节省解析时间才达到优化目的呢?
    应该如何判断解析时间短了呢?

解决方案 »

  1.   

    select 后面带*表示选择所有的字段,可能是因为有些字段本来不需要也被选择出来了;
    因为读取一个字段内容是需要花费时间的,如果表的数据比较少,根本感觉不出来,当数据量达到百万条或千万条以上时,你会发现多select一个字段需要时间要长一些
      

  2.   

    用select 列名  优点 :效率更高,增加程序可读性
     用select * 优点:方便
      

  3.   

    楼上的是说,1.如果数据量没有大到一定程度,即便查看执行计划,逻辑读和物理读也不能精确的比较么?
    2.那类似节省解析时间的优化方法,就只能通过长时间的压力测试来证明是否得到优化了?
    3.有没有办法在SQL运行一次后判断优化后的效果?