我尝试使用bcp将表格写入文本格式。该表大约有1300万行。列中有5个由int,2 nvarchar(max)和2 varchar(max)组成。
当我尝试使用以下bcp命令时:
bcp "SELECT * from table" QueryOut "C:\file.txt" -U user -P password -S "server\server" -c -C RAW -a 65535
至少可以说表现糟糕。处理所有行大约需要1小时。当我将查询限制为只有一个int列时,大约需要50秒。 int列和1 varchar(max)大约需要3分钟。
所以对我来说很明显,问题似乎是列的声明或列中的数据。因此,其中一个varchar(max)列中的数据长度大约为750万(这种情况很少见,但却发生了)。
我尝试过使用视图,并尝试将记录插入物理临时表中。什么都没有帮助表现。如果长度小于100万,我目前正试图插入视图。
这是BCP的限制吗?我知道其中一些列的页面数量会非常大,但我无法在线或在API /描述中找到任何有关此类限制的内容。
提前致谢