I never used the Database>Save Table option.  Actually I didn't know it existed till reading this post, so I wrote a bunch of my own functions of common tasks.  While I feel they are slow, they at least can boast speeds better than anything in this thread.
Here's my BulkInsert function:
//Insert Table to Database..Table --assumes ncols matches
BulkInsert = function({db, dbTable, dt}, {Default Local},
       //db - database connection
       //dbTable = database table
       //dt - JMP datatable
       
       numCols = NCols(dt);
       numRows = NRows(dt);
       for(i=1, i<=numRows, i++,
              valuesList = {};
              for(j=1, j<=numCols, j++,
                     If(isDate(column(dt, j)),
                           insert into(valuesList, char(Format(column(dt, j)[i], "ddMonyyyy h:m:s")))
                     ,
                           insert into(valuesList, column(dt, j)[i])
                     );
              );
              valuesText = substitute(char(valuesList), "{", "(", "}", ")", "\!"", "'");
              Substitute Into(valuesText, ".,", "NULL,");
              
              SQL_string = "Insert Into " || dbTable || "\!N" ||
              "Values " || valuesText;
              Execute SQL(db, SQL_string);
       );
);
You'll need the isDate function I wrote that you can find here: Is there an easy way to know if a column is Date/Time?
Or you can comment out that portion of the code if you don't have any date/time columns.