Я выполняю хранимую процедуру, которая перебирает таблицу с помощью курсора, проходит 20 000 сценариев ios, а затем вставляет строки на основе различных условий соединения для каждого сценария. Когда я запускаю его в SQL Server Management Studio, это занимает примерно 5 часов.
Однако, когда я пытаюсь запустить его с помощью сценария Python, это занимает примерно в 3 раза больше времени. Вот мой код в Python:
import pyodbc
#Database connection
server = '<server name>'
db = '<db name>'
process_start = datetime.now()
sql = """exec dbo.sp_loop_cursor_execute_insert"""
conn.execute(sql)
conn.commit()
#close connection
conn.close()
Я подозреваю, что он имеет какое-то отношение к тому, как работает фиксация, где он фиксируется только после запуска всей хранимой процедуры. Мне интересно, есть ли способ сделать это без добавления функции цикла в Python?