Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676

Запрос данных из нескольких таблиц при больших обьемах

28.09.2020, 14:07. Показов 4279. Ответов 64
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!

есть два варианта выборки либо посредством EntityFramework

C#
1
2
3
var companies = context_.Nodes
                    .Include(c => c.MetaDatas) 
                    .ToList();
C#
1
2
3
4
5
6
7
8
9
10
11
12
public class MetaData
    {
        [Key]
        public int Id { get; set; }
 
        [Index, Required]
        public int ConfigerationNodeId { get; set; }
        public ConfigerationNode ConfigerationNode { get; set; }
 
        [Index, Unique, Required]
        public string Name { get; set; }
    }
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class ConfigerationNode
    {
        [Key]
        public int Id { get; set; }
        [Unique, Index, Required]
        public string Name { get; set; }
        [Required]
        public bool IsRequisites { get; set; }
        [Required]
        public bool IsTableParts { get; set; }
        [Required]
        public bool IsForms { get; set; }
        [Required]
        public bool IsLayouts { get; set; }
        [Required]
        public bool IsValues { get; set; }
        [Required]
        public bool IsMeterings { get; set; }
        [Required]
        public bool IsResources { get; set; }
 
        public List<MetaData> MetaDatas { get; set; }
    }
либо запрашивать первую таблицу и в цикле в каждой интеграции запрашивать данные из второй?

что будет менее затратно по времени, менее затратно по ресурсам , и более правильным и удобным?

Добавлено через 17 минут
Забыл написать использую SQLITE

Добавлено через 3 часа 42 минуты
если я верно понимаю такие реализации делают запрос к бд с левым и или правым соединением?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.09.2020, 14:07
Ответы с готовыми решениями:

Запрос данных из нескольких таблиц
Существует несколько таблиц, что будет работать быстрее и менее нагружать сервер? 1) Несколько небольших параллельно запущенных...

Посоветуйте принтер для печати в больших обьемах
Привет подскажите принтер лазерный чтобы печатать в день 100 листов примерно он должен быстро печатать он должен быть не дорогим и...

Запрос на вывод данных из нескольких таблиц
Помогите, пожалуйста. Пытаюсь вывести запрос на вывод данных из 4 талиц Вот код &lt;?php /* Соединяемся с базой данных */ ...

64
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
28.09.2020, 17:34  [ТС]
Студворк — интернет-сервис помощи студентам
кеш контекста? Он не используется,
Сборщик муссора не сработал выходит?

Просто убил класс где запрашивал данные а памяти как было заюзано 2гб так и осталось (
0
Эксперт .NET
 Аватар для Usaga
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,039
28.09.2020, 17:52
Sanya2019, сборщик мусора к EF отношения не имеет.
0
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
28.09.2020, 18:07  [ТС]
Тогда куда аператива слилась?
0
Эксперт .NET
 Аватар для Usaga
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,039
28.09.2020, 18:08
Sanya2019, вопрос не совсем понятен. Оператива слилась под данные, которые вы запросили из базы данных.
0
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
28.09.2020, 18:47  [ТС]
Отлично а как ее вернуть после того как я поюзал данные:-)
0
Эксперт .NET
 Аватар для Usaga
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,039
29.09.2020, 05:24
Sanya2019, потерять ссылку на данные) GC потом память освободит.
1
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
29.09.2020, 12:15  [ТС]
подскажите пожалуйста нельзя ли модель сделать динамической
я имею в виду то что модель будет храниться в другой таблице (даже не знаю как это объяснить (

C#
1
2
3
4
5
6
7
public class [НазваниеМодели  из файла или другого источника]
{
 
    public [Тип, название из файла или другого источника]{ get; set; }
 
   
}
можно ли реализовать такую модель?

Добавлено через 2 минуты
или скажем так

C#
1
2
3
4
5
6
7
public class Referense_[НазваниеМодели  из файла или другого источника]
{
    Вообзе у всех таблицу меня будут предопределенные свойства это ИД, Наименование, Код
    [public, private] [Описание типа] [Название свойства]{ get; set; }
 
   
}
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
29.09.2020, 12:18
Sanya2019, не пытайтесь архитектуру 1С подвести под свою, вы же не 1С пилите. А так - курите рефлексию.
0
Эксперт .NET
 Аватар для Usaga
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,039
29.09.2020, 12:36
Sanya2019, мне сложно ответить на этот вопрос) Опишите задачу более подробно.
0
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
29.09.2020, 12:44  [ТС]
Цитата Сообщение от Почтальон Посмотреть сообщение
Sanya2019, не пытайтесь архитектуру 1С подвести под свою, вы же не 1С пилите. А так - курите рефлексию.
я пытаюсь реализовать нечто похожее на 1С

я хочу сделать следующее

Создать таблицу как в 1С

Config в ней будет описываться структура всех таблиц базы данных Справочники их рекфизиты , формы, модули, Документы и их метаданные и т д

DBSchema тут информацию описать структуры (Длина точность и т д всех реквизитов и положение этих реквизитов на формах

сами таблицы и их дочерние таблицы

для этого мне необходимо понимать как сделать так тчо бы можно было собирать эти таблицы и управлять ими

Добавлено через 6 минут
Цитата Сообщение от Usaga Посмотреть сообщение
мне сложно ответить на этот вопрос) Опишите задачу более подробно.
допустим у нас есть три таблицы

(буду писать их имена на русском дабы понятнее было)

Таблица "Конфигурация"

Таблица "Схема конфигурации"

Таблица "Справочник Товары"

Тогда когда мы создали этот справочник товары по умолчанию мы сразу при генерации его создаем три поля

ИД (Уникальный Id (36 символов тип число)) , Нименование (По умолчанию 20 симловол тип строка), Код(тип строка 15 символов)


далее мы можем добавить еще сколько нам необходимо полей и назначить им длину и тип

когда мы сохраняем конфигурацию создается эта самая таблица

Таблица "Справочник Товары"

а в месте с ней в таблицы Таблица "Конфигурация"

Таблица "Схема конфигурации" вся необходимая информация о этой таблице что мы создали

например

Таблица "Схема конфигурации" и есть некий набор моделей базы данных

а Таблица "Конфигурация" просто массив всех узлов таблиц тоесть в ней древовидная структура в виде массива созранена

Конфигурация -
Справочники -
- Товары
- Склады

так вот как мне данные из таблицы Таблица "Схема конфигурации" превратить в модели
0
Эксперт .NET
 Аватар для Usaga
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,039
29.09.2020, 12:48
Цитата Сообщение от Sanya2019 Посмотреть сообщение
так вот как мне данные из таблицы Таблица "Схема конфигурации" превратить в модели
Никак. Модели описываются в коде и должны быть известны заранее. А у вас схема данных определяется во время работы.

В таком случае нужно использовать DataTable или руками аналогичный класс описать. Он содержит данные и информацию о структуре таблицы и типах данных всех полей записи. Работать с такой штукой не удобно, но если схема данных динамическая, то иначе никак.
0
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
29.09.2020, 12:53  [ТС]
в общем как это делает тот же SQLITESTUDIO

Он же изночально ничего не знает о структуре базы верно?

но при открытии он ее инитиализирует и ка кто же создает модели для себя (при этом я понимаю что он не юзает EF)

EF я использую только что бы хоть как то научиться работать с с БД

Добавлено через 2 минуты
Цитата Сообщение от Usaga Посмотреть сообщение
Никак. Модели описываются в коде и должны быть известны заранее. А у вас схема данных определяется во время работы.
В таком случае нужно использовать DataTable или руками аналогичный класс описать. Он содержит данные и информацию о структуре таблицы и типах данных всех полей записи. Работать с такой штукой не удобно, но если схема данных динамическая, то иначе никак.
вот я и пытаюсь понять каким подходом воспользоваться так как начал с EF и понимаю что он вообще мне не подходит ))))))

мне нужно напрямую с БД общаться это я понимаю но не понимаю как мне инициализировать структуру БД перед работой с ней )

Добавлено через 2 минуты
может подскажете ссылки на проекты (я ничего подобного найти не могу)

где скажем реализован самый простой механиз

открытия БД

поднятия ее сруктуры и вывод структуры в панель отедльную а на другой панеле ее данные

мне бы понять как вывести и довольно быстро дерево структуры в treeview

врнее понять как ее вообще правильно туда засунуть

так как просто сделать я могу могу получит ьсписок таблиц их полей и их типы и т. д и на основе этих данных в цикле заполнить дерево но это не верно

а я бы хотел понимать ка кэто сделать правильно
0
Эксперт .NET
 Аватар для Usaga
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,039
29.09.2020, 13:08
Sanya2019, EF вам тут решительно не походит. Изменять структуры таблиц базы вы можете используя SQL-команды самой СУБД. Так же как и читать структуру таблиц.

А саму информацию о стрктуре вы можете хранить в классе DataTable. Или аналогичный написать. Посмотрите как с этим классом работают вкупе с базами данных.
0
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
29.09.2020, 13:35  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
А саму информацию о стрктуре вы можете хранить в классе DataTable.
дайте пожалуйста пример если есть возможность

Добавлено через 2 минуты
я просто что то в тупняк впал ))

DataTable сюда ж данные вываливаются?

а не структура

Добавлено через 1 минуту
дагнал что Вы предлогаете!

ок выходит

что весь процесс с таблицами я должен описать полностью сам?

и выходит что мне полюбому придется заполнять treeview структурой циклами так?
0
Эксперт .NET
 Аватар для Usaga
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,039
29.09.2020, 13:39
Цитата Сообщение от Sanya2019 Посмотреть сообщение
что весь процесс с таблицами я должен описать полностью сам?
Да

Цитата Сообщение от Sanya2019 Посмотреть сообщение
и выходит что мне полюбому придется заполнять treeview структурой циклами так?
Нет. Этот момент остаётся прежним. Данные получайте по мере надобности.
0
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
29.09.2020, 13:48  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Нет. Этот момент остаётся прежним. Данные получайте по мере надобности.
да там данных этих кот наплакал имеет ли смыл их грузить поэтапно?

к таму же когда там куча уровней

я думаю верно было бы сразу их залить при инитиализации бд
а не собирать постоянно данные из таблиц
0
Эксперт .NET
 Аватар для Usaga
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,039
29.09.2020, 13:59
Sanya2019, ну, если данных немного, то можно и сразу выгрузить.
0
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
29.09.2020, 14:10  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Sanya2019, ну, если данных немного, то можно и сразу выгрузить.

подскажите пожалуйста как сделать данные вернее структуру данных такую что бы можно было залить ее за один раз

пусть я ее зашифрую в какую то строку и буду хранить в БД

смысл в том что бы быстро поднимать данные

какую структуру данных мне нужно писать в бд что бы затем легко поднять эти данные в treeview


понятно что для например datagrid сруктура будет другой )

Добавлено через 1 минуту
если я создаю контрол на форме treeview затем сразу в студии наполняю его данными (деревом) в каком виде он предстовляет данные эти?

веть моно е их в том же виде сохранит ьв бд? и затем аналогично подсунуть при старте программы?
0
Эксперт .NET
 Аватар для Usaga
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,039
29.09.2020, 14:11
Sanya2019, обычную структуру для такого рода данных. На каждый элемент дерева своя запись с внешним ключом на родительскую запись. Не надо в строку сериализовывать ничего.
0
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
29.09.2020, 14:19  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("Узел0");
            System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("Узел4");
            System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("Узел5");
            System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("Узел6");
            System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("Узел7");
            System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("Узел1", new System.Windows.Forms.TreeNode[] {
            treeNode2,
            treeNode3,
            treeNode4,
            treeNode5});
            System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("Узел2");
            System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("Узел8");
            System.Windows.Forms.TreeNode treeNode9 = new System.Windows.Forms.TreeNode("Узел9");
            System.Windows.Forms.TreeNode treeNode10 = new System.Windows.Forms.TreeNode("Узел10");
            System.Windows.Forms.TreeNode treeNode11 = new System.Windows.Forms.TreeNode("Узел3", new System.Windows.Forms.TreeNode[] {
            treeNode8,
            treeNode9,
            treeNode10});
нашел ( такие данные фиг сохранишь в БД (

Добавлено через 3 минуты
я думал что у treewiew есть что то подобное

datagrid.datasourse (вроде или что то там) :-)

думал что можно как то сразу указать источник данных и все
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.09.2020, 14:19

Запрос на выборку данных из нескольких таблиц в одну
Здравствуйте! В общем, проблема такая.. Нужно мне составить отчет, который содержит данные из нескольких таблиц. С этим проблем нет,...

SQL запрос в VBA на выборку данных из нескольких таблиц mdb
Добрый день. Есть база mdb с несколькими таблицами: Регистр - общая таблица с хранением операций деятельности предприятия. Поля...

Запрос на выборку из таблицы при совпадении с данными нескольких таблиц
В последнее время очень много почерпнул из форума. И снова обращаюсь к гуру с вопросом: Запрос на выборку из таблицы при совпадении с...

Медленный запрос для 2 больших таблиц
Есть 2 таблицы Table1 (1 млн записей) и Тable2 (10 млн записей) Свзяь между таблицами один ко многим. Нужно вытащить определнное...

Объединение данных из нескольких таблиц одинаковых таблиц
Добрый день! Помогите с запросом есть у меня таблицы которые имеют одинаковую структуры полей Есть вариант упростить запрос, если у...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru