我想进一步了解一下使用bcp命令导出数据的顺序。在某些地方,它按索引顺序返回值,但如果表中没有索引,怎么办?(1)我知道,如果我们希望数据保持特定的顺序,我们应该在bcp查询中使用order子句,但是but怎么办?(2)如果but没有特定的顺序,那么在写入文件时如何定义批处理。内部架构说它在表上做了一个简单的选择。如果是这样的话,那么在bcp中,选择* just streams数据,然后为了写入文件而将数据划分成批吗?(3)
此外,在执行bcp时,整个表上的锁是获得的还是批处理的?(4)有一个TABLOCK选项,但只能在数据的大容量导入过程中使用。难道bcp只是一个在表上执行select *的客户端,它将遵循我们为事务设置的任何隔离级别的锁定原则吗?(5) 这里,据说bcp不能用于快照隔离,请更清楚地解释原因好吗?
是否有任何文章更详细地解释bcp内部架构,以及行的排序和锁定。
有很多关于bcp导入的相关问题的文章,但是在bcp导出方面却找不到很多,因此在这里询问。谢谢
发布于 2022-10-31 16:07:20
使用bcp命令导出数据的顺序
在查询中没有按列排序的情况下,订单是无文档的,并且依赖于计划。如果您关心,可以使用queryout选项,并使用ORDER子句包含一些键。
bcp只是一个在表上执行select *的客户端
是。没有什么特别事情。如果你想看看它在做什么,你可以使用Profiler。
https://dba.stackexchange.com/questions/319005
复制相似问题