ketan Ram Patil Ответов: 2

Как повысить производительность приложения при извлечении данных изображения (байт) из базы данных SQL в VB


я работаю над "обработкой изображений". Project.in какой пользователь может хранить несколько изображений и извлекать их из базы данных.Но проблема в том, что требуется много времени для извлечения данных изображения (байт) из базы данных и отображения в стеке изображения панели.

Что я уже пробовал:

я извлекаю изображение в соответствии с именем пользователя.

2 Ответов

Рейтинг:
9

CPallini

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


ketan Ram Patil

я хочу сохранить каждое сканированное изображение в базе данных и получить все сканированные изображения. :)

Рейтинг:
17

OriginalGriff

Мы не можем вам помочь: мы понятия не имеем, как вы извлекаете изображения, сколько из них вы извлекаете, как вы их храните, насколько они велики, что еще происходит в то же время. Мы даже не знаем, что вы считаете "много времени" в реальном мире, или если SQL server и app PC - это один и тот же компьютер, или подключены через две жестяные банки и немного струны!

Но... изображения большие и могут быть очень, очень большими: хранить их в БД может быть очень плохой идеей, так как для их передачи требуется много памяти и пропускной способности. И ваше использование stackpanel подразумевает, что извлекается более одного изображения. Поэтому начните с рассмотрения того, что вы делаете и сколько процессов вы используете для обработки данных изображения. Попытайтесь определить, где находится узкое место, и определить любые области, которые хороши для экономии времени. Подумайте об использовании класса секундомера, чтобы дать вам точные базовые цифры для работы при определении того, что быстро, а что медленно.

Извините, но мы не можем сделать ничего из этого для вас - мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли; не говоря уже о времени вашего кода, пока он работает!


ketan Ram Patil

1. я храню и извлекаю изображения в байтовом формате.
2.Я хранения изображений, максимальный размер 2 МБ, а хранить в базе данных в байт дллина формат 102288.
3. я извлекаю изображения Min 20 и Max 60.
4. я сканирую изображение с разрешением 96 точек на дюйм и храню в базе данных в байтовом формате. один за другим сканируйте изображение и извлекайте все сканированные изображения один раз и добавляйте изображения в дочернюю панель стека.(преобразование байтовых данных изображения базы данных в растровое изображение.)

OriginalGriff

Таким образом, вы получаете до 60 изображений с 2 МБ - 120 МБ необработанных данных, в зависимости от формата файла, насколько он велик, как отображаемое изображение, которое всегда имеет размер x * y * 4 байта каждое.

И что в этом медленного? Что вы выяснили, рассчитав время?