解决方案 »

  1.   

    呵呵,你建个100个字段,100万 行的表,
    然后对每个 select * from 你的表 select 1 from 你的表执行计划,看看
      

  2.   

    1)select 1 from mytable;与select anycol(目的表集合中的任意一行) from mytable;与select * from mytable 作用上来说是没有差别的,都是查看是否有记录,一般是作条件用的。select 1 from 中的1是一常量,查到的所有行的值都是它,但从效率上来说,1>anycol>*,因为不用查字典表。
    从速度上来说1的确快一点,但是你要考虑的是是否你想要的,如果在exists里面,用select 1就够了。
    第二个问题没看懂
      

  3.   

    你select * 和select 1from 同一张表试试就知道了。如果用到像if exists(select...)推荐使用select top 1 1
      

  4.   


    背后的原因是什么类?百度出来的资料上说:因为不用查字典表。
    是不是可以理解成:
    SELECT * 是要具体知道每一行是什么内容;
    SELECT 1不需要具体知道,而是增加临时列,填充的内容都是1?
      

  5.   


    TOP 1 1?500W数据我测试过 一样的效率
      

  6.   

    第二个问题也是资料里的一部分,他说select 1 from table是增加临时列,而每行的列值是写在select后的数
      

  7.   

    SELECT *是表扫描、索引扫描、聚集索引扫描,都是扫描,表越大越慢,需要加载数据到内存。select 1怎么增加临时列?
      

  8.   

    第二个问题也是资料里的一部分,他说select 1 from table是增加临时列,而每行的列值是写在select后的数就是查询出来的全部是常量1啊 
      

  9.   

    第二个问题也是资料里的一部分,他说select 1 from table是增加临时列,而每行的列值是写在select后的数说白了就是临时在结果集上弄个常量。两者的方式不同,一个是查数据,一个是类似与赋值,就好像建房和卖房
      

  10.   

    第二个问题也是资料里的一部分,他说select 1 from table是增加临时列,而每行的列值是写在select后的数说白了就是临时在结果集上弄个常量。两者的方式不同,一个是查数据,一个是类似与赋值,就好像建房和卖房
    这样的话,是否可以理解为select 1不需要完全知道表的具体内容,因此速度上会快一些?
      

  11.   

    第二个问题也是资料里的一部分,他说select 1 from table是增加临时列,而每行的列值是写在select后的数就是查询出来的全部是常量1啊 
    这样的话,是否可以理解为select 1不需要完全知道表的具体内容,因此速度上会快一些?
      

  12.   

    这样的话,是否可以理解为select 1不需要完全知道表的具体内容,
    这句话可以这样理解,不过速度的话我觉得要看你怎么写了,如果select *,1 as '新列' from tb的话,估计和select * from tb是差不多的
      

  13.   

    select 1 from sys.tables
    select * from sys.tables举个简单的例子
    执行上面这两个查询  然后查看两者的执行计划和开销情况  你自己去琢磨吧
      

  14.   

    我觉得 exists 语句中就用 select 1 ,减少资源浪费;
    如果不是exists,需要各个字段的时候,就直接用 select 字段1,字段2,养成一个习惯还是比较好的。一旦用惯了select * ,如果碰到了数据量很大,且字段比较多的表,你直接上手 select * ,
    呵呵,你慢慢等吧,如果在web中调用了这样的语句,服务器超时都是有可能出现的
      

  15.   

    偶也啊,select * from sys.tables
      

  16.   

    这个是个很简单的问题,首先,更正下“anycol(目的表集合中的任意一行)”应该是一列不是一样。
    作用上是一样,是指出来的记录条数是一样的,查的过程也是一样的。
    显示常量1肯定是最快的,其它还必须去数据表中寻找对应字段的值然后才能显示出来,而常量只要直接显示一下就可以了,肯定是最快的。
      

  17.   

    SELECT COUNT(1) FROM ** 和 Select Count(*) from ** 呢?
    这两个应该是 后者效率高吧?