|
|
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
При ведении большой таблицы БД (порядка 500 полей) как лучьше поступить: 1 писать запрос в query с параметрами INSERT (p1,p2 .....p500)values(....) 2 написать хранимую процедуру и осуществлять вставку записей запуская ее с 500 параметрами Приложение клиента, осуществляющего запись в БД, работает на том же компе, что и сервер. ??? Будет ли разница в производительноси между 1 и 2 случаями? Частота записи в таблицу от 2 до 5 раз в секунду ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 14:00:41 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
Убил бы за такую архитектуру БД. Неужели фантазии не хватает разбить громадину на несколько маленьких по 30-50 полей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 14:31:45 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
ZmeisheУбил бы за такую архитектуру БД.Почему? Неужели фантазии не хватает разбить громадину на несколько маленьких по 30-50 полей. Угу, и вместо одного писал бы 10-18 Insert-ов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 14:36:54 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
Лентяй[quot Zmeishe]Убил бы за такую архитектуру БД.Почему? Лично мне, не хватает фантазии, чтоб соорудить таблицу в 500 полей. Случаи, конечно, разные бывают... Но всё ж таки, хотелось бы услышать, что за задача такая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 14:39:11 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
МимопроходящийНо всё ж таки, хотелось бы услышать, что за задача такая? Кроме как телеметрия или что-то подобное ничего придумать не могу:-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 14:48:00 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
koljan27При ведении большой таблицы БД (порядка 500 полей) как лучьше поступить: 1 писать запрос в query с параметрами INSERT (p1,p2 .....p500)values(....) 2 написать хранимую процедуру и осуществлять вставку записей запуская ее с 500 параметрами Приложение клиента, осуществляющего запись в БД, работает на том же компе, что и сервер. ??? Будет ли разница в производительноси между 1 и 2 случаями? Частота записи в таблицу от 2 до 5 раз в секунду А мой совет по поводу промежуточных файлов и External Tables решил проигнорировать? Ну, как говориться, хозяин - барин :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 14:52:40 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
f_w_pКроме как телеметрия или что-то подобное ничего придумать не могу:-) Возможно. Также предположим, что поля типа массив юзать и сложно и неохота. Но что это за объект исследования, в котором свыше ПЯТИСОТ датчиков относятся к одной группе. Например, дизель. Температурные датчики. Всё равно можно разбить на группы. - 10-20 шт, температура входящего воздуха на входе в каждый цилиндр - 30-50 шт, температура охлаждающей жидкости в разных точках двигателя - 10-20 шт, температура в камерах сгорания - ... , температура отработавших газов на выходе из каждого цилиндра и т.д. Для каждой группы своя табличка. Через полгода полезешь в БД и Не запутаешься. А когда всё в одной куче, подумаешь - "Неужели это я такую помойку разработал???" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 15:12:37 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
Лентяй koljan27При ведении большой таблицы БД (порядка 500 полей) как лучьше поступить: 1 писать запрос в query с параметрами INSERT (p1,p2 .....p500)values(....) 2 написать хранимую процедуру и осуществлять вставку записей запуская ее с 500 параметрами Приложение клиента, осуществляющего запись в БД, работает на том же компе, что и сервер. ??? Будет ли разница в производительноси между 1 и 2 случаями? Частота записи в таблицу от 2 до 5 раз в секунду А мой совет по поводу промежуточных файлов и External Tables решил проигнорировать? Ну, как говориться, хозяин - барин :) Нет советы я никаие не игнорирую. Вариант с промежуточными файлами очень даже неплох. Если бы поток информации был поболее - это было бы наверное оптимальное, а может быть и единственное решение. Хочу все таки попробовать писать в базу без промежуточных файлов. Чтоб упростить алгоритм ). Количество записей в секунду будет определяться пропускной способностью сервака + время на вычитывание и обработку данных из контроллеров. Думаю 2-4 раза будет получаться. Хотелось бы теперь просто услышать мнение (а может чей то опыт), как лучше осуществить запись такого количества в БД с помощью инсерта в query или ХП. Или нет особой разницы, и дело лиш во вкусе выбора. Понятие External Tables пока мне незнакомо. Пытаюсь разобраться. Если есть линки где почитать буде признателен. PS за рекомендацию спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 15:32:02 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
koljan27Понятие External Tables пока мне незнакомо. Пытаюсь разобраться. Если есть линки где почитать буде признателен. PS за рекомендацию спасибо. Эх, отложи ка ты пока разработку и почитай (не поверхтностно) вот здесь: http://www.ibase.ru/develop.htm. А про External Tables в документации есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 15:42:19 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
Zmeishe f_w_pКроме как телеметрия или что-то подобное ничего придумать не могу:-) Возможно. Также предположим, что поля типа массив юзать и сложно и неохота. Но что это за объект исследования, в котором свыше ПЯТИСОТ датчиков относятся к одной группе. Например, дизель. Температурные датчики. Всё равно можно разбить на группы. - 10-20 шт, температура входящего воздуха на входе в каждый цилиндр - 30-50 шт, температура охлаждающей жидкости в разных точках двигателя - 10-20 шт, температура в камерах сгорания - ... , температура отработавших газов на выходе из каждого цилиндра и т.д. Для каждой группы своя табличка. Через полгода полезешь в БД и Не запутаешься. А когда всё в одной куче, подумаешь - "Неужели это я такую помойку разработал???" Задача действительно похожая. ) Просто разбив на несколько таблиц будет сложнее строить графики. И отчеты. select с нескольких таблиц потом ждать юзеры запаряться) А полгода в эту таблицу писать никто и не собираеться. "Эксперимент" длиться от 20 минут до нескольких часов. После окончание база данных сохраняеться и в нее больше ничего не добавляеться. Один эксперимент - одна база данных. Потом по необходимости береться любая архивная база и анализируеться другим приложением. Архив выглядит в виде совокупности файлов БД хранящихся в каталогах. имя файла = название_эксперимента+дата+время -помоему удобно ) . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 15:45:53 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
koljan27Просто разбив на несколько таблиц будет сложнее строить графики. И отчеты.Чепуха. koljan27select с нескольких таблиц потом ждать юзеры запарятьсяОткровенные фантазии... ЗЫ: Нравится через анус - делай через анус. Никто не запрещает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 15:53:49 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
ПЯТЬСОТ параметров отразить на одном графике - это круто. Но я бы разбил на группы. Ну не встречал я графиков, где в построении участвует более двух десятков разных параметров. Обычно разные графики - разная группа параметров. Либо графики с комбинацией параметров из разных групп, ну не всех же??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 15:57:46 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
ZmeisheПЯТЬСОТ параметров отразить на одном графике - это круто. Но я бы разбил на группы. Ну не встречал я графиков, где в построении участвует более двух десятков разных параметров. Обычно разные графики - разная группа параметров. Либо графики с комбинацией параметров из разных групп, ну не всех же??? на графике параметров не 500 а от 1 до 20.(по выбору пользователя) Мне кажеться что select из одной таблицы будет быстрее, чем скажем из 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 16:08:12 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
Реально на экране пользователь увидит не более 40-50 параметров. Если все 500 пойдут одним списком, он устанет искать те, которые хочет выбрать! И те из выбранных, которые он уже не хочет видеть на графике. Разбив по группам, хотя бы ради удобства пользователей, дело у них пойдёт гораздо шустрее. Они даже начнут понимать, то чего делают, с научной точки зрения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 16:16:13 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
ZmeisheРеально на экране пользователь увидит не более 40-50 параметров. Если все 500 пойдут одним списком, он устанет искать те, которые хочет выбрать! И те из выбранных, которые он уже не хочет видеть на графике. Разбив по группам, хотя бы ради удобства пользователей, дело у них пойдёт гораздо шустрее. Они даже начнут понимать, то чего делают, с научной точки зрения. пользователь смотрит на графике или формирует отчет не более чем 15 - 20 параметров. Он выбирает, что ему необходимо отобразить. Скажем он хочет отобразить всего 3 температуры. Если у меня 1 таблица, то выборка будет всего из одной таблицы , а если несколько таблиц - то прийдеться делать select из 3 таблиц (это как демонстрация худшего варианта). Какой select будет легче для сервера? мне кажеться, что из одной таблицы. Естественно, что выборка в первом и втором варианте будет за какой то период (например 5 минут),а не всех данных. Юзер может захотеть видеть любые параметры, т.е. скомпоновать таблицы по определенным параметрам не получиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 16:27:38 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
koljan27Юзер может захотеть видеть любые параметры, т.е. скомпоновать таблицы по определенным параметрам не получиться .Скажи лучше - "не умею я". Будет честнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 16:37:12 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
Скомпоновать не реально, так как юзер может захотеть видеть скажем температуру, вибрацию и еще чего нить. Как тут скомпануеш? Или связывать руки пользователю. Мол смотри токо температуры или смотри токо вибрацию... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 16:45:42 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
koljan27Скомпоновать не реально, так как юзер может захотеть видеть скажем температуру, вибрацию и еще чего нить. Как тут скомпануеш? Или связывать руки пользователю. Мол смотри токо температуры или смотри токо вибрацию...Фигня-вопрос (С)! Оно конечно, SELECT * FROM Table1 - всегда легче, чем JOIN . Но задача не настолько сложная, чтоб превращать БД в банальный плоский файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 16:55:32 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
авторИли связывать руки пользователю. Мол смотри токо температуры или смотри токо вибрацию... 1 Группа - Температура 1.1 Температура на входе в цилиндры 1.2 Температура в камерах сгорания 2 Группа - Вибрация. 2.1 вибрация фундамента двигателя 2.2 вибрация остова двигателя 3 Группа Шумность ... Я не пойму ты диссертацию пишешь или курсовик студента первокурсника? Неужели твои 500 параметров не поддаются классификации по группам? Выбрал 1 Группу - ометил несколько парамеров Перешёл в другую группу ещё отметил несколько параметров Нажал общий 'Ok' - построил график. Неужели это АРХИсложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 16:58:27 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
А я так и не врубаюсь, что дает разбиение одной широкой таблицы на несколько (если того предметная область не требует конечно). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 17:02:42 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
Удобство разработчика и удобство юзера. Кучу анализировать гораздо сложнее и неприятнее, чем несколько кучек по меньше. Хочешь переломить веник - переламывай по прутику. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 17:06:35 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
К тому же допустимое количество полей в таблице БД не безгранично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 17:08:58 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
Zmeishe авторИли связывать руки пользователю. Мол смотри токо температуры или смотри токо вибрацию... 1 Группа - Температура 1.1 Температура на входе в цилиндры 1.2 Температура в камерах сгорания 2 Группа - Вибрация. 2.1 вибрация фундамента двигателя 2.2 вибрация остова двигателя 3 Группа Шумность ... Я не пойму ты диссертацию пишешь или курсовик студента первокурсника? Неужели твои 500 параметров не поддаются классификации по группам? Выбрал 1 Группу - ометил несколько парамеров Перешёл в другую группу ещё отметил несколько параметров Нажал общий 'Ok' - построил график. Неужели это АРХИсложно. это помоему больше относиться уже к интерфейсу юзера. Сам процесс выбора прибилизительно так и организован. Что касаеться допустимого количество полей - то 500 это помоему далеко не придел. Меня интересует, стоит ли заморачиваться с хранимыми процедурами для вставки, или они ничего не дадут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 17:25:21 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
koljan27...как лучьше поступить: ...INSERT (p1,p2 .....p500)values(....) ... или ХП... ...стоит ли заморачиваться с хранимыми процедурами для вставки...? ХП хороша когда тебе надо отработать еще кучу проверок и связанных таблиц... В данном случае, по моему, просто делай INSERT... Ведь ты можешь инсертить любое колличество параметров (не необязательно все 500, например: если какие-то датчики отключены)... а вот ХП потребует все параметры... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2004, 07:31:56 |
|
||
|
INSERT в большую таблицу
|
|||
|---|---|---|---|
|
#18+
ZmeisheУдобство разработчика и удобство юзера. Кучу анализировать гораздо сложнее и неприятнее, чем несколько кучек по меньше. Хочешь переломить веник - переламывай по прутику. Сложнее, неприятнее... не убедил, абстрактно все это. Я вот тебе конкретно скажу: допустим мы разбили одну большую табличку на 10 маленьких. При этом 1 Вместо одного insert-a нам придеться написать 10, не путая, какое поле в какую табличку занести. При этом упадет скорость вставки данных (10 sql операторов вместо 1) а это для такой задачи критично. 2 Вполне возможно, что какие-то данные придется изменять или удалять. И опять 10 операторов вместо одного что на изменение, что на удаление. И при этом получим большее количество мусора. Кроме того сложнее будет работать с блокировками. 3 Вместо простого select с перечислением нужных полей мы будем отыскивать эти поля по разным таблицам и join-ить их. Как ни крути, а это скажеться на быстродействии. А для пользователя внутренняя структура не должна быть видна. Можно завести дополнительную таблицу с наименованием групп параметров и перечислением соответствующих полей. И с ее помощью формировать нужные Sql-и. И пускай пользователь сам для себя и сформирует нужные ему выборки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2004, 10:11:29 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=458&tid=1578111]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
68ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 401ms |

| 0 / 0 |
