Для того чтобы организовать торговлю в Интернет-магазине компании потребуется наличие всего одного Менеджера, контролирующего процесс автоматической работы магазина как из офиса компании, так и из любого места в Сети.
Каталог прайсов интернет магазинов - разместите свой прайс бесплатно
  Главная  |    О компании  |    Новости  |    Статьи  |    Форум  |    Клиенты  |    Обратная связь  |    Карта сайта
Добро пожаловать, Гость. Для того, чтобы отвечать на сообщения и создавать новые темы, Вам необходимо зарегистрироваться, если Вы уже зарегистрированы, то войдите используя Ваши E-Mail и Пароль.
Запомнить
Пароль
   
Форум
 Программа iNETsHOP » Работа с программой
        Увеличение скорости обработки прайсов
Увеличение скорости обработки прайсов

26.10.2015 12:32

dominion


Пользователь iNETsHOP

Количество сообщений   8
Зарегистрирован:   11-01-2011, 12:14:20
Увеличение скорости обработки прайсов
Столкнулись с такой проблемой. За последнее время база очень сильно выросла и теперь большие прайсы 30-50 тыс позиций приходиться обновлять по 4-5 часов, что делает весь процесс обновления цен весьма затяжным. Например, у нас выходит получить обновленный свой прайс только к 18, начав обработку в 10.

Есть какие-то возможности этот процесс ускорить? железо или софт?
Пользователь оффлайн Распечатать
 

26.10.2015 15:06

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
Работа сервера СУБД
Скорость обработки информации в той или иной мере зависит от нескольких факторов, таких как скорость работы дисковой подсистемы, дефрагментация файлов базы данных, дефрагментация индексов, загрузка процессора, размер оперативной памяти сервера и выделенный объем памяти для СУБД и т.п.
Пользователь оффлайн Распечатать
 

26.10.2015 15:35

dominion


Пользователь iNETsHOP

Тема начата

Количество сообщений   8
Зарегистрирован:   11-01-2011, 12:14:20
Intel Celeron g540 2.5GHz
8gb ram
500GB винчестер
стоит вин 7
Есть смысл что-то менять? Что-то конкретно даст увеличение скорости?
Пользователь оффлайн Распечатать
 

26.10.2015 15:44

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
Производительность системы
Данный процессор далеко не самый быстрый (судя по стестам Intel Celeron g540) как и все "Селероны", но проблема скорее всего комплексная. Попробуйте для начала обойтись "малой кровью" - проведите дефрагментацию индексов базы данных (а лучше перестройте их), затем дефрагментацию дисков, проверьте выделение оперативной памяти для СУБД. Так же если у вас ОС x64, а СУБД x32 - то возможно стоит задуматься о переходе на СУБД x64 чтобы использовать больший объем оперативной памяти.

Пользователь оффлайн Распечатать
 

30.10.2015 12:47

vikarenko


Пользователь iNETsHOP

Количество сообщений   25
Зарегистрирован:   17-12-2014, 08:45:27
Производительность системы
Цитата
Написал: support
проведите дефрагментацию индексов базы данных (а лучше перестройте их)


Подскажите как это сделать. Это нужно делать до дефрагментации дисков или после?

Пользователь оффлайн Распечатать
 

30.10.2015 13:59

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
Дефрагментация индексов базы данных
Нужно в базе данных выполнить один из следующих SQL-скриптов:

Дефрагментация индекса
Код
DECLARE @MyTable varchar(120);
DECLARE @MyIndex varchar(120);
DECLARE MyCursor CURSOR FOR
SELECT o.name, i.name
FROM sysobjects o INNER JOIN sysindexes i ON o.id = i.id
WHERE (o.xtype = 'U') AND (INDEXPROPERTY(i.id, i.name, 'isStatistics') = 0) AND (i.dpages > 0)
and not i.name is null
ORDER BY o.name, i.indid;

OPEN MyCursor;
FETCH NEXT FROM MyCursor INTO @MyTable, @MyIndex;
WHILE @@FETCH_STATUS=0
BEGIN
PRINT 'Дефрагментация индекса '+@MyIndex+' из таблицы '+@MyTable
DBCC INDEXDEFRAG (0,@MyTable,@MyIndex)
FETCH NEXT FROM MyCursor INTO @MyTable, @MyIndex;
END;
CLOSE MyCursor;
DEALLOCATE MyCursor;


Перестройка индекса
Код
DECLARE @MyTable varchar(120);
DECLARE @MyIndex varchar(120);
DECLARE MyCursor CURSOR FOR
SELECT o.name, i.name
FROM sysobjects o INNER JOIN sysindexes i ON o.id = i.id
WHERE (o.xtype = 'U') AND (INDEXPROPERTY(i.id, i.name, 'isStatistics') = 0) AND (i.dpages > 0)
and not i.name is null
ORDER BY o.name, i.indid;

OPEN MyCursor;
FETCH NEXT FROM MyCursor INTO @MyTable, @MyIndex;
WHILE @@FETCH_STATUS=0
BEGIN
PRINT 'Перестройка индекса '+@MyIndex+' из таблицы '+@MyTable
DBCC DBREINDEX(@MyTable, @MyIndex, 0)
FETCH NEXT FROM MyCursor INTO @MyTable, @MyIndex;
END;
CLOSE MyCursor;
DEALLOCATE MyCursor;


Следует отметить, что дефрагментация индекса не влияет на текущую активность пользователей в момент ее проведения. Перестройка индекса накладывает блокировку на любые модификации данных в таблице.

Дефрагментацию диска нужно проводить после дефрагментации/перестройки индексов баз данных.

Пользователь оффлайн Распечатать
 

11.11.2015 11:37

MaXX


Пользователь iNETsHOP


Количество сообщений   64
Зарегистрирован:   11-11-2008, 04:35:57
Увеличение скорости обработки прайсов
Цитата
Написал: dominion
Есть какие-то возможности этот процесс ускорить? железо или софт?


Когда-то сталкивался с подобной проблемой, когда история в базе достигаетмиллионов строк. Можно увеличить выделение оперативной памяти для базы данных.

А вообще если эти прайсы нормальные, т.е. нормальной структуры и эта структура не меняется поставщиком "от балды", то можно настроить прямую заливку сразу в базу минуя интерфейс программы. Это дает прирост скорости в разы, а иногда и в десятки раз.

Ускорение прямой заливки связано с тем, что не производится куча всевозможных проверок значений ячеек, строк прайса итп итд. При необходимости в скл-запросе можно сделать пару преобразований для всего прайса по аналогии с "Скрипт обработки суммарный" который делает программа после чтения данных из прайс-листа.

Пользователь оффлайн Распечатать
 

11.11.2015 14:31

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
Прямая загрузка прайсов в базу данных
Цитата
Написал: MaXX
А вообще если эти прайсы нормальные, т.е. нормальной структуры и эта структура не меняется поставщиком "от балды", то можно настроить прямую заливку сразу в базу минуя интерфейс программы. Это дает прирост скорости в разы, а иногда и в десятки раз.


Да, такая методика ускоряет загрузку прайсов, но она требует первичного анализа ситуации (к сожалению автор темы не выходит на связь) и индивидуальной настройки, т.к. OPENQUERY/OPENROWSET/OPENDATASOURCE требуют настройки или подключения удаленного сервера (Excel) и они зависят от установленных провайдеров OLEDB (Microsoft.Jet.OLEDB.4.0, Microsoft.ACE.OLEDB.12.0).
Пользователь оффлайн Распечатать
 

30.11.2015 11:52

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
Ускорение загрузки прайс-листов
В новой версии клиента iNETsHOP 6.4.3.273/0054:

1. Оптимизация алгоритма импорта прайсов. Переработан алгоритм поддержки многопоточности и импорта прайс-листов в целом. Прирост особенно будет заметен на количестве процессоров (ядер) от 4-х и выше.
2. Исправлена не корректная работа автозамены текста (увеличена скорость поиска/замены) при импорте прайсов.

Все желающие клиенты могут принять участие в тестировании новой версии. Так же принимаются пожелания на расширение/усовершенствование функциональности программы.

Пользователь оффлайн Распечатать
 

Распечатать  |  Следующая тема  |  Предыдущая тема
Перейти
 

Статистика форума
Тем: 506, Сообщений: 3222, Пользователей: 2255
Приветствуем новичка по имени Gotit
Ближайшие дни рождения
Сегодня именинников нет


iNETsHOP - программа для формирования каталога товаров интернет-магазина и обработки прайсов Copyright 2007-2015 "Программа iNETsHOP - работа с прайс-листами поставщиков для интернет магазинов ®" iNETsHOP - обработка, объединение, анализ прайсов поставщиков и конкурентов