sqlserver,不同数据库,两个相同表,表大小差一倍
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver,不同数据库,两个相同表,表大小差一倍相关的知识,希望对你有一定的参考价值。
SqlServer里,建立两个数据库,分别各建一个表,里面的数据也一样,但是数据表的大小相差一倍,为什么
查询语句:sp_spaceused table_name
结果data字段(表中数据大小)也相差一倍,这是为什么
数据库的文件的大小并不等同于数据的大小,表也是一样的.
假定原始表,前后累计 insert 一千万条记录有,后来删除了9百万,然后将剩余的1百万导入到 新的表中.
此时,原始表的大小就远大于新的表.当表空间不够的时候,他会自动 扩容,当数据减少时,他并不会自动收缩.追问
我在数据库查询:sp_spaceused table_name
查询表格占用空间大小,索引大小,数据空间大小等,结果不光表格大小差一倍,就连数据大小也差一倍,这是为什么
sqlserver 两个表差异合并 除了insert.. select.. 外还有啥最好的办法吗?
tb1 和tb2 字段是相同的~ 数据内容有些相同有些不同
我需要合并两个表的数据,但是重复的不需要合并。
除了insert.. select.. 外还有什么最好的办法吗?
如果答案很优越 我追加到200分~~ 谢谢各位~
如:
第一步:select * from 数据库名1..表名1 into #临时表名
第二步:insert into #临时表名 (字段名1,字段名2……) (select a.字段名1,a.字段名2…… from 数据库名2..表名2 a,数据库名1..表名1 b where 数据库名2..表名2.主键字段名<>数据名1..表名1.主键字段名 )
第三步:delete from 数据库名1..表名1
第四步:delete from 数据库名2..表名2
第五步:insert into 数据库名1..表名1 from #临时表
第六步:insert into 数据库名2..表名2 from #临时表
第七步:drop table #临时表
注:如果两个表中没有主键,你只有在第二条语句中where 项中一个字段一个字段地添加条件判断了。 18290希望对你有帮助!
参考资料:. fxeighh
参考技术A select col1 from tb1union all
select col1 from tb2 参考技术B insert.. select.. 这么好用 为什么不用
以上是关于sqlserver,不同数据库,两个相同表,表大小差一倍的主要内容,如果未能解决你的问题,请参考以下文章
sqlserver 两个表差异合并 除了insert.. select.. 外还有啥最好的办法吗?