![]() |
|
Модераторы: gambit |
![]()
|
|
| Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: нет Всего: 62 |
На собеседовании в трансконтинентальной корпорации мирового масштаба меня спросили:
Если по запросу передаются данные очень большого размера, то что делать? Например, как передать на КПК 10Gb данных? |
|||
|
||||
| nikitao |
|
|||
![]() Кот-программист ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1206 Регистрация: 30.8.2005 Где: Спб Репутация: 1 Всего: 26 |
Через протокол FTP вроде как. А прчем тут NET (или это в контексте)?
-------------------- Жизнь - печальная штука. |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 2 Всего: 186 |
Модератор: Название темы должно отражать ее суть!
А вообще, не въехал |
|||
|
||||
| Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: нет Всего: 62 |
Вот в том то и прикол! Как в КПК вообще столько поместится? Допустим мы хотим получить данные из базы данных на удалённом сервере. Устанавливаем соединение, пишем запрос, отправляем на сервер и... он возвращает 10 Gb данных... на КПК!!! Все эти данные надо показать в гриде, но для этого надо иметь широченный канал и огромный размер оперативки на КПК, ведь ADO.NET всё держит в памяти. Главное что решение этой проблемы ЕСТЬ! Это сообщение отредактировал(а) Ch0bits - 16.5.2006, 19:01 |
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 4 Всего: 61 |
Не может быть, чтобы показать все сразу. Скорее всего речь идет о том, чтобы эмулировать показ всего, а на самом деле иметь виртуальный список, который подгружает по мере необходимости новые записи с сервера, и выгружает то, что уже не видно. Тада хоть 100 ГБ |
|||
|
||||
| Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: нет Всего: 62 |
У меня ещё была идея, что данные с сервера можно получить в xml и сохранить их на диске, а потом читать фрагментами с помощью XmlDocument. Но это тоже какая-то сомнительная идея.
|
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 2 Всего: 186 |
Интересно, как ты на диске сохранишь XML в 10 ГБ.
|
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Грузить только те записи, которые нужны, TOP-ом по 100 записей за раз. Чтобы выдрать 100 записей из середины таблицы, например после Id=1000, делаем так: SELECT TOP 100 ... WHERE Id > 1000 ORDER BY Id, типа того.
Добавлено @ 11:24 З.Ы, а вообще-то при больших объёмах данных используют датаридеры вместо датасетов. -------------------- ![]() |
|||
|
||||
| Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: нет Всего: 62 |
mr.DUDA
О великий учитель хакеров! В очередной раз падаю пред тобой на колени! |
|||
|
||||
| Softaz |
|
|||
![]() wasm ![]() ![]() Профиль Группа: Участник Сообщений: 373 Регистрация: 16.1.2006 Репутация: 4 Всего: 16 |
dataAdapter.Fill(dataSet, (pageNum - 1) * pageSize, pageSize, tableName);
pageSize –число строк на странице; pageNum – номер страницы, начиная с 1. Либо через TOP (* заменить на нужные поля) SELECT * FROM tableName WHERE keyName IN (SELECT TOP pageSize keyName FROM tableName WHERE keyName IN (SELECT TOP pageSize * pageNum keyName FROM tableName ORDER BY keyName) ORDER BY keyName DESC) ORDER BY keyName Только эти вложенные запросы не эффективны при больших таблицах (тысячи строк) Более подробно можно найти здесь: http://dotnet2themax.com/goto/programmingvbnet.aspx в книге Programming Microsoft Visual Basic .NET -------------------- Разочарованный в .NET |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
А можно использовать
|
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 2 Всего: 186 |
||||
|
||||
| Softaz |
|
|||
![]() wasm ![]() ![]() Профиль Группа: Участник Сообщений: 373 Регистрация: 16.1.2006 Репутация: 4 Всего: 16 |
Имелась ввиду перегрузка метода
Пытался сделать (ACCESS) - нету Может альтернатива есть -------------------- Разочарованный в .NET |
|||
|
||||
| aXisdn |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 10.6.2006 Репутация: нет Всего: нет |
вроде бы курсоры для этого придуманы |
|||
|
||||
| Softaz |
|
|||
![]() wasm ![]() ![]() Профиль Группа: Участник Сообщений: 373 Регистрация: 16.1.2006 Репутация: 4 Всего: 16 |
В MSSQL 2005 появилясь функция Row_Number() для постраничного извлечения данных.
-------------------- Разочарованный в .NET |
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 4 Всего: 61 |
||||
|
||||
| Softaz |
|
||||||
![]() wasm ![]() ![]() Профиль Группа: Участник Сообщений: 373 Регистрация: 16.1.2006 Репутация: 4 Всего: 16 |
Пожалуйста, только лучше сделать так (т.к. Row_Number() влияет на _итоговые_ строки после выборки, поэтому тот пример малость мертвый):
Добавлено @ 23:51 Вот еще несколько интересных функций:
Все примеры делались на базе AdventureWorks (входит в MSSQL2005). Rank() - равным значениям присваиваются одинаковые номера; Dense_Rank() - тоже, что и Rank() плюс удаляет проб. в посл-ти номеров; NTile() - разбивка группы строк на одинаковые или близкие части, а если не может, включает большее число строк в группы с меньшими номерами. Результат того запроса:
-------------------- Разочарованный в .NET |
||||||
|
|||||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |