none
求教 一个电子元器件交易平台的数据库设计丝路 RRS feed

  • 问题

  • 库存大概在5KW以上  每天入库±100W数据

    一般的操作都是按照型号和关联用户  来查询
    型号格式是 首字母[A-Z]或者[0-9]  
    后台用户需要删除数据  一次性删除<=10W条 

    之前的解决方案是  2张表

    一张是按照型号做分区视图
    一张是按照用户ID来做分区视图 

    查询速度还可以  但是删除的时候速度有点慢 (需同时删除2张表的数据)  求解更好的解决方案 
    删除可以理解为(update 一个字段)  

    2011年6月27日 8:17

全部回复

  • Try deleting rows in smaller batches.
    2011年6月27日 13:02
  • 一般OLTP中真正删除记录的时候不多,你可以加一个字段比如 Disable, 把需要删除删除的记录的 Disable 列赋值为 .T., 在你的查询中可以把这个字段加为查询条件,Update 这个字段要比 Delete 整条记录快。

    如果你非要删除这些记录不可,做一个 SQL Job 在半夜或者周末运行。

    2011年6月27日 16:28
    版主
  • 现在的问题是删除慢。。。得仔细分析删除数据的条件和数据分布,并作处理
    Try SQL Server 2008 QQ:315054403 dgdba@hotmail.com
    2011年6月28日 1:05
  • 你好
    不知道你的删除操作是不是放在程序里循环删除的呢?如果这样, 操作肯定很慢, 尽量放在后台存储过程里执行.
    jonyzhong
    2011年7月1日 4:42
  • 一般我删除都是已UserID来更新state字段

    如果是在那张按照用户ID来做分区视图 的表中更新速度很快

    如果是在那张照型号做分区视图的表中  更新速度很慢

    一次更新10W条数据  两张表是用GUID关联   请问有没有好一点的解决方案

    2011年7月15日 10:30