Команда PostgreSQL COPY локально работает намного медленнее по сравнению с удаленным сервером с идентичными характеристиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Команда PostgreSQL COPY локально работает намного медленнее по сравнению с удаленным сервером с идентичными характеристи

Сообщение Anonymous »

Я столкнулся с проблемой производительности команды PostgreSQL COPY при ее локальном запуске. Мой удаленный внутренний сервер приложений и мой локальный компьютер имеют одинаковые характеристики (оба с твердотельными накопителями, одинаковой оперативной памятью и ядрами ЦП). Сама база данных PostgreSQL размещена на другом удаленном сервере, и доступ к базе данных возможен только через определенное интернет-соединение, включенное в белый список.
Проблема в том, что команда COPY выполняется слишком часто. на моей локальной машине медленнее, чем на удаленном сервере, хотя обе среды очень похожи. Мой локальный компьютер подключен к Интернету из белого списка, что тоже очень быстро.
Вот фрагмент моего кода:

Код: Выделить всё

import psycopg2
import glob
import os
from multiprocessing import Pool
from functools import partial

def get_connection(env):
conn = psycopg2.connect(f"""postgresql://{env["USER"]}:{env["PASSWORD"]}@{env["HOST"]}:{env["PORT"]}/{env["NAME"]}""")
try:
yield conn
finally:
conn.close()

def copy_from(file_path: str, table_name: str, env, column_string: str):
with get_connection(env) as connection:
with connection.cursor() as cursor:
with open(file_path, "r") as f:
query = f"COPY {table_name} ({column_string}) FROM STDIN WITH (FORMAT CSV, HEADER FALSE, DELIMITER ',', NULL '')"
cursor.copy_expert(query, f)
connection.commit()

if __name__ == "__main__":
file_path_list = sorted(glob.glob(os.path.join(file_path, "*.csv")))
with Pool(cores_to_use) as p:
p.map(partial(copy_from, table_name=table_name, env=env, column_string=column_string), file_path_list)
Вопросы:
  • Почему команда COPY может работать медленнее локально несмотря на схожие характеристики и быстрое подключение к Интернету?
  • Есть ли какие-либо конкретные оптимизации или конфигурации, которые мне следует проверить на своем локальном компьютере для повышения производительности?
  • Можно ли? задержка сети или другие факторы влияют на локальную производительность, и если да, то как я могу решить эту проблему?
Будем очень признательны за любые идеи и предложения!< /п>

Подробнее здесь: https://stackoverflow.com/questions/789 ... er-with-id
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»