Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Отображение большого количества записей (более 5К) / 8 сообщений из 8, страница 1 из 1
11.11.2005, 15:20
    #33373967
@masta
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение большого количества записей (более 5К)
Использую odbc-компоненты, DataGrid для отображения заполненного DataSet
( в DataGrid 1 TableStyle для одной таблице в DataSet-е ). При кол-ве записей более 2000 вызов dataadapter.fill( dataset ) - т.е. последующее заполнение DataGrid исполняется порядка 10 сек!!! А последующие команды на фильтрацию данных, т.е. DataView.Filter = "condition" тормозят еще больше. Есть механизмы ускорения? где bottleneck процесса?
...
Рейтинг: 0 / 0
11.11.2005, 15:50
    #33374065
k1ng
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение большого количества записей (более 5К)
@mastaИспользую odbc-компоненты, DataGrid для отображения заполненного DataSet
( в DataGrid 1 TableStyle для одной таблице в DataSet-е ). При кол-ве записей более 2000 вызов dataadapter.fill( dataset ) - т.е. последующее заполнение DataGrid исполняется порядка 10 сек!!! А последующие команды на фильтрацию данных, т.е. DataView.Filter = "condition" тормозят еще больше. Есть механизмы ускорения? где bottleneck процесса?
Сколько оперативки на компьютере? Какой размер одной записи? У меня при работе с сотнями тысяч записей в DataGrid никаких существенных тормозов нет.
...
Рейтинг: 0 / 0
11.11.2005, 18:18
    #33374435
@masta
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение большого количества записей (более 5К)
оперативки 512, на одну запись ~ 1Kb, база MSSQL, у вас более 100К записей и никаких тормозов? какая субд?
...
Рейтинг: 0 / 0
11.11.2005, 18:44
    #33374497
k1ng
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение большого количества записей (более 5К)
@mastaоперативки 512, на одну запись ~ 1Kb, база MSSQL, у вас более 100К записей и никаких тормозов? какая субд?
SQL Server 2000, но он тут не при чем - DataSet существует на локальной машине. У меня 300 тыс записей по 1.5Kb отображаются без тормозов. Попробуй запустить приложение на другой машине, потому что я не вижу никаких объективных причин чтобы DataGrid с двумя тысячами записей сильно тормозил.
...
Рейтинг: 0 / 0
11.11.2005, 18:58
    #33374520
@masta
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение большого количества записей (более 5К)
думаю, для ясности необходимо конкретика.
1) таблица по которой идет запрос содержит несколько foreign keys и запрос соответствено c 2,3 - inner join - может ли это настолько торомзить?
2) данные связаны с datagrid через dataview который в свою очередь с dataset
3) на старте сразу же используется сортировка через dataview.sort
сразу же вопрос (алогичный совершенно, но в такой ситуации цепляешся за все)
есть ли отличие dataadapter.fill( dataset) от четкого указания
dataadapter.fill( dataset, "tablename") если dataset типизированный, т.е. создан визардом на основе выборки { dsTableDataset : DataSet .... }
...
Рейтинг: 0 / 0
11.11.2005, 19:54
    #33374602
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение большого количества записей (более 5К)
Paging нужно делать. Поисчите на форуме, недавно обсуждалось.
...
Рейтинг: 0 / 0
11.11.2005, 20:57
    #33374672
@masta
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение большого количества записей (более 5К)
Relic HunterPaging нужно делать. Поисчите на форуме, недавно обсуждалось.
paging,pagesize настройки для web-datagrid, в данном случае в разработке windows.forms.datagrid
...
Рейтинг: 0 / 0
12.11.2005, 00:42
    #33374806
k1ng
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение большого количества записей (более 5К)
@mastaдумаю, для ясности необходимо конкретика.
1) таблица по которой идет запрос содержит несколько foreign keys и запрос соответствено c 2,3 - inner join - может ли это настолько торомзить?
2) данные связаны с datagrid через dataview который в свою очередь с dataset
3) на старте сразу же используется сортировка через dataview.sort
сразу же вопрос (алогичный совершенно, но в такой ситуации цепляешся за все)
есть ли отличие dataadapter.fill( dataset) от четкого указания
dataadapter.fill( dataset, "tablename") если dataset типизированный, т.е. создан визардом на основе выборки { dsTableDataset : DataSet .... }
Джойны конечно же сильно тормозят, но это время выполнения выборки на сервере, которое никак не связано с работой с загруженными в DataSet данными на локальной машине.
Класс DataView и перегрузки метода Fill не влияют значительно на скорость работы. Я не встречал чтобы с 2 тысячами записей .NET Framework настолько сильно тормозил.
Чтобы ускорить заполнение DataSet можно использовать либо нетипизированный DataSet либо отключать проверку ограничений на время заполнения.
На старте используй сортировку не в DataView а в запросе (ORDER BY).
Оцени время выполнения каждой операции - заполнение DataSet, привязка DataGrid к DataSet, метод RowFilter DataView.
Если ничего не поможет, то действительно придется использовать paging, Relic Hunter я думаю имел в виду серверный курсор, а не WebDataGrid
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Отображение большого количества записей (более 5К) / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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