数据库提取操作有关问题

数据库提取操作问题
小弟学PDA开发,现在要复制数据表,我的数据表中有50多万调记录,要将以数据库表中间符合某条件的提取出来放到另一数据库的表中。我写了段代码,这代码要等半天才复制完。 
请问高人怎么样可以让数据处理快一点啊~~~~? 
下面是我写的代码: 

public static void CopyTable(SqlCeConnection srcConnection,SqlCeConnection destConnection, 
  string queryString,string destTableName) 
  { 
  SqlCeCommand srcCommand = srcConnection.CreateCommand(); 
  srcCommand.CommandText = queryString;//这参数是查询语句(select * from 数据源表名 where 条件) 

  SqlCeCommand destCommand = destConnection.CreateCommand(); 
  destCommand.CommandText = @"Delete from " + destTableName; 
  destCommand.ExecuteNonQuery(); 

  destCommand.CommandType = CommandType.TableDirect; //基于表的访问,性能更好 
  destCommand.CommandText = destTableName;//这是目的数据库表名 
  try 
  { 
  SqlCeDataReader srcReader = srcCommand.ExecuteReader(); 

  SqlCeResultSet resultSet = destCommand.ExecuteResultSet( 
  ResultSetOptions.Sensitive | //检测对数据源所做的更改 
  ResultSetOptions.Scrollable | //可以向前或向后滚动 
  ResultSetOptions.Updatable); //允许更新数据 

  object[] values; 
  SqlCeUpdatableRecord record; 
  while (srcReader.Read()) 
  { 
  // 从源数据库表读取记录 
  values = new object[srcReader.FieldCount]; 
  srcReader.GetValues(values); 

  // 把记录写入到目标数据库表 
  record = resultSet.CreateRecord(); 
  record.SetValues(values); 
  resultSet.Insert(record); 
  } 

  srcReader.Close(); 
  resultSet.Close(); 
  } 
  catch (Exception ex) 
  { 
  MessageBox.Show(ex.Message); 
  } 
  }

------解决方案--------------------
五十万记录,不小啊,不会太快的,关闭事务和日志会快点

------解决方案--------------------
楼主很强吗?先收藏下!
------解决方案--------------------
来看看……
------解决方案--------------------
来看看
------解决方案--------------------
支持
------解决方案--------------------
将需要进行条件搜索字段加上索引。。
------解决方案--------------------
索引
------解决方案--------------------
怎么不用存储过程实现?
用 forall 一次性插入