La forma más rápida de copiar archivos de un directorio a otro

Necesito copiar archivos de un directorio a otro, dependiendo de la existencia del nombre del archivo en una tabla de base de datos SQL.

Para esto utilizo el siguiente código:

using(SqlConnection connection = new SqlConnection("datasource or route"))
{

  connection.Open();

  using(SqlCommand cmd = new SqlCommand("SELECT idPic, namePicFile FROM DocPicFiles", connection))
  using (SqlDataReader reader = cmd.ExecuteReader())
  {

    if (reader != null)
    {
      while (reader.Read())
      {
        //picList IS AN ARRAY THAT Contains All the files names in a directory
        if (picList.Any(s => s.Contains(reader["namePicFile"].ToString())))
        {
          File.Copy("theFile  in the Directory or array picList",  "the destiny directory"+ ".jpg", false)
        }
      }
    }
  }
}

¿Hay alguna manera de que esto se pueda hacer en menos tiempo? Se necesita 1 hora para hacer eso, para 20.876 registros.

Respuestas a la pregunta(4)

Su respuesta a la pregunta