Why don't bulk imports TABLOCK by default?

  • I've been reading about the "table lock on bulk load" option and TABLOCK hint.

    So my understanding is by default only row locks are taken out and other queries can read/write data while the bulk load is going on. However if you were doing parallel bulk loads with overlapping keys from a clustered index then they may block each other.

    But if the option is enabled, you can do the parallel bulk loads without blocking because a table lock is taken out, however, other processes couldn't read/write the data until they're all done.

    Is that the gist of it? I think I got confused by some misinformation. Don't all those row locks eventually likely escalate to a table lock anyway though?

  • Sounds like you have it covered. Lock escalation occurs, but I don't find it's a common thing. If you're doing the type of data load that's going to benefit from what's considered non-standard behavior within SQL Server, you're best served by taking direct control of that process.

    "The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
    - Theodore Roosevelt

    Author of:
    SQL Server Execution Plans
    SQL Server Query Performance Tuning

Viewing 2 posts - 1 through 1 (of 1 total)

You must be logged in to reply to this topic. Login to reply