Я использую класс OleDbDataAdapter для получения данных из файла Access (.mdb).OleDbDataAdapter Fill метод плохой производительности
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Environment.CurrentDirectory+"\\Data.mdb;Jet OLEDB:Database Password=pass");
OleDbCommand com = new OleDbCommand(query, con);
DataTable dt = new DataTable();
con.Open();
OleDbDataAdapter oda = new OleDbDataAdapter(com);
oda.Fill(dt);
oda.Dispose();
com.Parameters.Clear();
con.Close();
return dt;
Проблема заключается в том, что при отладке я узнал, oda.Fill(dt)
занимает очень много времени для выполнения. (около 10 секунд)
У меня есть 50 000 записей в базе данных, и мне нужно только получить 1 строку.
Пожалуйста, помогите. Заранее спасибо.
Каков ваш запрос? У вашей таблицы есть индексирование или что-то еще? –
Если вы используете 'DataReader', вы можете читать только первую строку и не иметь дело с другими записями, которые вам не нужны. – Hambone
это мой запрос: 'Выберите mname, received_date, measure_date, height, weight, calory, pbf_rate, std_weight, fat from member_data где id_number = 1000' –