this post was submitted on 06 Sep 2024
14 points (81.8% liked)

Programming

17454 readers
72 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
 

Omg it's sooo daammmn slooow it takes around 30 seconds to bulk - insert 15000 rows

Disabling indices doesn't help. Database log is at SIMPLE. My table is 50 columns wide, and from what i understand the main reason is the stupid limit of 2100 parameters in query in ODBC driver. I am using the . NET SqlBulkCopy. I only open the connection + transaction once per ~15000 inserts

I have 50 millions rows to insert, it takes literally days, please send help, i can fucking write with a pen and paper faster than damned Microsoft driver inserts rows

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 4 points 2 months ago* (last edited 2 months ago)

Just used SqlBulkCopy via C# and .NET a few weeks ago to insert 5-7 million rows into multiple tables in a matter of seconds.

I don't think any of my tables had 50 columns, but one had maybe half of that. Reading your other posts, my experience was different in these ways:

  • Not using Python but C#
  • The machine performing the insert was physically close to the SQL server and did not utilize WAN. (Not sure if this applies to you as well, I don't recall you saying)
  • I don't remember putting a transaction on the insert. I just followed Microsoft's examples from the documentation. A transaction I think has a chance of nullifying the speed you gain from using bulk insert.

Lastly I think you should consider being be more respectful in some of your replies. We all get being frustrated with technology, but you don't need to extend that to people who are helping you for free.