CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  应用实例

我这是超市连锁店,下面有好多收银前台,每天都要下载商品信息等几个大表,经常出现更新失败。

楼主maybo(东东)2004-12-01 18:46:23 在 MS-SQL Server / 应用实例 提问

详细:有一个台数据服务器,下面50多台前台每天早上都要一早向服务器更新下载商品信息表,  
  货位表等共7个大表,由于我们用的是别人开发的软件,它没有很好在软件中新增商品与修改商品价格  
  等中加入日期时间的字段与更新下载相关连信息表,这样我们只有每个前台向服务器的7个大表全盘下  
  载下来。  
  如存储程:  
  CREATE   PROCEDURE   SOF_gxzl  
    AS  
  delete   from   spkfk  
  insert   into   spkfk   (spid,spbh,sptm,spmch,lshj,hyj,shpgg,shpchd,jlgg,beactive,dw,koul,yinhua,zjm)  
    select                         spid,spbh,sptm,spmch,lshj,hyj,shpgg,shpchd,jlgg,beactive,dw,koul,yinhua,zjm    
                                        from     [server2].[sk70].[dbo].spkfk   where   beactive='是'  
  delete   from   hwsp    
  insert   into   hwsp   ..........等7个表  
  return    
  后来由于delete   from   spkfk   删除几个本地表也要一些时间,而且还会给日志文件增胖上百兆,就改成:  
  CREATE   PROCEDURE   SOF_gxzl  
    AS  
  if   exists   (select   *   from   sysobjects   where   id   =   object_id(N'[dbo].[spkfk]')   and   OBJECTPROPERTY(id,   N'IsUserTable')   =   1)  
  drop   table   [dbo].[spkfk]  
  CREATE   TABLE   [dbo].[spkfk]   (   .....重建表以减少时间     )   ON   [PRIMARY]  
  insert   into   spkfk   (spid,spbh,sptm,spmch,lshj,hyj,shpgg,shpchd,jlgg,beactive,dw,koul,yinhua,zjm)  
    select                         spid,spbh,sptm,spmch,lshj,hyj,shpgg,shpchd,jlgg,beactive,dw,koul,yinhua,zjm    
                                        from     [server2].[sk70].[dbo].spkfk   where   beactive='是'  
  if   exists   (......)  
  drop   table   [dbo].[hwsp]  
  insert   into   hwsp   ..........等7个表  
  return    
  但是这样还是一样的,在每天早上更新数据有些更新成功,有就更新失败,这种情况并不固定某几台机上。  
  我是个初学者如果有,希望详细说明下...先谢谢  
  问题点数:100、回复次数:10Top

1 楼pbsql(风云)回复于 2004-12-01 18:55:25 得分 0

用truncate   table删除表中数据快且不会产生日志  
   
  truncate   table   hwsp  
  insert   into   hwsp   ..........等7个表  
  ...Top

2 楼caral525(猫猫)回复于 2004-12-01 19:00:22 得分 50

建议  
  利用truncate   table   hwap来清空hwap表;不会写入日志,速度比delete快得多;  
  另外,据你上面列的字段看,应该是有唯一字段存在的吧?  
  如果有的话,可以只将新的内容插入,而不是所有的;Top

3 楼maybo(东东)回复于 2004-12-01 19:52:25 得分 0

我忘了,补充下:在插入数据几个大表都是有唯一字段的,但是每天都会对某些表中的记录的价格,成本修改,与一些字段,唯一字段是不变的。  
  我也试过用加上日期但是不理想,(因为现在用了别人软件,上了贼船没办办法:那家软件公司前年就倒了,现在本想换掉套软件的,但又烦着要改变许多...同时也有点怕了....)  
  insert   into   spkfk(spid,spbh,sptm,spmch...)  
  select   spid,spbh,sptm,spmch...   from     [server2].[sk70].[dbo].spkfk   where   beactive='是'   and   denglrq>=convert(char(10),(getdate()-3),21)  
  只有前台每天将本地的表删除,全部从服务下载下来,  
  我想在服务器上生成一些下载用户信息零时表,与在50几个前台同时向服务器读取几个大表(上百万条记录)的同时不要产生一些"脏数据"  
  ---在50几个前台同时向服务器能一一更新数据并能比对本地与服务器的一至。。。Top

4 楼lh1979(rocket)回复于 2004-12-01 20:11:26 得分 0

如果数据是测试数据的话用truncate   table   tablename没有问题,但是如果里面数据是正常删除的话  
  不要用这个语句,这个语句是因为不写入日志,速度才快,但是如果后悔的话,写入日志的话,数据还可以复原,但是这种是恢复不了的  
  考虑速度的话还是优化语句,条件建立索引Top

5 楼lh1979(rocket)回复于 2004-12-01 20:15:15 得分 50

按照现在数据库的默认隔离等级,是不可能产生脏数据的,除非隔离等级改为  
  SET   TRANSACTION   ISOLATION   LEVEL     READ   UNCOMMITTED,这样查询的时候就会有脏数据了  
  Top

6 楼maybo(东东)回复于 2004-12-01 21:44:36 得分 0

有没有在存储过程中copy表记录的快速好方法,也好在比insert   into   ...select   *   from   ...  
  快,减少在下载时与服务器之间的连接时间Top

7 楼Ncaidexiaoniao()回复于 2004-12-01 22:08:29 得分 0

用   trancate   删除表的数据比较好Top

8 楼vinsonshen(为了明天)回复于 2004-12-01 22:20:42 得分 0

两机器间表数据传送,用dts或insert   into   ...select   *   from   ...  
   
  另外,你清楚表数据时,用"truncate   table   表名"这个速度快很多(当表数据很多时),因为truncate不用记录日志的;而你用delete当数据比较多时,很比较慢,因为其要记录日志的  
  Top

9 楼vinsonshen(为了明天)回复于 2004-12-01 22:23:30 得分 0

另外,你的表在insert时,不要先建立索引,等把几个表的数据都insert   导回本地了,再另外建立索引,这样也会快很多,这样你可以把建立索引的语句也写成另外一个存储过程,当所有数据都导回本地了,再另外执行该存储过程去对表建立索引Top

10 楼huazf(huazf)回复于 2004-12-02 10:55:00 得分 0

专业提供SQL   SERVER   修复,SQL恢复,误删除表,SQL   数据恢复,SQL   SERVER   数据库恢复修复,SQL   找回业务。  
  QQ:386999  
  TEL:0576-2454863  
  Top

相关问题

  • 提一个关于连锁店的问题!
  • 有谁做过连锁店管理软件的,请来说说。
  • 关于连锁店的网络部署的问题
  • 关于Delphi前台与SQL 后台表格生成与联系的问题
  • 关于Delphi前台与SQL 后台表格生成与联系的问题
  • 怎样在前台程序中创建后台数据库的临时表?
  • 如何动态的从数据库字段中生成前台页面表格?
  • 求一个后台Execl导入,前台表格输入的ASP程序
  • 请问前台程序查询库时如何用PLSQL跟踪?比如说大概知道前台程序在调用哪几张库内表(oracle817)
  • 前台 后台

关键词

  • 数据
  • 字段
  • 服务器
  • 下载
  • 语句
  • spkfk
  • 表
  • beactive
  • sptm
  • spbh

得分解答快速导航

  • 帖主:maybo
  • caral525
  • lh1979

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo