В настоящее время я создаю API, который имеет доступ к нашей системе Navision. Я довольно новичок в этом, но я только добавил некоторые функциональные возможности к уже существующей системе. Дело в том:
ОБНОВЛЕНИЕ 2:
Я думаю, что версия Navision не имеет значения, так как я запрашиваю базу данных MSSQL, прикрепленную напрямую. Может быть, версия БД MSSQL может быть актуальной:
Microsoft SQL Server 2012 — 11.0.2218.0 (X64)
12 июня 2012 г. 13:05:25
Авторское право (c) Microsoft Corporation
Standard Edition (64-разрядная версия) в Windows NT 6.1 (сборка 7601: пакет обновления 1) (гипервизор)
ОБНОВИТЬ:
Я уже перебрал файл CSV, и поисковый запрос выполняется каждый раз, когда я получаю новое письмо, так как он не может вызвать сервер MSSQL с оператором IN () с 70 000 писем в нем.
Я также только открыл файл CSV для записи один раз, а не на каждый запрос.
Выполнил:
Проблема:
Информация:
У кого-нибудь из вас есть предложения по оптимизации процесса?
Любая помощь будет оценена.
// Ульрик Макардл
Не зная деталей того, как вы реализовали процесс, невозможно говорить о специфике. Но вот несколько общих ловушек, которых следует избегать:
1) При написании скрипта для разбора большого текстового CSV-файла, делайте это построчно. Не пытайтесь загрузить файл в память — в гигантский массив или что-то подобное. Это крайне неэффективно. Скорее, откройте файл и переберите его построчно, используя что-то вроде цикла while и fgetcsv (), обработайте эту строку, выбросьте ее и загрузите другую.
2) Сделать СУБД — MySQL, Oracle, Postgres, что угодно — справиться с тяжелой работой. PHP не место для обработки данных. Оптимизировать операторы SQL, другими словами. Я бы предположил, что бит «Navision поворачивает медленно» лучше всего сопровождать вниманием к SQL.
Других решений пока нет …