数据库问题,一个sql数据库原来只有一张表,现在想分为多表。主要是数据库量太大。怎么效率才会高呢?

CAICALG 2007-11-13 11:42:13
关键问题是数据量太大,我想写个脚本按照表中某个字段分成十几张表,但是我试了下在转换10G的数据时就需要很长时间,更不要说50g的数据了。
各位有什么好办法没有,指点下。
脚本里面我是直接这样写的:
select * into EmailLog from clientad where dwTypeID1 in (131329,132865,131331,132867)
go
delete from clientad where dwTypeID1 in (131329,132865,131331,132867)
go
select * into NetShare from clientad where dwTypeID1 in (196871,196872)
go
delete form clientad where dwTypeID1 in (196871,196872)

请大家指点下。
...全文
137 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
fcuandy 2007-11-16
  • 打赏
  • 举报
回复
在 dwTypeID1上建索引,然后

select * into EmailLog from clientad where dwTypeID1 BETWEEN 131329 AND 132867 AND dwTypeID1 in (131329,132865,131331,132867)
go
delete from clientad where dwTypeID1 BETWEEN 131329 AND 132867 AND dwTypeID1 in (131329,132865,131331,132867)
go
select * into NetShare from clientad where dwTypeID1 dwTypeID1 BETWEEN 196871 AND 192872
go
delete form clientad where dwTypeID1 in BETWEEN 196871 AND 196872

试试.
netcup 2007-11-16
  • 打赏
  • 举报
回复
用INSERT INTO,不要用SELECT INTO
CAICALG 2007-11-16
  • 打赏
  • 举报
回复
这几天太忙了,没顾得上看看。
guo8216 :查询什么的,现在先不管了。主要是分表的效率。

大家说说,我这个脚本在sql服务器上运行时的效率,正常么?怎么优化它?
-狙击手- 2007-11-13
  • 打赏
  • 举报
回复
试着用BCP导出再分别导入
dawugui 2007-11-13
  • 打赏
  • 举报
回复
把数据全部导到FOXPRO的表里面去搞.

FOXPRO操作起来快.
dawugui 2007-11-13
  • 打赏
  • 举报
回复
50G的数据?

相关字段建立主键或索引没?
dobear_0922 2007-11-13
  • 打赏
  • 举报
回复
50g的数据??
guo8216 2007-11-13
  • 打赏
  • 举报
回复
把数据发成多上表的话,联合查询时速度未必会快得了多少!关键看我的表内的索引有没有建好!
dobear_0922 2007-11-13
  • 打赏
  • 举报
回复
dawugui :我在脚本里建立了个索引。是这样的,creat index IX_dwTypeID1 on clientad(dwTypeID1)不过我建完之后,好像速度也没有多大的提升。

---------
你的dwTypeID1字段取值也就那么十几种,加不加没什么两样
CAICALG 2007-11-13
  • 打赏
  • 举报
回复
dawugui :我在脚本里建立了个索引。是这样的,creat index IX_dwTypeID1 on clientad(dwTypeID1)不过我建完之后,好像速度也没有多大的提升。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧