powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Тестирование производительности Adapter.Fill и заполнение списка
12 сообщений из 12, страница 1 из 1
Тестирование производительности Adapter.Fill и заполнение списка
    #34934937
Bill Great
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi! Проводилось тестирование связки DataGridView+BindingSource+
a) DataTable заполняемый SqlDataAdapter
б) Список List заполняемый SqlDataReader. Для эксперимента была взята достаточно "широкая" таблица - около 60 полей из которых половина varchar. Далее загружалось полследовательно 20 тыс записей, 50....и так до 300 тыс. записей. Мерились следующие показатели -
а) временя ExecudeReader()
б) время reader.Read() без занесения данных
в) заненисени
д) Adapter.Fill
Число записей менялось выражением top
Код: plaintext
select top  100000  * from myTable

Записей ExcecuteRead() reader.Read() Заполнение Adapter.Fill20 тыс 2 сек 2 сек50 тыс 1 сек 2 сек 5 сек 5 сек100 тыс 1 сек 4 сек 8 сек 11 сек125 тыс 2 мин 20 сек 9 сек 12 сек 2 мин 31 сек150 тыс 2 мин 20 сек 10 сек 12 сек 2 мин 40 сек200 тыс 2 мин 20 сек 14 сек 17 сек 2 мин 42 сек
Самое удивительное скачок выполнения ExecuteReader
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 DateTime d1 = DateTime.Now;
string sqltext = "select top 50000 * from mytable";
using (SqlCommand cmd = new SqlCommand(sqltext, conn))
{
cmd.CommandTimeout =  300 ;

using (SqlDataReader read = cmd.ExecuteReader())
{
// здесь мерим сколько ExecuteReader выполняется
 DateTime d2 = DateTime.Now;
Кстати - как тут оформляют таблицы?
...
Рейтинг: 0 / 0
Тестирование производительности Adapter.Fill и заполнение списка
    #34934994
Фотография sashka304
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати - как тут оформляют таблицы?используют в качестве разделителя запятую
...
Рейтинг: 0 / 0
Тестирование производительности Adapter.Fill и заполнение списка
    #34935198
Bill Great
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sashka304Кстати - как тут оформляют таблицы?используют в качестве разделителя запятую

Записей ExcecuteRead() reader.Read() Заполнение Adapter.Fill20 тыс <1 сек <1сек 2 сек 2 сек50 тыс 1 сек 2 сек 5 сек 5 сек100 тыс 1 сек 4 сек 8 сек 11 сек125 тыс 2 мин 20 сек 9 сек 12 сек 2 мин 31 сек150 тыс 2 мин 20 сек 10 сек 12 сек 2 мин 40 сек200 тыс 2 мин 20 сек 14 сек 17 сек 2 мин 42 сек
...
Рейтинг: 0 / 0
Тестирование производительности Adapter.Fill и заполнение списка
    #34935206
Bill Great
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ещё добавление
1 Количество записей регулировалось через TOP, то есть
если нужно было 100000 записей то запрос был таков
select TOP 100000 * from mytable order by f1
2. Скачок в выполнении ExecuteReader() зависел от заполненности таблицы. Если поля varchar были заполнены то начинался раньше ( 60 000 записей) чем при выборки из таблицы где эти поля все были забиты длинными словами.
Скачок - это самое удивительное! Попробуйте сами!
...
Рейтинг: 0 / 0
Тестирование производительности Adapter.Fill и заполнение списка
    #34935227
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поверьте,смысл имеет в вашем тесте ,хотя ничего не имеет смысла тут.поэтому никто обсуждать это не желает.
...
Рейтинг: 0 / 0
Тестирование производительности Adapter.Fill и заполнение списка
    #34935322
Bill Great
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKповерьте,смысл имеет в вашем тесте ,хотя ничего не имеет смысла тут.поэтому никто обсуждать это не желает.
Коль уж вы написали - вы чем пользуетесь - списками или DataSet?
...
Рейтинг: 0 / 0
Тестирование производительности Adapter.Fill и заполнение списка
    #34936157
Думающий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bill Great
2. Скачок в выполнении ExecuteReader() зависел от заполненности таблицы. Если поля varchar были заполнены то начинался раньше ( 60 000 записей) чем при выборки из таблицы где эти поля все были забиты длинными словами.
Скачок - это самое удивительное! Попробуйте сами!
Не думали что скачек зависит исключительно от оперативной памяти? Может она кончилась, пошел своп, получили большее время на большей выборке.
...
Рейтинг: 0 / 0
Тестирование производительности Adapter.Fill и заполнение списка
    #34937556
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Адаптер читает данные тоже ридером. Разница в производительности м.б. из-за датасета. Перед вставкой данных в таблицу датасета проверяется соответствие вставляемых данных, сохраненным в датасете ограничениям - FK & constraints... Поэтому перед adapter.Fill() рекомендуется отключать эти ограничения...
...
Рейтинг: 0 / 0
Тестирование производительности Adapter.Fill и заполнение списка
    #34937806
Bill Great
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думающий Bill Great
2. Скачок в выполнении ExecuteReader() зависел от заполненности таблицы. Если поля varchar были заполнены то начинался раньше ( 60 000 записей) чем при выборки из таблицы где эти поля все были забиты длинными словами.
Скачок - это самое удивительное! Попробуйте сами!
Не думали что скачек зависит исключительно от оперативной памяти? Может она кончилась, пошел своп, получили большее время на большей выборке.
Подумаем вместе :-))) ExecuteReader() ещё ничего не скачал! Кстати сейчас посмотрю! Но скачок разителен!
...
Рейтинг: 0 / 0
Тестирование производительности Adapter.Fill и заполнение списка
    #34937841
Bill Great
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bill Great Думающий Bill Great
2. Скачок в выполнении ExecuteReader() зависел от заполненности таблицы. Если поля varchar были заполнены то начинался раньше ( 60 000 записей) чем при выборки из таблицы где эти поля все были забиты длинными словами.
Скачок - это самое удивительное! Попробуйте сами!
Не думали что скачек зависит исключительно от оперативной памяти? Может она кончилась, пошел своп, получили большее время на большей выборке.
Подумаем вместе :-))) ExecuteReader() ещё ничего не скачал! Кстати сейчас посмотрю! Но скачок разителен!
Нет! Я не вижу что бы память занималась!
...
Рейтинг: 0 / 0
Тестирование производительности Adapter.Fill и заполнение списка
    #34938234
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вам в форум по MS SQL SERVER надо. вам сразу ,укажут ,и вы потеряете весь пыл разбираться . а то у вас больше эмоций,чем смысла :)
...
Рейтинг: 0 / 0
Тестирование производительности Adapter.Fill и заполнение списка
    #34938395
Bill Great
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKвам в форум по MS SQL SERVER надо. вам сразу ,укажут ,и вы потеряете весь пыл разбираться . а то у вас больше эмоций,чем смысла :)
Щас попробуем!
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Тестирование производительности Adapter.Fill и заполнение списка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]