@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