Today (2023 March 10) I am having memories of helping with bcp from one SQL Server 2008 R2 database to another of a 9.5 billion+ row table back in 2013. Yikes. bcp out - no need to think about uniqueifiers and error 666.
bcp in of 9.5 billion rows to a table with a clustered index and some NCIs on the other hand...
SELECT text FROM sys.messages WHERE message_id = 666 and language_id=1033
The maximum system-generated unique value for a duplicate group was exceeded for index with partition ID %I64d. Dropping and re-creating the index may resolve this; otherwise, use another clustering key.SQL 2005 kb 937533 is relevant. Table spool may only be able to handle 2,147,483,648 input rows before exhausting the available values for uniqueifier.
Here's a SQL Server 2008 example from the wayback machine.
First posted 2010 March 8
General considerations around uniqueifier and error 666 here.
2018 February 16
Now i *think* if the -b parameter for bcp specifies a batch size (maybe 100,000 or a million in this case) for an humongous import it will:
- lower the liability for transaction log full that accompanies simple recovery model, ADR not enabled in SQL Server 2019 and beyond, and a clustered index which is non-empty to start with
- lower the maximum footprint of spool or spill in tempdb for sort before clustered index insert- avoid potential uniqueifier 666 errors
Once i get the most recent trouble with big-big table migration sorted out, i'll work on a repro of the problem.
ReplyDeleteWow your blog sach me bahut hi lajawab hai mene adhi Jayada information apne collages ke project submit ki hai jisme ye batya gye hai compute course kitna jada benefir course hai computer ki jarurat har sector me padti hai or apko blog me article computer ke bare me maja a gye sach thanks you ese article submit karne ke liye
Graphic Designing course in Delhi NCR,
Best computer course in Delhi
Best Fine art Institute in Delhi