Я использую Pandas read sql для чтения таблицы netezza через jdbc / jaydebeapi.
start_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
print(" DB Start Date Time is " + str(start_time))
int_df = pd.read_sql(query,conn)
end_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
print(" DB End Date Time is " + str(end_time))
запрос представляет собой простой запрос * from database.table
I Читаю таблицу с 700К строками и создаю csv (размер 600 МБ при создании); Чтение sql занимает чертовски много времени, чтобы прочитать таблицу базы данных. Дата начала БД Время: 2020-08-03 10: 26: 11.317 Дата окончания БД Время: 2020-08-03 11: 15: 19.841
Как видите, это почти час. Почему это так долго читается?
Я могу прочитать эту таблицу за несколько секунд, используя nz sql, и всего за 5 секунд, используя искровой фрейм данных (включая действие записи в csv). в чем может быть ошибка? У меня нет преобразований - просто извлечение;
У моего сервера нет проблем с памятью; Он имеет более 200 ГБ свободного места в памяти и почти не использует процессор во время выполнения процесса. Что такое узкое место? Есть ли другие лучшие методы для этого?