У меня есть выбор из (ничего сложного)
Select * from VIEW
Это представление имеет около 6000 записей и около 40 столбцов. Это происходит из базы данных Lotus Notes SQL. Так что мой диск ODBC - это драйвер LotusNotesSQL. Выполнение запроса занимает около 30 секунд. Компания, в которой я работал, использовала EXCEL , чтобы выполнить запрос и записать все на лист. Так как я предполагаю, что он пишет все по одной ячейке, на это уходит до 30-40 минут.
Затем я использовал доступ MS. Я сделал копию локальной таблицы на Access для хранения данных. Моя первая попытка была
INSERT INTO COLUMNS OF LOCAL TABLE
FROM (SELECT * FROM VIEW)
обратите внимание, что это псевдокод. Это прошло успешно, но снова заняло 20 - 30 минут. Затем я использовал VBA для циклического прохождения данных и вставки их вручную (используя оператор INSERT) для каждой отдельной записи. Это заняло около 10 - 15 минут. Это был мой лучший случай.
Что мне нужно сделать после:
После того, как у меня есть данные, мне нужно отфильтровать их по отделам. Дело в том, что я помещаю предложение where в SQL-запрос (время увеличивается с 30 секунд до выполнения запроса, примерно до 10 минут + время записи в локальную таблицу / excel). Я не знаю почему. МОЖЕТ, потому что все столбцы - это текстовые столбцы?
Если мы изменим некоторые столбцы на целые, сделает это быстрее с точки зрения предложения where?
Я ищу предложения о том, как подойти к этому. Мой босс сказал, что мы могли бы использовать какое-нибудь решение на основе Java. Это поможет? Я не Java-человек, а C #, и, возможно, я буду убеждать их использовать C #, но я в основном ищу предложения о том, как сократить время. Я уже сократил это с 40 минут до 10 минут, но хочу это меньше 2 минут.
Просто подведем итог:
Запрос занимает около 30 секунд, чтобы превысить
Запрос занимает около 15-40 минут для локального использования в Excel / Access
Нужно меньше 2 минут
Можно использовать решение на основе Java
Вы можете предложить другие решения вместо Java.