Проблемът ви не е в обема на данните сам по себе си , това е, че някои от вашите кортежи съдържат numpy.int64
стойности, които не могат да се използват директно като стойности на параметри за вашия SQL израз. Например
a = numpy.array([10, 11, 12], dtype=numpy.int64)
params = (1, 1, a[1], 1, 1, 1)
crsr.execute(sql, params)
ще хвърли
защото третата стойност на параметъра е numpy.int64
елемент от вашия numpy масив a
. Преобразуване на тази стойност с int()
ще избегне проблема:
a = numpy.array([10, 11, 12], dtype=numpy.int64)
params = (1, 1, int(a[1]), 1, 1, 1)
crsr.execute(sql, params)
Между другото, причината
sql = 'SET GLOBAL max_allowed_packet=50*1024*1024'
cursor.execute(sql)
не работи е този max_allowed_packet
е настройка на MySQL, която няма никакво значение за Microsoft SQL Server.