请求表插入的原理问题,如一个操作:
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操作。
请大侠指点,谢谢!
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操作。
请大侠指点,谢谢!
exec sp_space ResultTable,'true'
上面的话是不正确的,先group by field1,再将筛选出的数据放入到ResultTable
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
查一下Data数据占用空间
这样生成没有索引,是没有索引空间。。
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越来越小,这个还真奇怪.是不是你清空了表再插入的?
至于你说的我发现ResultTable的rows越来越小,这个还真奇怪.是不是你清空了表再插入的?----------------
这个表是插入的时候生成的,不存在清空的问题吧?
应该是table1或table2的数据有删改,,,