2015-12-05 4 views
0

Я использую следующий код для подключения к базе данных mysql удаленного доступа (через Интернет) и для заполнения возвращаемого результата datagrid. Это отлично работает, но для заполнения сетки требуется некоторое время, когда доступно около 200 или более строк. Я хочу знать, есть ли какие-либо корректировки, которые я должен сделать, чтобы сделать процесс более быстрым или что будет самой подходящей вещью, я должен сделать вещи более быстрыми.Увеличение производительности при извлечении данных из удаленной базы данных

тока кодирование

connection = new MySqlConnection(db_con_s); 
connection.Open(); 
sql = connection.CreateCommand(); 
sql.CommandTimeout = 5000; 
sql.CommandText = my_query; 
MySqlDataReader Reader1 = sql.ExecuteReader(); 

if (Reader1 != null && Reader1.HasRows) 
{ 
    while (Reader1.Read())          
    { 
      cv++; 
      dataGridView1.Rows.Add(cv,Reader1.GetString("l_id"), Reader1.GetString("l_code"),...............); 
      d1 += Reader1.GetDouble("l_amount"); 
    } 
} 
+0

Какое приложение использует данные? –

+0

У вас есть вызывные результаты? если у mysql есть поддержка подкачки, возможно, это поможет – chrisl08

+0

@The Sharp Ninja :: этот db является реплицированным ведомым локально запущенным небольшим приложением, и эта онлайн-база данных также используется только для просмотра информации, когда основной сервер недоступен. Я хочу отобразить всю информацию о кредитах персонала. –

ответ

0

Использование нумерацией страниц и принести 20/50 согласно вашему требованию и заполнить в своих grid.This данных улучшит производительность.

Также вы можете улучшить производительность запроса, индексируя данные в столбцах, на которых вы фильтруете данные. Как вы не предоставили SQL запрос, поэтому все столбцы, где положение должны быть проиндексированы

+0

Нет проблемы с запросом вообще. Есть что-то другое. когда я выполняю запрос непосредственно на удаленном сервере, он занимает меньше одной секунды. для выполнения qry. –

+0

Являются ли столбцы в таблице индексированными? Я подозреваю .... Также, пожалуйста, используйте разбиение на страницы, чтобы получить несколько результатов, если вам просто нужно отображать данные ... – Naruto

+0

Спасибо Наруто. Пагинация - это действительно вариант. Но я буду использовать его, если я не могу ускорить вещи до некоторого уровня без этого. –

2

Можете ли вы сделать что-то вроде:

DataTable dt = new DataTable(); 
dt.Load(Reader1); 

dataGridView1.DataSource = dt; 

И посмотрите, что улучшает производительность?

+0

Спасибо, я попробую с этим. Надежда иногда может помочь. –

Смежные вопросы