性能について質問です。これが私のシナリオです。
私はMYSQLデータベースと、クエリの基準に従って、あるテーブルから別のテーブルにレコードを時々移動するアプリケーションを持っています。これが行われる方法は次のとおりです。
foreach(object obj in list)
{
string id = obj.ToString().Split(',')[0].Trim();
string query = " insert into old_records select * from testes where id='" +
id + "';" + " delete from testes where id='" + id +"'";
DB _db = new DB();
_db.DBConnect(query);
これは私がデータベースに接続する方法です:
DataTable _dt = new DataTable();
MySqlConnection _conn = new MySqlConnection(connectionString);
MySqlCommand _cmd = new MySqlCommand
{
Connection = _conn,
CommandText = query
};
MySqlDataAdapter _da = new MySqlDataAdapter(_cmd);
MySqlCommandBuilder _cb = new MySqlCommandBuilder(_da);
_dt.Clear();
try
{
_conn.Open();
_cmd.ExecuteNonQuery();
_da.Fill(_dt);
}
catch (MySqlException ex)
{
Console.WriteLine(ex.Message);
}
finally
{
if (_conn != null) _conn.Close();
}
return _dt;
私の質問は、テーブルに 4000 行ほどあり、すべてのレコードを 1 つのテーブルから別のテーブルに、特にネットワークを介して移動するには多くの時間がかかるということです。これをより速くする方法はありますか?
私はいくつかの読書を行ってきましたが、データアダプター、リーダー、セット、テーブルなど、DB からのデータを処理するためのオプションがいくつかあります。この場合、どちらが速いですか?別の方法を使用する必要がありますか?