I've done a lot of work and no, that is not normal.
A few things: First - SQL server has tools for migrating data that's pretty fast. SQL bulk copy can use some of these. Check to see if the built in db tools are better for this.
SQL bulk copy can handle way more than 15,000 records
Why are you wrapping a data dump in a transaction? That will slow things down for sure.
You generally shouldn't be doing huge queries like that to where you're nearing the parameter limit.
Can you share the code?
One thing to know about transactions is that they track data and then write it. It's not the opening that slows it down. I have a question though, what is your source data? Do you have a big CSV for something? Can you do a db to db transfer instead? There's another tool called the BCP utility.
Edit: SQL server/ssms have tools for doing migrations and batch imports