Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];

Вниз

Как сделать максимально быстрое добавление/обновление?   Найти похожие ветки 

 
novill ©   (2006-06-02 11:24) [0]

Есть таблица цен товаров у поставщиков
name
price1
...
pricen

Список поставшиков фиксированный (n штук)

Данные приходят пакетами из записей вида
(наименование товара, цена, номер поставщика).

Если такого товара еще нет в таблице надо добавить его и указать цену у поставщика, если товар уже есть надо внести цену у соответствующего поставщика (если цена уже задана обновить).

Как это сделать так, чтобы работало максимально быстро?


 
Johnmen ©   (2006-06-02 11:34) [1]

http://www.ibase.ru/devinfo/testiu.htm


 
Sergey13 ©   (2006-06-02 12:07) [2]

2 novill ©   (02.06.06 11:24)
>Данные приходят пакетами из записей вида
(наименование товара, цена, номер поставщика).

Марс, 10, 1
Конфета Марс, 11, 2
Батончик кондитерский Марс, 12, 3

Что будешь делать?


 
novill ©   (2006-06-02 12:29) [3]

> Sergey13

Должно быть полное соответствие наименование товара.

Если таких наименований еще не было, добавлю три записи.


 
Sergey13 ©   (2006-06-02 12:36) [4]

2[3] novill ©   (02.06.06 12:29)
И кому это надо? Тут, ИМХО, не о скорости надо думать.

>Как это сделать так, чтобы работало максимально быстро?
Залей в отдельную таблицу и обработай процедурой на серваке, после удали (если мешают).


 
saxon   (2006-06-02 12:49) [5]


> Sergey13 ©   (02.06.06 12:36) [4]
> Залей в отдельную таблицу и обработай процедурой на серваке,
>  после удали (если мешают).

Сомневаюсь в ускорении. Тут скорее наоборот - медленее станет.


 
Sergey13 ©   (2006-06-02 13:03) [6]

2 [5] saxon   (02.06.06 12:49)
> Тут скорее наоборот - медленее станет.
Медленнее чем что? И почему?


 
MsGuns ©   (2006-06-02 13:15) [7]

Вопрос на засыпку:
Каким образом "система" будет определять одинаковый товар в прайсах разных поставщиков (см. [2]) ?
Где гарантия, что один и тот же поставщик не всунет в разные прайсы одну и ту же шоколадку под разным названием ?

Не проще ли давать менеджеру по поставкам возможность удобного просмотра оригинальных прайсов (Excel, Word, html, dbf), поступаемых от поставщиков с возможностью ручного добавления в БД прайсов ?


 
saxon   (2006-06-02 13:18) [8]


> Sergey13 ©   (02.06.06 13:03) [6]


Как себе представил:
Данные поочередно перекидываються из записи (см. [0]) в SP и она проанализировав - либо добавляет новую либо редактирует существующую запись.

В вашем варианте: предварительно они (все записи) попадают в доп. таблицу и только потом начинаеться их анализ и принимаеться соответственное решение. + удаление записей из доп. таблицы (если мешают).

Если я правильно понял, то добавится время на работу с доп. таблицей. Или не так?


 
saxon   (2006-06-02 13:20) [9]


> MsGuns ©   (02.06.06 13:15) [7]

Например можно передавать идентификатор (если есть) от поставщика.


 
Sergey13 ©   (2006-06-02 13:22) [10]

2 [8] saxon   (02.06.06 13:18)
Зато трафика при поиске и фиксации каждой записи не будет.
Фиг знает. Это надо пробовать и мерять.
У автора другая проблема на подходе. 8-)
Вот и Ганз меня поддержал.


 
MsGuns ©   (2006-06-02 13:32) [11]

>saxon   (02.06.06 13:20) [9]
>Например можно передавать идентификатор (если есть) от поставщика.

Это интересная мысль. Особенно если учесть, что у каждого поставщика своя система "идентификации"


 
novill ©   (2006-06-02 13:34) [12]


> И кому это надо? Тут, ИМХО, не о скорости надо думать.

А о чем?


 
saxon   (2006-06-02 13:35) [13]


> MsGuns ©   (02.06.06 13:32) [11]

Ну так база имеет уже идентификатор поставщика (если поправильному :) ).
Хотя кто его знает как там на самом деле. Добавить и его (если нет).


 
Sergey13 ©   (2006-06-02 13:37) [14]

2[12] novill ©   (02.06.06 13:34)
>А о чем?
О [2] и [7]. Ибо кому интересен батончик Марс в 48 ипостасях.


 
novill ©   (2006-06-02 13:46) [15]


> Не проще ли давать менеджеру по поставкам возможность удобного
> просмотра оригинальных прайсов (Excel, Word, html, dbf),
>  поступаемых от поставщиков с возможностью ручного добавления
> в БД прайсов ?

Именно этот процесс и автоматизируется. Только это не совсем прайсы, это протоколы торгов. Есть еще несколько полей кроме наименования по которым идет группировка цен.


> У автора другая проблема на подходе. 8-)

Это про поиск "одной шоколадки под разными названиями"?
Этот процесс лежит на менеждерах, и они уже согласились, что из того г.на, что они дают конфетку кроме человека никто не сделает. Я показал, что и как работает - они довольны. Вот только добавление данных идет не быстро.
Или какая-то еще проблема?


 
Sergey13 ©   (2006-06-02 13:52) [16]

>Или какая-то еще проблема?
Нет. Если все довольны - какая проблема. 8-)
А насчет скорости - ты так ничего и не сказал. Как делаешь и сколько это длится?


 
saxon   (2006-06-02 14:10) [17]


> Sergey13 ©   (02.06.06 13:52) [16]

Вот вот интересно, что значит не быстро?


 
novill ©   (2006-06-02 15:12) [18]

Стыдно признаваться просто.

В лоб делаю: сначала попытка апдейта, если не получилось инсерт.

Точно указать скорость не могу, сервер на котором всё крутится грузят другии задачами. Но примерно для обработки 20000 записей уходит больше 10 минут.


 
MsGuns ©   (2006-06-02 15:15) [19]

Приведи структуру таблицы, куда инсеришь, апдейтишь. И запросы, канэшна, тоже ;)


 
Sergey13 ©   (2006-06-02 15:21) [20]

>В лоб делаю: сначала попытка апдейта, если не получилось инсерт.
Все из клиента и по исключению что ли? Как это реализовано?
Напиши процедуру и передавай в нее все поля исходной строки. В ней сначала поиск товара. В зависимости от результата поиска - вставка или апдейт. Если ищешь по текстовому пою (изврат это все таки 8-), то поиск дожен быть регистронезависимым, т.е. оно должно быть проиндексировано по UPPER.

>Но примерно для обработки 20000 записей уходит больше 10 минут.
В принципе не так уж и плохо, ИМХО.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.012 c
2-1152790137
novill
2006-07-13 15:28
2006.08.06
Какой тип лучше использовать для небольших строк?


15-1151432743
Nic
2006-06-27 22:25
2006.08.06
У кого какая клавиатура?


6-1142581438
diMAN
2006-03-17 10:43
2006.08.06
Открытие сокета в системе


2-1152715492
Denissoft
2006-07-12 18:44
2006.08.06
WinAPI


2-1153309221
fast2
2006-07-19 15:40
2006.08.06
Какой размер страницы лучше вибрать при создании БД FireBird?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский