Добро пожаловать, Гость. Для того, чтобы отвечать на сообщения и создавать новые темы, Вам необходимо зарегистрироваться, если Вы уже зарегистрированы, то войдите используя Ваши E-Mail и Пароль. |
|
Увеличение скорости обработки прайсов |
|
|
dominion
Пользователь iNETsHOP
Количество сообщений
8
Зарегистрирован:
11-01-2011, 12:14:20
|
Увеличение скорости обработки прайсов
Столкнулись с такой проблемой. За последнее время база очень сильно выросла и теперь большие прайсы 30-50 тыс позиций приходиться обновлять по 4-5 часов, что делает весь процесс обновления цен весьма затяжным. Например, у нас выходит получить обновленный свой прайс только к 18, начав обработку в 10.
Есть какие-то возможности этот процесс ускорить? железо или софт?
|
Распечатать
|
|
support
Support
Количество сообщений
1199
Зарегистрирован:
11-04-2008, 19:11:57
|
Работа сервера СУБД
Скорость обработки информации в той или иной мере зависит от нескольких факторов, таких как скорость работы дисковой подсистемы, дефрагментация файлов базы данных, дефрагментация индексов, загрузка процессора, размер оперативной памяти сервера и выделенный объем памяти для СУБД и т.п.
|
Распечатать
|
|
dominion
Пользователь iNETsHOP
Тема начата
Количество сообщений
8
Зарегистрирован:
11-01-2011, 12:14:20
|
Intel Celeron g540 2.5GHz
8gb ram
500GB винчестер
стоит вин 7
Есть смысл что-то менять? Что-то конкретно даст увеличение скорости?
|
Распечатать
|
|
support
Support
Количество сообщений
1199
Зарегистрирован:
11-04-2008, 19:11:57
|
Производительность системы
Данный процессор далеко не самый быстрый (судя по стестам Intel Celeron g540) как и все "Селероны", но проблема скорее всего комплексная. Попробуйте для начала обойтись "малой кровью" - проведите дефрагментацию индексов базы данных (а лучше перестройте их), затем дефрагментацию дисков, проверьте выделение оперативной памяти для СУБД. Так же если у вас ОС x64, а СУБД x32 - то возможно стоит задуматься о переходе на СУБД x64 чтобы использовать больший объем оперативной памяти.
|
Распечатать
|
|
vikarenko
Пользователь iNETsHOP
Количество сообщений
25
Зарегистрирован:
17-12-2014, 08:45:27
|
Производительность системы
Цитата Написал: support
проведите дефрагментацию индексов базы данных (а лучше перестройте их)
Подскажите как это сделать. Это нужно делать до дефрагментации дисков или после?
|
Распечатать
|
|
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;
Следует отметить, что дефрагментация индекса не влияет на текущую активность пользователей в момент ее проведения. Перестройка индекса накладывает блокировку на любые модификации данных в таблице.
Дефрагментацию диска нужно проводить после дефрагментации/перестройки индексов баз данных.
|
Распечатать
|
|
MaXX
Пользователь iNETsHOP
Количество сообщений
64
Зарегистрирован:
11-11-2008, 04:35:57
|
Увеличение скорости обработки прайсов
Цитата Написал: dominion
Есть какие-то возможности этот процесс ускорить? железо или софт?
Когда-то сталкивался с подобной проблемой, когда история в базе достигаетмиллионов строк. Можно увеличить выделение оперативной памяти для базы данных.
А вообще если эти прайсы нормальные, т.е. нормальной структуры и эта структура не меняется поставщиком "от балды", то можно настроить прямую заливку сразу в базу минуя интерфейс программы. Это дает прирост скорости в разы, а иногда и в десятки раз.
Ускорение прямой заливки связано с тем, что не производится куча всевозможных проверок значений ячеек, строк прайса итп итд. При необходимости в скл-запросе можно сделать пару преобразований для всего прайса по аналогии с "Скрипт обработки суммарный" который делает программа после чтения данных из прайс-листа.
|
Распечатать
|
|
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).
|
Распечатать
|
|
support
Support
Количество сообщений
1199
Зарегистрирован:
11-04-2008, 19:11:57
|
Ускорение загрузки прайс-листов
В новой версии клиента iNETsHOP 6.4.3.273/0054:
1. Оптимизация алгоритма импорта прайсов. Переработан алгоритм поддержки многопоточности и импорта прайс-листов в целом. Прирост особенно будет заметен на количестве процессоров (ядер) от 4-х и выше.
2. Исправлена не корректная работа автозамены текста (увеличена скорость поиска/замены) при импорте прайсов.
Все желающие клиенты могут принять участие в тестировании новой версии. Так же принимаются пожелания на расширение/усовершенствование функциональности программы.
|
Распечатать
|
|
Статистика форума |
|
Тем: 506, Сообщений: 3222, Пользователей: 2257
Приветствуем новичка по имени L9800708 |
Ближайшие дни рождения |
|
Сегодня именинников нет |
|