|
|
|
Отображение большого количества записей (более 5К)
|
|||
|---|---|---|---|
|
#18+
Использую odbc-компоненты, DataGrid для отображения заполненного DataSet ( в DataGrid 1 TableStyle для одной таблице в DataSet-е ). При кол-ве записей более 2000 вызов dataadapter.fill( dataset ) - т.е. последующее заполнение DataGrid исполняется порядка 10 сек!!! А последующие команды на фильтрацию данных, т.е. DataView.Filter = "condition" тормозят еще больше. Есть механизмы ускорения? где bottleneck процесса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 15:20 |
|
||
|
Отображение большого количества записей (более 5К)
|
|||
|---|---|---|---|
|
#18+
@mastaИспользую odbc-компоненты, DataGrid для отображения заполненного DataSet ( в DataGrid 1 TableStyle для одной таблице в DataSet-е ). При кол-ве записей более 2000 вызов dataadapter.fill( dataset ) - т.е. последующее заполнение DataGrid исполняется порядка 10 сек!!! А последующие команды на фильтрацию данных, т.е. DataView.Filter = "condition" тормозят еще больше. Есть механизмы ускорения? где bottleneck процесса? Сколько оперативки на компьютере? Какой размер одной записи? У меня при работе с сотнями тысяч записей в DataGrid никаких существенных тормозов нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 15:50 |
|
||
|
Отображение большого количества записей (более 5К)
|
|||
|---|---|---|---|
|
#18+
оперативки 512, на одну запись ~ 1Kb, база MSSQL, у вас более 100К записей и никаких тормозов? какая субд? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 18:18 |
|
||
|
Отображение большого количества записей (более 5К)
|
|||
|---|---|---|---|
|
#18+
@mastaоперативки 512, на одну запись ~ 1Kb, база MSSQL, у вас более 100К записей и никаких тормозов? какая субд? SQL Server 2000, но он тут не при чем - DataSet существует на локальной машине. У меня 300 тыс записей по 1.5Kb отображаются без тормозов. Попробуй запустить приложение на другой машине, потому что я не вижу никаких объективных причин чтобы DataGrid с двумя тысячами записей сильно тормозил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 18:44 |
|
||
|
Отображение большого количества записей (более 5К)
|
|||
|---|---|---|---|
|
#18+
думаю, для ясности необходимо конкретика. 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 .... } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 18:58 |
|
||
|
Отображение большого количества записей (более 5К)
|
|||
|---|---|---|---|
|
#18+
Paging нужно делать. Поисчите на форуме, недавно обсуждалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 19:54 |
|
||
|
Отображение большого количества записей (более 5К)
|
|||
|---|---|---|---|
|
#18+
Relic HunterPaging нужно делать. Поисчите на форуме, недавно обсуждалось. paging,pagesize настройки для web-datagrid, в данном случае в разработке windows.forms.datagrid ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 20:57 |
|
||
|
Отображение большого количества записей (более 5К)
|
|||
|---|---|---|---|
|
#18+
@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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2005, 00:42 |
|
||
|
|

start [/forum/topic.php?fid=17&fpage=114&tid=1353562]: |
0ms |
get settings: |
7ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
28ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
23ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 271ms |

| 0 / 0 |
