请求表插入的原理问题,如一个操作:
select field1,sum(field2) as fields
into ResultTable
from
(
select field1,field2 from table1
union all
select field1,field2 from table2
) as a
group by field1假如table1,table2数据量很大时,可以通过sp_spaceused 'ResultTable'来查看结果表的状态变化。
现在有个问题是,我发现ResultTable的rows越来越小,不知道是为什么?
是不是会先把table1,table2的所有数据先放入ResultTable,然后再进行group by操作。
请大侠指点,谢谢!

解决方案 »

  1.   

    这样再试一下
    exec sp_space ResultTable,'true'
      

  2.   

    把table1,table2的所有数据先放入ResultTable,然后再进行group   by操作
    上面的话是不正确的,先group by field1,再将筛选出的数据放入到ResultTable
      

  3.   

    执行顺序是 
    select   field1,sum(field2)   as   fields
    from
    (
    select   field1,field2   from   table1
    union   all
    select   field1,field2   from   table2
    )   as   a
    group   by   field1 然后后将其结果 into   ResultTable
      

  4.   

    ResultTable的rows越来越小,不知道是为什么? --------------
    查一下Data数据占用空间
    这样生成没有索引,是没有索引空间。。
      

  5.   

    select   field1,sum(field2)   as   fields 
    into   ResultTable 
    from 

    select   field1,field2   from   table1 
    union   all 
    select   field1,field2   from   table2 
    )   as   a 
    group   by   field1 假如table1,table2数据量很大时,可以通过sp_spaceused   'ResultTable '来查看结果表的状态变化。 
    现在有个问题是,我发现ResultTable的rows越来越小,不知道是为什么? 
    是不是会先把table1,table2的所有数据先放入ResultTable,然后再进行group   by操作。 
    请大侠指点,谢谢!
    ----------------
    肯定是查询后再插入.
    至于你说的我发现ResultTable的rows越来越小,这个还真奇怪.是不是你清空了表再插入的?
      

  6.   

    肯定是查询后再插入. 
    至于你说的我发现ResultTable的rows越来越小,这个还真奇怪.是不是你清空了表再插入的?----------------
    这个表是插入的时候生成的,不存在清空的问题吧?
    应该是table1或table2的数据有删改,,,