从存储过程批量复制

2024-01-12

我的数据库中有表 A、B 和 C。我必须将A和B得到的结果放入表C中。

目前,我有一个 SP,它将 A 和 B 的结果返回到 C# 应用程序。该结果将使用“System.Data.SqlClient.SqlBulkCopy”复制到表 C 中。优点是在使用批量复制插入期间,不会创建日志文件。

我想通过处理 SP 本身的插入来避免这种额外的流量。但是,它不应该使用任何日志文件。有什么办法可以实现这个目标吗?

请分享您的想法。

数据量: 150,000

Database:SQL Server 2005

数据库处于完全恢复模式;它无法改变..是选择进入在这种情况下有用吗?

编辑:当我使用 System.Data.SqlClient.SqlBulkCopy 时,操作将在 3 分钟内完成;正常插入需要30分钟...这个特殊操作不需要恢复;但是数据库中的其他操作必须恢复 - 因此我无法更改整个数据库的恢复模式。

Thanks

Lijo


您可以使用SELECT INTOBULK_LOGGED恢复模型,以便最大限度地减少写入事务日志的记录数量,如示例 B 中所述INTO 条款文档 (MSDN) http://msdn.microsoft.com/en-us/library/ms188029.aspx:

ALTER DATABASE AdventureWorks2008R2 SET RECOVERY BULK_LOGGED;
GO
-- Put your SELECT INTO statement here
GO
ALTER DATABASE AdventureWorks2008R2 SET RECOVERY FULL;

这对于批量插入也是必需的如果您希望对事务日志的影响最小,如中所述优化批量导入性能 (MSDN) http://msdn.microsoft.com/en-us/library/ms190421.aspx:

对于完全恢复模式下的数据库,批量导入期间执行的所有行插入操作都会完全记录在事务日志中。对于大量数据导入,这可能会导致事务日志快速填满。对于大容量导入操作,最小日志记录比完整日志记录更有效,并且降低了大容量导入操作填满日志空间的可能性。要在通常使用完整恢复模式的数据库上最小化记录大容量导入操作,您可以首先将数据库切换到大容量日志恢复模式。批量导入数据后,将恢复模式切换回完整恢复模式。

(强调我的)

IE。如果您尚未将数据库恢复模式设置为BULK_LOGGED在执行批量插入之前您目前也无法通过批量插入获得最小事务日志记录的好处因此事务日志不会成为您速度下降的根源。 (这SqlBulkCopy类不会自动为您执行此操作或任何其他操作)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从存储过程批量复制 的相关文章

  • 如何使用 ASP.NET 和 jQuery 返回 JSON

    我不知道如何用我的代码返回 JSON 数据 JS function ajax type POST url Default aspx GetProducts data contentType application json charset
  • 链接器错误:头文件中对函数的未定义引用

    I did尝试找到我的具体问题 但我发现的最接近的是这个问题 https stackoverflow com questions 43143833 linker error when including header in files ot
  • DDD - 跨有界上下文边界聚合根实体使用情况

    在域模型中对实体身份进行建模的一种建议方法是创建值对象而不是使用原始类型 例如在 C 中 public class CustomerId public long Id get set 在我看来 此类应该在整个应用程序中使用 而不仅仅是在域模
  • SQL Server 架构和默认架构

    我的数据库中有一个模式定义 除了现在每次执行 sql 语句时我都必须提供模式 SELECT FROM myschema table 我使用 Management Studio 为我的用户设置了默认架构 并运行了ALTER USER myUs
  • 为什么 XRecordDisableContext() 不起作用?

    void Callback XPointer XRecordInterceptData pRecord std cout lt lt my logs n int main if auto const pDisplay XOpenDispla
  • 将 IRandomAccessStreamWithContentType 转换为 Byte[]

    在我的应用程序中 我允许用户使用 ContactPicker 添加联系人 我尝试将 IRandomAccessStreamWithContentType 转换为 Byte IRandomAccessStreamWithContentType
  • Cython memoryviews:使用数组参数包装 c 函数以传递 numpy 数组

    我正在尝试使用 Cython 用数组参数包装 c 函数 quick sort 所以我可以将 numpy 数组传递给它 我已经在文档 SO 和网络中搜索了一个可行的 最小的示例 但没有找到它 我已经尝试了几种可能性 但没有任何进展 所以请帮我
  • 在业务逻辑中使用反射是一种好的做法吗?

    我需要开发一个由两个主要部分组成的应用程序 具有特定业务类别的业务逻辑部分 例如书籍 图书馆 作者 一个通用部分 可以在数据网格中显示书籍 图书馆 将它们映射到数据库 通用部分使用反射从业务类中获取数据 而不需要在业务类中编写特定的数据网格
  • 为什么当我使用 Server.Transfer() 时没有创建 HTTP 标头?

    我正在使用 aspx 页面根据给定的参数从文件系统提供图像文件 Server Transfer imageFilePath 当此代码运行时 会提供图像 但不会上一次更改HTTP 标头已创建 与直接从同一服务器上的 URL 调用同一文件不同
  • 为什么 std::move() 没有窃取 int 值? [复制]

    这个问题在这里已经有答案了 std move 正在窃取字符串值 而不是 int 请帮助我 int main int i 50 string str Mahesh int j std move i string name std move s
  • 类库的 app.config 中的绑定重定向有什么作用吗?

    我经常使用的 VS 解决方案包括单个可执行项目 控制台应用程序 网络应用程序 和许多类库项目这些都被可执行文件引用 使用 NuGet 并安装包时 经常会出现app config为每个项目创建的文件 通常只包含合并引用程序集版本的绑定重定向列
  • 从 QFile 获取句柄

    我有一个QFile 但我需要在其上调用一些仅接受HANDLE 有没有办法找回底层HANDLE of the QFile 我找到了一种使用的方法 get osfhandle 在 MinGW 和 VS 中可用 QFile file HANDLE
  • 虚拟调用与类型检查的另一个例子

    Problem 我发誓 每次我脑子里都在想 我应该使用虚拟调用而不是类型检查 例如 if obj is Foo else if obj is Bar 我想出了另一个例子 我不知道如何实现前者 我正在通过串行端口实现分组协议 一些伪代码可以最
  • 如何通过命令行在 MSBuild 中指定 CodeAnalysisRuleset

    我希望能够在命令行 MSBuild 中指定代码分析规则 用于代码分析 FXCOP 项目文件中会有这样的内容
  • 检查 ASP.NET Web 应用程序在运行时是否处于调试模式的首选方法?

    在编译时我可以做这样的检查 if DEBUG Log something endif 但最好检查一下是否debug false 是在运行时在 Web config 中设置的吗 HttpContext IsDebuggingEnabled h
  • 如何取消异步下载?

    我有一个问题 如何取消下载 client CancelAsync 对我来说不起作用 因为如果我取消下载并开始新的下载 代码仍会尝试访问旧的下载文件 您必须知道 在我的代码中 有一个部分 当下载完成时 它应该解压缩已下载的文件 像这样的示例
  • 如何使用 MonoTouch c# 以编程方式获取联系人?

    如何获取 iPhone 中的联系人 我需要从 iPhone 联系人中获取所有属性 如何使用MonoTouch以编程方式实现 ABAddressBook iPhoneAddressBook new ABAddressBook ABPerson
  • Listbox手动DrawItem大字体

    我正在尝试绘制末端是一个的项目 红色字符 并将其删除 字符 并用黑色绘制其他项目 这是我的代码 private void listBox1 DrawItem object sender DrawItemEventArgs e e DrawB
  • 泛型和实现 IComparable

    我对泛型非常陌生 我正在尝试编写一个简单的类 它将是泛型的 但也允许对字符串成员变量的一些描述进行排序 目前我有一个基本类 但是当我尝试实现接口成员 CompareTo 时 我在顶部收到一个错误 告诉我它尚未实现 这里有什么问题呢 usin
  • 我可以调整移出的矢量的大小吗?

    我有一些代码 我想在其中绝对确保移出的代码std vector不会留下秘密数据 考虑加密密钥管理 在我的班级的移动构造函数中 我做了类似的事情 X X rhs secret vector std move rhs secret vector

随机推荐

  • Nunjucks 中的 Javascript 函数

    所以我在 Nunjucks 文档中找到了这个 函数调用 如果您已将 JavaScript 方法传递给模板 则可以像平常一样调用它 foo 1 2 3 但我似乎无法工作 我尝试将我的函数放在 html 页面上
  • 选择文件夹对话框 WPF

    我开发了一个 WPF4 应用程序 在我的应用程序中 我需要让用户选择一个文件夹 应用程序将在其中存储某些内容 文件 生成的报告等 我的要求 能够查看标准文件夹树 能够选择文件夹 WPF 外观和感觉 此对话框必须看起来像为 Windows V
  • 在 R 版本 3.0.2 上安装 Rtools

    我已经安装了devtools对于 R 但是当我使用以下命令调用库时 library devtools 我得到以下输出 WARNING Rtools is required to build R packages but is not cur
  • 使用vba将文件从一个文件夹复制到另一个文件夹

    我知道有一些关于这个主题的类似帖子 但是 我有一个与我在这里看到的所有代码 在谈论这个主题时 不同的代码 我收到的错误是找不到该文件 但这是不可能的 因为我正在 fso CopyFile 中用作 SOURCE 的同一文件夹中搜索文件 所以我
  • C# Winform 关闭程序后进程仍在Windows任务列表管理器中

    为什么关闭程序后该进程仍在Windows任务列表管理器中 我使用登录Form cs STAThread static void Main Application EnableVisualStyles Application SetCompa
  • 我可以从同一解决方案中的不同项目访问另一个项目的嵌入式资源吗?

    我有一个 xml 文件 它作为 Project A 中的嵌入资源 我想从引用 Project A 的 Project B 访问此嵌入资源 基本上 Project B 由单元测试组成 我使用 ReSharper 运行它们 当我在 Projec
  • Python可写缓冲区/内存视图到数组/字节数组/ctypes字符串缓冲区

    Problem 固定大小记录的二进制数据 想要使用struct unpack from和struct pack into来操作二进制数据 不需要数据副本 想要内存中的多个视图来简单地抵消计算等 数据可以位于 array array byte
  • scp通过ssh隧道打开

    我想从已与服务器打开反向隧道的计算机发送文件 反向隧道将计算机上的端口 22 与服务器上的端口 2222 连接 autossh M 0 q f N o ServerAliveInterval 120 o ServerAliveCountMa
  • @AttributeOverride 不适用于继承

    我正在尝试更改子类表中的列名 但 AttributeOverride 注释并未更改它 Entity Table name emp Inheritance strategy InheritanceType TABLE PER CLASS pu
  • 如何删除单击 uib-accordion-heading 时出现的蓝色边框?

    我已尝试以下问题中提出的解决方案但无济于事 从 Chrome 中的 css 自定义样式按钮中删除蓝色边框 https stackoverflow com questions 20340138 remove blue border from
  • 使用 rsync+ssh+公钥作为与 ssh 密钥所有者不同的用户同步本地和远程目录

    目标是通过 ssh 同步本地和远程文件夹 我当前的用户是user1 并且我通过 ssh 对服务器进行了无密码访问设置server1 我想将本地文件夹与上的文件夹同步server1借助于rsync公用事业 通常我会运行 rsync rtvz
  • MergeLatest 的默认值

    官方文档 https doc akka io docs akka current stream operators Source or Flow mergeLatest html of MergeLatest状态 MergeLatest 为
  • QueryPerformanceCounter 和溢出

    我正在使用 QueryPerformanceCounter 在我的应用程序中进行一些计时 然而 运行几天后 该应用程序似乎停止正常运行 如果我只是重新启动应用程序 它就会再次开始工作 这让我相信我的计时代码存在溢出问题 Author Rya
  • 将 CopyPlugin 添加到 next.config.js

    我想将以下内容添加到我的 webpack 配置中 module exports otherConfig plugins new CopyPlugin from node modules pdftron webviewer public to
  • 将字符串转换为数组 - PostgreSQL

    我在表中有一列存储用逗号分隔的名称 例如 Mel s Hou Rest Mel s Lad Rest 我需要的是将这个字符串转换为以逗号分隔的数组 我需要的查询是 SELECT home location subs state FROM c
  • 如果有焦点组件,则不会执行场景的 JavaFX 按键事件

    我有一段代码可以在按下某个键时执行某些功能 scene setOnKeyPressed event gt if event getCode KeyCode F1 doSomething 它可以工作 但前提是没有焦点组件 例如按钮或文本字段
  • RxJava doOnError 与 onError

    我尝试使用以下代码 initLocalSettingsIfNeed andThen initGlobalSettingsIfNeed configuration doOnComplete callback onSuccess doOnErr
  • Android应用程序图标随运行时变化

    在我的应用程序中 我想显示应用程序的不同图标 应根据场景进行更改 例如 它将标记任务完成的剩余天数 在 Android 菜单上 此图标将显示剩余天数 如果有人对此有任何想法 我将不胜感激 谢谢 实际上有很多方法可以实现这一目标 如果你最近注
  • 来自 SVN 存储库的 Maven 依赖项

    使用maven 2 有没有办法列出对另一个maven项目的依赖关系 该项目位于不同的SVN服务器上但不在maven存储库上 理想情况下 应该可以编译和运行主项目 而无需手动签出和构建依赖项 使用maven 2 有没有办法列出对另一个mave
  • 从存储过程批量复制

    我的数据库中有表 A B 和 C 我必须将A和B得到的结果放入表C中 目前 我有一个 SP 它将 A 和 B 的结果返回到 C 应用程序 该结果将使用 System Data SqlClient SqlBulkCopy 复制到表 C 中 优