Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
 Аватар для HectorPrima
716 / 473 / 258
Регистрация: 19.12.2014
Сообщений: 1,801

Как работать с большой БД

19.12.2014, 17:35. Показов 1459. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Решил перейти на С# с другого языка программирования. Работаем с MS SQL, что приводит нас к ADO.NET
Много читал и смотрел уроков в сети но так и не смог определиться – как работать со своей БД. Почти все примеры что я видел, мелкие телефонные справочники и программы небольшим количеством таблиц/записей. Загрузить такие объемы данных в память, в DataSet не проблема. У меня же стоит вопрос о работе с БД 10-50 Гб с ~150 таблицами.
Когда в программе один DataSet и небольшое количество данных - примерно понятно как все работает. В моем случае я начинаю теряться.

Один DataSet на всю программу (как обычно делают) опишет горы почти никогда не нужных в работе полей + нужно все данные закачать в него. Только закачав все данные в DataSet через адаптеры, я смогу потом в нескольких одинаковых гридах получать разные выборки данных. Как бы не подходит.

Работать с напрямую через DataReader и команды кажется придется писать огромное количество кода на каждое действие. Тоже не вариант.

Как то додумался до такого:

В окне с DataGridView создаю DataSet. Создаю таблицы адаптеры и т.д. Связываю DataGridView через DataView или через BindingSource с таблицей и работаю. Соответственно каждое открытое окно (к примеру справочника) с DataGridView сможет получить свой набор данных по фильтру или за период.
Редактирование данных всегда происходит в форме. Под формой я понимаю окно с текст боксами и кнопками OK, Cancel в минимальном варианте.
Передаем туда как то datasource для связи с TextBox и DataSet для того что бы можно было подгрузить дополнительные данные, типа выпадающие списки и т.д.
По нажатию OK в простейшем случае делаем Update и возвращаем DialogResult.OK
Как то так.

Ну и собственно вопрос, я в правильном направлении двигаюсь?
Если да то, как правильно реализовать передачу DataSet и т.д. между классами?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.12.2014, 17:35
Ответы с готовыми решениями:

Как работать с большой базой данных?
Добрый день. Бэк java+spring. БД hbase через apache phoenix. В базе 10млн записей. С фронта приходит 10.000 идентификаторов записей...

Как работать с большой таблицей если диапазон значений располагается не по столбцам, а по строкам
Есть огромная таблица с данными. В первом столбце значения, которые выбираются, при этом в другой ячейке, должен появится выпадающий...

Работать СисАдмином - большой риск перед законом?
Здравствуйте! Есть ли здесь админы которые ищут работу админом или уже нашли, вопрос собственно такой что обходите ли вы стороной компании...

4
 Аватар для Монфрид
1245 / 1055 / 293
Регистрация: 07.03.2012
Сообщений: 3,246
20.12.2014, 10:47
Цитата Сообщение от HectorPrima Посмотреть сообщение
Работаем с MS SQL, что приводит нас к ADO.NET
что мешает использовать entityFramework вместо ado.net? (которым при наличии ef (linq2sql), никто не пользуется уже года 3).
В любом случае, у вас какие то странные подходы к извлечению данных из бд. Никому сразу данные из всех таблиц не нужны никогда. Будь то ef, или ado.net, выгружать 15гб данных неверно
0
 Аватар для HectorPrima
716 / 473 / 258
Регистрация: 19.12.2014
Сообщений: 1,801
20.12.2014, 12:38  [ТС]
Цитата Сообщение от Монфрид Посмотреть сообщение
что мешает использовать entityFramework вместо ado.net? (которым при наличии ef (linq2sql), никто не пользуется уже года 3).
Т.е. вы хотите сказать что ADO.NET устарел и нужно ориентироваться на entityFramework?

Цитата Сообщение от Монфрид Посмотреть сообщение
В любом случае, у вас какие то странные подходы к извлечению данных из бд. Никому сразу данные из всех таблиц не нужны никогда. Будь то ef, или ado.net, выгружать 15гб данных неверно
Я писал что если один глобальный DataSet то для отображения разных выборок данных нужно загрузить всю таблицу в DataSet. Разве не так?
0
 Аватар для Монфрид
1245 / 1055 / 293
Регистрация: 07.03.2012
Сообщений: 3,246
20.12.2014, 15:34
Цитата Сообщение от HectorPrima Посмотреть сообщение
что ADO.NET устарел и нужно ориентироваться на entityFramework?
да, используйте ef
Цитата Сообщение от HectorPrima Посмотреть сообщение
нужно загрузить всю таблицу в DataSet
зачем её грузить если все записи не нужны пользователю единовременно?
0
 Аватар для HectorPrima
716 / 473 / 258
Регистрация: 19.12.2014
Сообщений: 1,801
20.12.2014, 15:42  [ТС]
Цитата Сообщение от Монфрид Посмотреть сообщение
зачем её грузить если все записи не нужны пользователю единовременно?
Тогда я все таки, что то не понимаю наверное. Я думал что в DataSet грузится вся таблица а потом с помощью к примеру DataView я в гриде показываю нужные мне записи. И так для каждого грида. Что бы каждый грид мог свое иметь логично что в DataSet должны быть все записи.
Ладно. Будем читать дальше про EF.

Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.12.2014, 15:42
Помогаю со студенческими работами здесь

Под большой нагрузкой кулер перестает работать на максимум
Здравствуйте. Пользуюсь ноутбуком от DNS, установлен процессор Intel Core i5-3230M. Изложу суть проблемы. При высокой нагрузке,...

Может ли при большой нагрузке (чрезмерно большой) на определенные участки тела, происходить потемнение кожи на этих участках?
Может ли при большой нагрузке (чрезмерно большой) на определенные участки тела, происходить потемнение кожи на этих участках, от сильного...

может ли купленная мною GTX460 работать к примеру не как должна работать GTX460 а как видюха по хуже?
Ребята, помогите пожалуйста в таком вопросе! Взял видеокарту Gainward GTX460 1Gb GS, так как я не давно за компом и всех вещей не знаю,...

Как может сервер-сайд код работать или не работать на конкретном компе?
Всем привет! Вот такая проблема. Есть сайт, все работает ок, но - один из компов имеющий Win98 и IE6.0 and service pack 1 работает очень...

Как работать с указателями и как работать с ссылками
Я в книге дочитал до темы указатели и ссылки, не понимаю как работать с указателями и как работать с ссылками. Я прочитал понятия я понимаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Функция установки текстового статуса в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru