Переход с драйвера FreeTDS на драйвер MSODBC17

Мне нужно было изменить наш sql-драйвер с FreeTDS на msobdc17 для поддержки msi. Проблема приводит к ухудшению наших операций вставки. В частности, когда мы вставляем массово (с размером пакета ~=50), производительность сильно снижается для параллельных процессов, обращающихся к одной и той же базе данных (хотя и с другим соединением). Я получаю следующую ошибку, вероятно, связанную:

Операция транзакции не может быть выполнена, потому что есть ожидающие запросы, работающие с этой транзакцией

Я использую следующую стековую среду:

python:3.7.5-slim-stretch (Linux container)
msodbcsql17=17.6.1.1-1
mssql-tools=17.6.1.1-1 
unixodbc-dev=2.3.7
Django==1.11.29
django-pyodbc-azure==1.11.15.0
pyodbc==4.0.30

до этого у нас был FreeTDS с версиями:

freetds-dev=0.91-6.1+b4 
freetds-bin=0.91-6.1+b4 
tdsodbc=0.91-6.1+b4 

К настоящему времени я пробовал "поиграть" с:

  1. Включение MARS
  2. Включение соединений пула
  3. Набор Threading=1 в odbcinst.ini

Ничего из этого не помогло.

Кто-нибудь сталкивался с этой проблемой или какие-либо предложения по параметрам конфигурации могут помочь?

0 ответов

Другие вопросы по тегам