技术_菜鸟

https://www.cnblogs.com/hai-ping/p/3939150.html

最近遇到一个问题,在SQL Server的查询分析器里面执行一个超过100MB的数据库脚本,发现老是报“引发类型为“System.OutOfMemoryException”的异常”,上网查了一下,主要是因为.sql的脚本文件过大(一般都超过100M)造成内存无法处理这么多的数据。

解决办法有各种各样:

  • 用记事本打开脚本文件,把文件依次剪切成10-15M左右的文本文件,然后再一个个执行;
  • 或者在脚本导出时,分表导出,这样导出的文本size也不会很大;

以上问题虽然简便,但是步骤繁多,要是表和数据太多,着实是一种劳力折磨!另外如果表之间是有主外键关系的,分数据得小心谨慎,否则报错让你抓狂!

好!说了这么多,到底有什么解决方案了呢!

解决方案就是使用cmd下的osql命令,脚本大不是问题,关键是你得有耐心,执行大脚本,是需要一定的时间的!实际上也是!

什么是 Osql?

osql 是一个 Microsoft Windows 32 命令提示符工具,您可以使用它运行 Transact-SQL 语句和脚本文件!

如何使用 Osql?

在开始->运行 中键入cmd,使用 "OSQL -?"命令,就可以显示osql命令行的帮助。

注意:osql 工具的选项列表是区分大小的,在使用时注意。

注意:在上图中我们可以看到osql 并不支持 SQL Server 2012的所有功能,如果需要使用SQL Server 2012的所有功能可以使用ocmd命令。

1、使用osql执行单个 Transact-SQL 语句

在键入cmd与下面这一个类似的命令:

osql -E -q "Transact-SQL statement"

例如:

sql -E -q "use myDB select * from myTable"

其中 -E 表示使用 Microsoft Windows NT 身份验证。

也可以使用sa账户,具体可以看看上面的命令!

而-q 表示运行 Transact-SQL 语句,但是在查询结束时不退出 osql。

如要运行 Transact-SQL 语句并退出 osql,请使用 -Q 参数来代替 -q。

2、使用osql执行一个大脚本文件

将该工具指向一个脚本文件,步骤:

  • 创建一个包含一批 Transact-SQL 语句的脚本文件(如 myfile.sql)。
  • 打开命令提示符,键入与下面类似的一个命令,然后按 ENTER 键。
osql -E -i input_file

其中input_file 是脚本文件及其完整路径。例如,如果脚本文件 myfile.sql 在 C:甥敳獲文件夹中,请将参数 myfile 替换为 C:甥敳獲myfile.sql。

该脚本文件的运行结果将出现在控制台窗口中。

如果您想将运行结果定向到一个文件,请向上述命令中添加 -o output_file 参数。

例如:

osql -E -i input_file -o output_file

其中output_file 是输出文件及其完整路径。

总结

如果你觉得太麻烦了,可以使用批处理,将常用的一些命令写在bat文件中,需要的时候替换一些参数,点击文件执行即可!是不是比自己去写一个程序方便多呢???

结束下面sql块_如何执行超过100M的SQL脚本?相关推荐

  1. java执行sql文件_面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他

    初识 MyBatis MyBatis 是第一个支持自定义 SQL.存储过程和高级映射的类持久框架.MyBatis 消除了大部分 JDBC 的样板代码.手动设置参数以及检索结果.MyBatis 能够支持 ...

  2. 两个sql交集_如何使用性能分析工具定位SQL执行慢的原因?

    在前面的文章中就讲过了查询优化器,知道在查询优化器中会经历逻辑查询优化和物理查询优化.需要注意的是,查询优化器只能在已经确定的情况下(SQL 语句.索引设计.缓冲池大小.查询优化器参数等)决定最优的查 ...

  3. 数据库逻辑删除的sql语句_通过数据库的眼睛查询sql的逻辑流程

    数据库逻辑删除的sql语句 Structured Query Language (SQL) is famously known as the romance language of data. Eve ...

  4. python解析sql文件_如何从Python中解析sql文件?

    是否有任何方法可以从Python中执行.SQL文件中的某些SQL命令,而不是文件中的所有SQL命令?假设我有以下.sql文件:DROP TABLE IF EXISTS `tableA`; CREATE ...

  5. sql 会话_在特定会话中禁用SQL Server中的触发器

    sql 会话 This article will focus on the various ways to disable triggers in SQL Server so they won't i ...

  6. java登录的sql语句,如何获取执行过的所有sql语句

    怎么获取执行过的所有sql语句 我有一个java程序,我想获取 我登录网站执行过的所有sql语句,我的配置ibaties 有什么方法,最好有例子. 怎么获取执行过的所有sql语句 SQL Java - ...

  7. 中止执行后超过2年_申请执行超过2年时效,法院还处理吗?

    首先.超出执行时效并不丧失实体权利.我国现行申请执行时效,法律性质上跟诉讼时效是一致的,只是诉讼时效是对未决债权而言,申请执行时效是对已决债权而言.它们的法律后果都不是丧失实体权利,而只是丧失请求权, ...

  8. mysql workbench 执行sql文件_向mysql workbench中导入.sql文件

    mysql workbench用的不多,前段时间装了一下,然后用了一下,感觉操作比dbdesigner4要更人性化一点.其中二个方面做了改进,让我觉得很爽. 第一,就是端口可以修改了,以前就是定死33 ...

  9. java sql绑定_在JAVA 源程序中编写SQL语句时使用ORACLE 绑定变量

    在Java中,结合使用setXXX 系列方法,可以为不同数据类型的绑定变量进行赋值,从而大大优化了SQL 语句的性能. 没有使用绑定变量是使用Oracle数据库的应用系统性能问题主要原因和可伸缩性的主 ...

最新文章

  1. P1502 窗口的星星 离散化+扫描线
  2. 【译】最大限度地降低多线程 C# 代码的复杂性
  3. 骄阳似火 细数史上数据中心火灾 如何才能重蹈覆辙?
  4. 每日一题(13)—— #includefile.h 与 #include “file”的区别
  5. linux命令提示符不同,Linux命令提示符如何按照自己的习惯修改?
  6. 取当前进程对应之静态映像文件的绝对路径/proc/self/exe
  7. php 动态修改文本内容_九大编程语言优缺点第八期:PHP
  8. ubuntu18.04 安装绿联usb转网卡驱动
  9. python加权求和_python求加权平均值的实例(附纯python写法)
  10. 八爪鱼取消Ajax加载数据,谁知道八爪鱼采集器设置了循环翻页采集怎么才采集十几个数据就停下不动了...
  11. 38岁女强人转行做足疗店,只用一年就把两家同行都挤垮了?
  12. java实现的一个发送手机短信
  13. 维护采购订单审批的特性Characteristic和类Class
  14. 天轰川 推荐的Javscript大收集 大集锦 收藏
  15. Linux mysql5.7安装-超级详细
  16. DXT5 的法线压缩方法
  17. Android保存图片到手机相册(res下的图片,网络图片都可以)
  18. 将一笔钱(大于8分,小于1元,精确到分)换算成1分、2分和5分的硬币组合。输入金额,问有几种换算方法?要求每种硬币至少有一枚。
  19. 使用lex---01
  20. CSS问题总结(补充中)

热门文章

  1. Javadoc代码追踪记录
  2. 6.3 Spring Boot集成mongodb开发
  3. 静态类和非静态类中静态变量
  4. 如何提高ORACLE数据库的查询统计速度
  5. AndroidManifest.xml文件剖析
  6. RegisterStartupScript 和 RegisterClientScriptBlock 的区别
  7. 波涛汹涌的黄金甲,一碗中药引发的血案!
  8. wifi动不动就断开_手机信号满格,但是WIFI经常掉线!我来教你怎么办
  9. mysql 5.6 mysqldump 简单_mysqldump的简单用法及其原理
  10. python传递指针_使用Python / C API传递C指针