/// <summary>
        /// 更新数据库成长值和xml
        /// </summary>
        public static void UpVip()
        {
            DateTime newtime = DateTime.Now;            DbAccess db = new DbAccess(oConn.ConnectionString);
            string sqlsel = "select reg_id,reg_lastday,reg_vipRank from reg where reg_id>0 and reg_rank<> 2 and reg_vipRank>0";            DataTable table = db.GetTable(sqlsel);
            for (int i = 0; i < table.Rows.Count; i++)
            {
                string sql = "";
                if (DateTime.Parse(table.Rows[i]["reg_lastday"].ToString()) > newtime)
                    sql = "update reg  set reg_vipRank=reg_vipRank+10 where reg_id=";
                else if (int.Parse(table.Rows[i]["reg_vipRank"].ToString()) >= 5)
                    sql = "update reg set reg_rank =0, reg_vipRank=reg_vipRank-5 where reg_id=";
                else
                    sql = "update reg set reg_rank =0, reg_vipRank=0 where reg_id=";
                sql += table.Rows[i]["reg_id"].ToString();
                if (db.GetState(sql))
                    CreateMemberInfoData(int.Parse(table.Rows[i]["reg_id"].ToString()));
            }        }用控制台写了个更新会员成长值的程序(晚上2点执行),因为数据量很大(普通会员300多万,VIP有5千左右),要在300万数据中查询这5千条数据进行更新(成长值+10),感觉速度超慢,占数据库资源太大了,大牛们有没有更好的方法节省资源。本人菜鸟一个,也没什么经验。望指点指点。谢谢

解决方案 »

  1.   

    震惊了 为什么不在sqlserver 查询分析器里 一条语句加个条件呢? 
      

  2.   

    update reg  set reg_vipRank=reg_vipRank+10 
    from reg
     where reg_id>0 and reg_rank<> 2 and reg_vipRank>0这样不行吗?
      

  3.   

    update reg  set reg_vipRank=case  when reg_lastday>getdate() then reg_vipRank+10 when reg_vipRank>=5 then  reg_vipRank+5 else 0 end where reg_id=reg_id
    一句话帮你搞定
      

  4.   

    update reg  set reg_vipRank =case when reg_lastday>getdate() then  reg_vipRank+10 
     when reg_vipRank>=5 then reg_vipRank-5 else 0 end ,
    reg_rank = case when reg_lastday>getdate() then reg_rank 
    else 0 end where  reg_id>0 and reg_rank<> 2 and reg_vipRank>0
      

  5.   

    sql server job中定期执行
      

  6.   

     用lucene.net  全文检索哈,速度相当快
      

  7.   

    既然懂得编写sql代码,干嘛不直接用sql 来执行?照你这么折腾,肯定慢。
      

  8.   

    晕…… 比我还菜 , 这代码要不得,这么简单的要求,就用SQL可以实现了。哈哈¥%@#¥%#¥%#¥
      

  9.   

    OMG...OMG  这样也可以
    不趴窝才出鬼了