Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

увеличение времени исполнения запросов к БД


Страницы:   1 2 3

ply ©   (2008-07-13 02:50:00) 

есть список сотрудников
вот OnShow формы для редактирования данных сотрудника:
if employee_id='0' then //новый сотрудник
     begin
       query.AddWhere('0');
       query.Active:=true;
       query.Append;
     end
   else //вставляем данные о сотруднике
     begin
       query.AddWhere('employee_id='+employee_id);
       query.Active:=true;
       if query.eof then exit;
     
       query.edit;
     end;

изменяю данные и сохраняю...
query.Post

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

Как это исправить?


Ega23   (2008-07-28 18:11:00) [21]


> На sql.ru совершенно спокойное отношение к обоим вариантам.


Заведи ветку и спроси все плюсы и минусы данного подхода (хранение в базе ссылок на файлы).
Если здесь тебя масса людей не убедила, может там убедят.


Нат   (2008-07-28 18:06:00) [22]

На sql.ru совершенно спокойное отношение к обоим вариантам.


Ega23   (2008-07-28 17:58:00) [23]


> Забавно, первое, что попалось и конечный результат:


В [10] как раз этот случай описан. И это, пожалуй, единственный случай, когда имеет смысл картинки хранить вне базы.


Нат   (2008-07-28 17:50:00) [24]

Забавно, первое, что попалось и конечный результат:
http://sql.ru/forum/actualthread.aspx?bid=6&tid=578237


Нат   (2008-07-28 17:36:00) [25]


> добавить кнопку "Показать фото"

Так и делаем


stas   (2008-07-28 13:10:00) [26]

Нат   (28.07.08 07:18) [22]
Может быть и есть случаи, когда в БД хранить фотки не целесообразно, но их на столько мало(я невстречал) что плохим тоном можно считать хранение фоток не в БД. И на это есть очень много аргументов.

ply ©   (13.07.08 02:50)  
Вставку лучше сделать запросом на INSERT, к стати что за СУБД ?


MsGuns   (2008-07-28 12:35:00) [27]

Фотки в основной запрос (который отображается в сетке) не включать вообще, а добавить кнопку "Показать фото", по которолй извлекать фото по ид текущей записи.

ЗЫ. Не надо путать технологию хранения данных (блобы в БД) со способами их отображения (тягания всех блобов на клиента без возможности (и необходимости) сразу их все показывать)


Игорь Шевченко   (2008-07-28 12:16:00) [28]


> Есть много разных мнений.


Всего два


Anatoly Podgoretsky   (2008-07-28 10:28:00) [29]

> Ega23  (28.07.2008 9:51:23)  [23]

> Узнаешь много нового.

При том не только о хранение.


Ega23   (2008-07-28 09:51:00) [30]


> А хуже всего - бывают правы все.


Могу предложить тебе завести тему "Хранение BLOB в базе - плохой тон" на, например, sql.ru
Узнаешь много нового.


Нат   (2008-07-28 07:18:00) [31]

Есть много разных мнений.
А хуже всего - бывают правы все.
Сколько сторон у монеты... а у шара?


Ega23   (2008-07-26 13:11:00) [32]


> Может ли иметь смысл, с точки зрения обработки прочих полей,
>  создание отдельной таблицы под изображения?


Сильно зависит от СУБД. В серьёзных - создание отдельной таблицы бессмысленно.


> Это сильный аргумент. :-)


Гораздо более сильный аргумент был про "плохой тон". 9 лет занимаюсь разработкой БД и только сейчас узнаю, что всё что я делаю - плохой тон. И не только я один.
Согласись, это натуральная бугага.


> Передача записи с картинкой по сети заметно медленнее, чем
> без картинки.


А нефиг запросы select * from table гонять. Вот это-то и есть самый настоящий "плохой тон".


> В смысле где хранить? Аргумент... если такое условие...


Есть мнение, что вы серьёзными системами не занимались. Где достаточно сильный упор на безопасность делается. И за "шареный ресурс" на сервере БД у вас систему тупо не купят. Купят у конкурентов, где всё нормально.


Нат   (2008-07-26 02:50:00) [33]


> Бугага.  :))))))

Это сильный аргумент. :-)

Передача записи с картинкой по сети заметно медленнее, чем без картинки.
И размер картинки может быть 10к, а может и 10Мб.
И не каждый раз пользователю они нужны.
У себя сперва держали вместе, потом разделили на два запроса, потом вообще вынесли наружу.
В общем, вопрос актуальный.

> Теперь передай изображение на клиента, никаких общих папок на сервере нет.

В смысле где хранить? Аргумент... если такое условие...
У себя планировал создать подобную папку с доступном для проги-сервера.

Может ли иметь смысл, с точки зрения обработки прочих полей, создание отдельной таблицы под изображения?


Anatoly Podgoretsky   (2008-07-25 14:27:00) [34]


> Нат   (25.07.08 05:39) [6]

Теперь передай изображение на клиента, никаких общих папок на сервере нет.


stas   (2008-07-25 10:22:00) [35]

Хотя в любом случае согласен masterdetail здесь ненужен.


stas   (2008-07-25 10:18:00) [36]

Ega23 ©   (25.07.08 10:12) [16]
Ну, так query.AddWhere('0') это может быть вобще исключение условия отбора.


Ega23   (2008-07-25 10:12:00) [37]


> Да, только не ясно что такое query.AddWhere('0');
> вобще что за метод такой?


Судя по всему у него какой-то хитрый DAC. Ну а с методом - всё ясно, в 'where' что-то добавляет.
Полезный метод, кстати.


stas   (2008-07-25 10:09:00) [38]

Да, только не ясно что такое query.AddWhere('0');
вобще что за метод такой?


Ega23   (2008-07-25 10:00:00) [39]


> ну,  если его запрос возвращает всегда 1 запись тогда ненужно
> masterdetail.


Естественно. Ты на код в [0] смотрел?


stas   (2008-07-25 10:00:00) [40]

Ega23 ©   (25.07.08 09:56) [12]
ну,  если его запрос возвращает всегда 1 запись тогда ненужно masterdetail.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо