powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / INSERT в большую таблицу
25 сообщений из 26, страница 1 из 2
INSERT в большую таблицу
    #32642676
koljan27
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При ведении большой таблицы БД (порядка 500 полей) как лучьше поступить:
1 писать запрос в query с параметрами
INSERT (p1,p2 .....p500)values(....)
2 написать хранимую процедуру и осуществлять вставку записей запуская ее с 500 параметрами
Приложение клиента, осуществляющего запись в БД, работает на
том же компе, что и сервер.

???
Будет ли разница в производительноси между 1 и 2 случаями?
Частота записи в таблицу от 2 до 5 раз в секунду
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32642772
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Убил бы за такую архитектуру БД.
Неужели фантазии не хватает разбить громадину на несколько маленьких по 30-50 полей.
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32642786
Лентяй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZmeisheУбил бы за такую архитектуру БД.Почему?
Неужели фантазии не хватает разбить громадину на несколько маленьких по 30-50 полей. Угу, и вместо одного писал бы 10-18 Insert-ов.
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32642790
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лентяй[quot Zmeishe]Убил бы за такую архитектуру БД.Почему?
Лично мне, не хватает фантазии, чтоб соорудить таблицу в 500 полей.
Случаи, конечно, разные бывают...
Но всё ж таки, хотелось бы услышать, что за задача такая?
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32642803
f_w_p
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийНо всё ж таки, хотелось бы услышать, что за задача такая?
Кроме как телеметрия или что-то подобное ничего придумать не могу:-)
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32642814
Лентяй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
koljan27При ведении большой таблицы БД (порядка 500 полей) как лучьше поступить:
1 писать запрос в query с параметрами
INSERT (p1,p2 .....p500)values(....)
2 написать хранимую процедуру и осуществлять вставку записей запуская ее с 500 параметрами
Приложение клиента, осуществляющего запись в БД, работает на
том же компе, что и сервер.

???
Будет ли разница в производительноси между 1 и 2 случаями?
Частота записи в таблицу от 2 до 5 раз в секунду
А мой совет по поводу промежуточных файлов и External Tables решил проигнорировать? Ну, как говориться, хозяин - барин :)
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32642876
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
f_w_pКроме как телеметрия или что-то подобное ничего придумать не могу:-)
Возможно. Также предположим, что поля типа массив юзать и сложно и неохота.

Но что это за объект исследования, в котором свыше ПЯТИСОТ датчиков относятся к одной группе.

Например, дизель. Температурные датчики.
Всё равно можно разбить на группы.
- 10-20 шт, температура входящего воздуха на входе в каждый цилиндр
- 30-50 шт, температура охлаждающей жидкости в разных точках двигателя
- 10-20 шт, температура в камерах сгорания
- ... , температура отработавших газов на выходе из каждого цилиндра
и т.д.
Для каждой группы своя табличка. Через полгода полезешь в БД и Не запутаешься. А когда всё в одной куче, подумаешь - "Неужели это я такую помойку разработал???"
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32642943
koljan27
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лентяй koljan27При ведении большой таблицы БД (порядка 500 полей) как лучьше поступить:
1 писать запрос в query с параметрами
INSERT (p1,p2 .....p500)values(....)
2 написать хранимую процедуру и осуществлять вставку записей запуская ее с 500 параметрами
Приложение клиента, осуществляющего запись в БД, работает на
том же компе, что и сервер.

???
Будет ли разница в производительноси между 1 и 2 случаями?
Частота записи в таблицу от 2 до 5 раз в секунду
А мой совет по поводу промежуточных файлов и External Tables решил проигнорировать? Ну, как говориться, хозяин - барин :)

Нет советы я никаие не игнорирую. Вариант с промежуточными файлами очень даже неплох. Если бы поток информации был поболее - это было бы наверное оптимальное, а может быть и единственное решение. Хочу все таки попробовать писать в базу без промежуточных файлов. Чтоб упростить алгоритм ). Количество записей в секунду будет определяться пропускной способностью сервака + время на вычитывание и обработку данных из контроллеров. Думаю 2-4 раза будет получаться.
Хотелось бы теперь просто услышать мнение (а может чей то опыт), как лучше осуществить запись такого количества в БД с помощью инсерта в query или ХП. Или нет особой разницы, и дело лиш во вкусе выбора.

Понятие External Tables пока мне незнакомо. Пытаюсь разобраться. Если есть линки где почитать буде признателен.

PS за рекомендацию спасибо.
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32642970
Лентяй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
koljan27Понятие External Tables пока мне незнакомо. Пытаюсь разобраться. Если есть линки где почитать буде признателен.
PS за рекомендацию спасибо.
Эх, отложи ка ты пока разработку и почитай (не поверхтностно) вот здесь:
http://www.ibase.ru/develop.htm. А про External Tables в документации есть.
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32642979
koljan27
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Zmeishe f_w_pКроме как телеметрия или что-то подобное ничего придумать не могу:-)
Возможно. Также предположим, что поля типа массив юзать и сложно и неохота.

Но что это за объект исследования, в котором свыше ПЯТИСОТ датчиков относятся к одной группе.

Например, дизель. Температурные датчики.
Всё равно можно разбить на группы.
- 10-20 шт, температура входящего воздуха на входе в каждый цилиндр
- 30-50 шт, температура охлаждающей жидкости в разных точках двигателя
- 10-20 шт, температура в камерах сгорания
- ... , температура отработавших газов на выходе из каждого цилиндра
и т.д.
Для каждой группы своя табличка. Через полгода полезешь в БД и Не запутаешься. А когда всё в одной куче, подумаешь - "Неужели это я такую помойку разработал???"

Задача действительно похожая. )

Просто разбив на несколько таблиц будет сложнее строить графики. И отчеты.
select с нескольких таблиц потом ждать юзеры запаряться)
А полгода в эту таблицу писать никто и не собираеться. "Эксперимент" длиться от 20 минут до нескольких часов. После окончание база данных сохраняеться и в нее больше ничего не добавляеться. Один эксперимент - одна база данных. Потом по необходимости береться любая архивная база и анализируеться другим приложением.
Архив выглядит в виде совокупности файлов БД хранящихся в каталогах.
имя файла = название_эксперимента+дата+время -помоему удобно ) .
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32643006
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
koljan27Просто разбив на несколько таблиц будет сложнее строить графики. И отчеты.Чепуха.
koljan27select с нескольких таблиц потом ждать юзеры запарятьсяОткровенные фантазии...

ЗЫ: Нравится через анус - делай через анус.
Никто не запрещает.
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32643016
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЯТЬСОТ параметров отразить на одном графике - это круто.
Но я бы разбил на группы. Ну не встречал я графиков, где в построении участвует более двух десятков разных параметров.
Обычно разные графики - разная группа параметров.
Либо графики с комбинацией параметров из разных групп, ну не всех же???
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32643039
koljan27
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZmeisheПЯТЬСОТ параметров отразить на одном графике - это круто.
Но я бы разбил на группы. Ну не встречал я графиков, где в построении участвует более двух десятков разных параметров.
Обычно разные графики - разная группа параметров.
Либо графики с комбинацией параметров из разных групп, ну не всех же???
на графике параметров не 500 а от 1 до 20.(по выбору пользователя)
Мне кажеться что select из одной таблицы будет быстрее, чем скажем из 5.
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32643062
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Реально на экране пользователь увидит не более 40-50 параметров. Если все 500 пойдут одним списком, он устанет искать те, которые хочет выбрать! И те из выбранных, которые он уже не хочет видеть на графике.
Разбив по группам, хотя бы ради удобства пользователей, дело у них пойдёт гораздо шустрее. Они даже начнут понимать, то чего делают, с научной точки зрения.
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32643090
koljan27
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZmeisheРеально на экране пользователь увидит не более 40-50 параметров. Если все 500 пойдут одним списком, он устанет искать те, которые хочет выбрать! И те из выбранных, которые он уже не хочет видеть на графике.
Разбив по группам, хотя бы ради удобства пользователей, дело у них пойдёт гораздо шустрее. Они даже начнут понимать, то чего делают, с научной точки зрения.

пользователь смотрит на графике или формирует отчет не более чем 15 - 20 параметров.
Он выбирает, что ему необходимо отобразить. Скажем он хочет отобразить всего 3 температуры. Если у меня 1 таблица, то выборка будет всего из одной таблицы , а если несколько таблиц - то прийдеться делать select из 3 таблиц (это как демонстрация худшего варианта). Какой select будет легче для сервера? мне кажеться, что из одной таблицы. Естественно, что выборка в первом и втором варианте будет за какой то период (например 5 минут),а не всех данных.
Юзер может захотеть видеть любые параметры, т.е. скомпоновать таблицы по определенным параметрам не получиться.
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32643123
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
koljan27Юзер может захотеть видеть любые параметры, т.е.
скомпоновать таблицы по определенным параметрам не получиться .Скажи лучше - "не умею я".
Будет честнее.
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32643143
koljan27
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скомпоновать не реально, так как юзер может захотеть видеть скажем температуру, вибрацию и еще чего нить. Как тут скомпануеш? Или связывать руки пользователю. Мол смотри токо температуры или смотри токо вибрацию...
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32643171
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
koljan27Скомпоновать не реально, так как юзер может захотеть видеть скажем температуру, вибрацию и еще чего нить. Как тут скомпануеш? Или связывать руки пользователю. Мол смотри токо температуры или смотри токо вибрацию...Фигня-вопрос (С)!
Оно конечно, SELECT * FROM Table1 - всегда легче, чем JOIN .
Но задача не настолько сложная, чтоб превращать БД
в банальный плоский файл.
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32643177
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИли связывать руки пользователю. Мол смотри токо температуры или смотри токо вибрацию...
1 Группа - Температура
1.1 Температура на входе в цилиндры
1.2 Температура в камерах сгорания
2 Группа - Вибрация.
2.1 вибрация фундамента двигателя
2.2 вибрация остова двигателя
3 Группа Шумность
...

Я не пойму ты диссертацию пишешь или курсовик студента первокурсника?
Неужели твои 500 параметров не поддаются классификации по группам?

Выбрал 1 Группу - ометил несколько парамеров
Перешёл в другую группу ещё отметил несколько параметров
Нажал общий 'Ok' - построил график.
Неужели это АРХИсложно.
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32643186
Лентяй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я так и не врубаюсь, что дает разбиение одной широкой таблицы на несколько (если того предметная область не требует конечно).
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32643197
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удобство разработчика и удобство юзера. Кучу анализировать гораздо сложнее и неприятнее, чем несколько кучек по меньше.

Хочешь переломить веник - переламывай по прутику.
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32643206
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К тому же допустимое количество полей в таблице БД не безгранично.
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32643245
koljan27
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Zmeishe авторИли связывать руки пользователю. Мол смотри токо температуры или смотри токо вибрацию...
1 Группа - Температура
1.1 Температура на входе в цилиндры
1.2 Температура в камерах сгорания
2 Группа - Вибрация.
2.1 вибрация фундамента двигателя
2.2 вибрация остова двигателя
3 Группа Шумность
...

Я не пойму ты диссертацию пишешь или курсовик студента первокурсника?
Неужели твои 500 параметров не поддаются классификации по группам?

Выбрал 1 Группу - ометил несколько парамеров
Перешёл в другую группу ещё отметил несколько параметров
Нажал общий 'Ok' - построил график.
Неужели это АРХИсложно.

это помоему больше относиться уже к интерфейсу юзера. Сам процесс выбора прибилизительно так и организован.

Что касаеться допустимого количество полей - то 500 это помоему далеко не придел.

Меня интересует, стоит ли заморачиваться с хранимыми процедурами для вставки, или они ничего не дадут?
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32643682
olol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
koljan27...как лучьше поступить: ...INSERT (p1,p2 .....p500)values(....)
... или ХП...

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

ХП хороша когда тебе надо отработать еще кучу проверок и связанных таблиц...

В данном случае, по моему, просто делай INSERT...

Ведь ты можешь инсертить любое колличество параметров (не необязательно все 500, например: если какие-то датчики отключены)... а вот ХП потребует все параметры...
...
Рейтинг: 0 / 0
INSERT в большую таблицу
    #32643879
Лентяй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZmeisheУдобство разработчика и удобство юзера. Кучу анализировать гораздо сложнее и неприятнее, чем несколько кучек по меньше.

Хочешь переломить веник - переламывай по прутику.
Сложнее, неприятнее... не убедил, абстрактно все это. Я вот тебе конкретно скажу:
допустим мы разбили одну большую табличку на 10 маленьких. При этом

1 Вместо одного insert-a нам придеться написать 10, не путая, какое поле в какую табличку занести. При этом упадет скорость вставки данных (10 sql операторов вместо 1) а это для такой задачи критично.
2 Вполне возможно, что какие-то данные придется изменять или удалять. И опять 10 операторов вместо одного что на изменение, что на удаление. И при этом получим большее количество мусора. Кроме того сложнее будет работать с блокировками.
3 Вместо простого select с перечислением нужных полей мы будем отыскивать эти поля по разным таблицам и join-ить их. Как ни крути, а это скажеться на быстродействии.

А для пользователя внутренняя структура не должна быть видна. Можно завести дополнительную таблицу с наименованием групп параметров и перечислением соответствующих полей. И с ее помощью формировать нужные Sql-и. И пускай пользователь сам для себя и сформирует нужные ему выборки.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / INSERT в большую таблицу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]