SqlServer批量增加

        今天做了一个需要将一个oracle数据库里的数据导到sqlServer里面去,具体的需求就是一次下载十万条左右的数据
提到了增加便想到了效率的问题,如何实现有效的增加呢,以前几百条的时候可以用while来循环一条一条加入,如果数据量增大,效率就出现问题,面对怎么大的数据量让我想到了直接用DataSet来insert,带着这个问题找了点资料,MS已经给我们提供了这方面的类库,我们直接拿来用就OK了,那我就在着做个记号方便以后查看.
Code
        /**//// <summary>
        
/// 下载远程信息线程
        
/// </summary>

        private static Thread _thread;
        
/**//// <summary>
        
/// 开始下载帐户信息,下载的前提条件是本地库里的行数小于规定的行数
        
/// </summary>

        public static void StartDownAccount()
        
{
            
if (int.Parse(System.Configuration.ConfigurationManager.AppSettings["LocalDBCount"]) > count)
            
{
                count 
= int.Parse(System.Configuration.ConfigurationManager.AppSettings["LocalDBCount"]) + 1;
                _thread 
= new Thread(new ThreadStart(SyncPassword_By_Oracle));
                
if (!_thread.IsAlive)
                
{
                    _thread.Start();
                }

            }

        }

        
/**//// <summary>
        
/// 批量下载远程数据库到本地
        
/// </summary>

        private static void SyncPassword_By_Oracle()
        
{
            
try
            
{
                DataTable OraTable 
= DbHelperOra.Query(SQL_SELECT_ACCOUNT_BY_ALL_ORACLE).Tables[0];                
                
using (System.Data.SqlClient.SqlBulkCopy sqlbulk = new SqlBulkCopy(System.Configuration.ConfigurationManager.AppSettings["ConnectionStringSql"]))
                
{
                    sqlbulk.DestinationTableName 
= "ACCOUNT";
                    sqlbulk.ColumnMappings.Add(
0"ACCOUNT");
                    sqlbulk.ColumnMappings.Add(
1"SNO");
                    sqlbulk.ColumnMappings.Add(
2"QUERYPIN");
                    DbHelperSQL.ExecuteSql(SQL_TRUNCATE_ACCOUNT);
                    sqlbulk.WriteToServer(OraTable);
                    sqlbulk.Close();
                    
//if (Convert.ToInt32(DbHelperOra.GetSingle(SQL_SELECT_ACCOUNT_BY_COUNT_SQL)) < Convert.ToInt32(DbHelperSQL.GetSingle(SQL_SELECT_ACCOUNT_BY_COUNT_SQL)))
                    
//    DbHelperSQL.ExecuteSql(SQL_DELETE_DISTINCT_TABLE);
                    _thread.Abort();
                }

            }

            
catch
            
{
            }

        }

        
废弃修改配置文件#region 废弃修改配置文件

        
//private static void SaveXML()
        
//{
        
//    #region
        
//    XmlDocument doc = new XmlDocument();
        
//    doc.Load(AppDomain.CurrentDomain.BaseDirectory + "Web.Config");
        
//    XmlNode node = doc.SelectSingleNode("/configuration/appSettings/add[@key='IsFirst']");
        
//    if (node.Attributes["value"].Value == "false")
        
//        return;
        
//    node.Attributes["value"].Value = "false";
        
//    doc.Save(AppDomain.CurrentDomain.BaseDirectory + "Web.Config");
        
//    #endregion
        
//}
        #endregion

转载于:https://www.cnblogs.com/joyes/archive/2008/03/25/1121437.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值