|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
Добрый день, товарищи! Прочитал много гугла, но внятного решения не нашел. Надеюсь вы сможете подсказать. На сервере SQL имеется табличка. 67 полей с типами Int, Binary(8), varchar(255), Decimal(31,15). Количество строк >5kk. Прирост данных ~30к в месяц. У меня стоит задача эту табличку вывести в DataGridView. Пробовал делать через DataSet и SqlDataReader. При любом из вариантов при сборке x86 приложения выхватываю OutOfMemory. При сборке x64 приложение выедает гигабайты оперативной памяти. Все данные при выгрузке приводятся к System.String. Общий принцип выгрузки такой: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Не покидает стойкое ощущение, что я что-то делаю неправильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 09:57 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
Oomel, вам точно на клиенте нужно отобразить сразу ВСЕ строки ? Посмотрите в сторону пейджинга, скуль его давно поддерживает. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 10:08 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
Можно не все. Суть в том, чтобы показать клиенту все данные из этой таблицы, удовлетворяющие фильтрам. Фильтры строятся по всем столбцам таблицы. Таблица представляет собой некий журнал событий, регистрирующей изменения в других таблицах. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 10:16 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
Oomel, Вы не слышите что вам пишут. На строке fill Вся база качается на клиента. Вам нужна пагинация. Видели такое? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 10:33 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
Oomel, Dataset такое не выдержит Datagridview в виртуальном режиме для начала ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 10:35 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
Petro123, Тупая пагинация - от бедности В msacess грид неплохо сделан ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 10:41 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
ИзопропилТупая пагинация - от бедности Во всех языках программирования (ЯП) с талами фигово. Увы. ИзопропилВ msacess грид неплохо сделан Ссылку? Не видел. Вообще, в net планформе должен быть)) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 10:46 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
Petro123талами С таблицами ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 10:47 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
Petro123, Я вполне услышал :). Но не сталкивался с таким подходом. У Вас, случаем, не найдется примера? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 10:47 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
Petro123Вся база качается на клиента. Вам нужна пагинация.Как пагинация поможет при фильтрации на клиенте? Фильтрация в этому случае должна быть на сервере. Качать готовый отфильтровайнный и сджойненный результат, а не пытаться на клиента всю базу перекачать - не для того СУБД придумывали, чтобы на клиенте все делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 10:56 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
Oomel Код: c# 1.
звездочка - вообще зло! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 10:57 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
Oomel, У меня табла от телерик. А запрос на нужную страничку: Queryable.Skip(номерСтранички.... NuGet....pagedList. ... Но я коллекционирую и другие варианты как и вы)). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 11:00 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
Shocker.ProPetro123Вся база качается на клиента. Вам нужна пагинация.Как пагинация поможет при фильтрации на клиенте? Фильтрация в этому случае должна быть на сервере. Качать готовый отфильтровайнный и сджойненный результат, а не пытаться на клиента всю базу перекачать - не для того СУБД придумывали, чтобы на клиенте все делать. Как пагинация мешает фильтрации? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 11:02 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
Petro123Как пагинация мешает фильтрации?Пагинация выполняется ПОСЛЕ фильтрации. Поэтому пагинация сама по себе не сможет уменьшить количество записей, передаваемых с сервера, если выполняется на клиенте. Так что фильтрацию надо выполнить на сервере, а пагинация - это уже второй вопрос ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 11:05 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
Shocker.Pro, Про работу на клиенте вы сами придумали. Я не говорил что работаю на клиенте с большими выборками. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 11:10 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
Shocker.ProПоэтому пагинация сама по себе не сможет уменьшить количество записей, передаваемых с сервера, если выполняется на клиенте. А кто говорит, что пейджинг на клиенте ??? Я отфильтровал данные на сервере и получил 1М строк. После этого использую пейджинг на сервере и уменьшаю количество строк передаваемых с сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 11:13 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
5 вариантов paging, выбирай: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 11:14 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
Shocker.Pro, При асинхронной загрузке можно и не ждать окончания фильтрации ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 11:14 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
Shocker.Pro, Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 11:15 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
Konst_One, Я бы еще версию скуля указал , для которой прокат пейджинг ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 11:16 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
Konst_One, Хранимка - привязка к одной субд. Малеееенькая ложка дёгтя.)) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 11:18 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
это просто пример, обёрнутый в ХП для удобства ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 11:19 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
Konst_Oneэто просто пример, обёрнутый в ХП для удобстваОК. А панель пейджинга в ГУИ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 11:21 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
какая панель? у меня вообще сейчас ангуляр ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 11:25 |
|
Большая выборка и DataSet
|
|||
---|---|---|---|
#18+
big-dukeА кто говорит, что пейджинг на клиенте ??? Я отфильтровал данные на сервере и получил 1М строк. После этого использую пейджинг на сервере и уменьшаю количество строк передаваемых с сервера.А кто говорит, что фильтрация на сервере? У ТС проблема именно с тем, что он неотфильтрованные данные не может получить в DataSet, ибо их много. Oomel Код: c# 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 11:25 |
|
|
start [/forum/topic.php?fid=20&msg=39624534&tid=1399431]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 328ms |
total: | 506ms |
0 / 0 |