bcp在导出大量数据时 会不会锁表,对业务的增删改查有影响么

邵鹏飞 0 信誉分
2024-12-20T06:47:46.6166667+00:00

bcp在导出大量数据时 会不会锁表,对业务的增删改查有影响么,2020202020202020202020

SQL Server
SQL Server
Microsoft 关系数据库管理和分析系统的一个系列,用于实现电子商务、业务线和数据仓库解决方案。
206 个问题
{count} 票

2 个答案

排序依据: 非常有帮助
  1. ZoeHui-MSFT 41,291 信誉分
    2024-12-20T07:55:10.59+00:00

    Hi @邵鹏飞,

    锁定范围:在 BCP 加载数据时,会应用 表级锁(TABLOCK),这种锁是为了性能优化。这意味着,其他事务在尝试修改表时可能会被阻塞,具体取决于隔离级别。

    隔离级别:SQL Server 默认使用 读取已提交(READ COMMITTED) 隔离级别,这确保了 BCP 只会读取已提交的数据,并且不会与其他事务发生冲突。然而,任何其他对表的插入、更新或删除操作可能会被阻塞,直到 BCP 操作完成。

    为了最小化对其他操作的影响,可以考虑在低峰期执行大规模数据导出,或者通过分批次导出数据来减少对系统性能的负担。

    Regards,

    Zoe Hui


    If the answer is helpful, please click "Accept Answer" and upvote it.


  2. soar soul 0 信誉分
    2025-03-03T13:43:05.2533333+00:00

    Hi @邵鹏飞,

    BCP导出表数据,锁表可能不是最主要的,主要是根据表的约束关系,导出表的先后顺序。

    我们做过像oracle的impdp和expdp工具,主要针对sqlserver,你的sqlserver数据的批量导出可以使用这个工具。它是将数据导出。同样可以将导出的数据,进行导入。做过千万级数据的处理,性能还可以

    可能不同的是你是要迁移到TDsql上,这个是mysql吗,没有用过。导出可以用,导入应该不行。

    但是导出的数据是insert形式的数据,也可能可以使用。

    可以参照下面的链接:

    https://blog.csdn.net/soarfeng/article/details/145537062?spm=1011.2415.3001.5331

    0 个注释 无注释

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。