【问题标题】:How to open a huge .sql file如何打开一个巨大的 .sql 文件
【发布时间】:2021-12-28 18:35:59
【问题描述】:

我正在使用 sql server 2012,我需要在其中运行插入语句的脚本。但文件大小为 2.7 GB。当我要在 sql 编辑器中打开文件时,它会显示错误 SystemOutOfMemory。记事本也无法打开任何建议如何打开它。

【问题讨论】:

  • TextPad 非常擅长处理大文件
  • 在写字板或文本板中打开文件对执行 SQL 语句没有帮助。
  • 从命令行运行脚本:SQLCMD -S <Server> -E -d <Database> -i <filename>.sql
  • 写字板、文本板、记事本、记事本++ 没有人能正常工作。任何其他编辑器我也无法使用 SQL cmd 或命令提示符来完成操作

标签: sql-server


【解决方案1】:

尝试在浏览器中打开文件,然后在编辑器中复制所需的行。这对我有用。

【讨论】:

  • 是的! Chrome 处理得很好。它有点慢,但至少你可以打开它并查看里面的东西。
  • 是的,它对我有用。我创建了几个大小为 400MB 的文件,然后能够执行它。
  • 绝招,确实打开了部分文件但卡住了。最后我的解决方案是使用emeditor.com/#download
【解决方案2】:

EmEditor 是最适合您的解决方案。

我遇到了类似的情况,我必须编辑一个 3GB 的 .sql 文件。经过长时间的研究和多个“无响应”窗口,EmEditor 完成了这项工作。

尝试了许多编辑器都没有工作,都崩溃或挂起(在 Windows 上)。

您可以一次性或短期使用试用版。如需更长时间/永久使用,您必须购买保费。

下面是下载链接。

https://www.emeditor.com/#download

【讨论】:

    【解决方案3】:

    首先你做错了什么。描述您获得 2.7GB 文件的方式和原因。您的问题很可能有其他解决方案。

    您可以使用命令行实用程序 sqlcmd.exe 执行此大小的文件。 MSDN sqlcmd utility

    sqlcmd.exe -S servername -U login -P password -d databasename -i BigBigFile.sql -o out.txt
    

    但是会非常非常慢,因为插入会是一行一行的

    我也看不出有什么理由在编辑器中打开这么大的文件。但是,如果您愿意-我打开文件>3Gb,文件管理器的内部编辑器FarManager3.0 x64(我的配置Win7 x64,8Gb ram,i7-3770)。而且速度也很慢

    也许我们应该寻找其他数据传输选项:

    MSDN Bulk import/export

    MSDB SQL Server Import and Export Wizard

    MSDN BACKUP and RESTORE

    【讨论】:

    • 我已经从另一个数据库生成了一个表脚本,因为我不允许备份完整的数据库,而且这个表有很多记录,这使它成为一个非常大的文件。我不能使用cmd。我必须打开这个文件完成所需的操作
    • @user2229749 导入/导出向导怎么样?
    【解决方案4】:

    我今天在处理百万字节的 sql 文件时遇到了同样的问题,所以写了一个命令行实用程序来将它们分成更小的文件进行处理。

    splitfile.exe -file "largefile.sql" -batch 5000
    

    http://www.esensible.com/our-products/utilities/splitfile-split-large-text-files/

    源代码也在那里(Visual Studio 2015)

    【讨论】:

    • 此解决方案在以后导入数据库时​​会产生更多问题。它在许多奇怪的地方破坏了文件。将不得不小心。谢谢。
    【解决方案5】:

    https://www.emeditor.com/#download

    为我轻松打开 4GB 文件

    【讨论】:

      【解决方案6】:

      SQL 编辑器可以打开最大 500 mb 的文件,但没有非常好的规格,这似乎有问题,如果您想将数据从一个数据库插入另一个数据库,请尝试使用导入/导出向导、SSIS 包或命令行实用程序创建表脚本然后插入不是一个好方法。

      【讨论】:

        【解决方案7】:

        您始终可以使用命令行实用程序。

        打开 cmd 并输入:

        SQLCMD -S serverName -d databaseName -i yourfile.sql -U username -P password
        

        更多信息在这里:https://docs.microsoft.com/en-us/sql/ssms/scripting/sqlcmd-run-transact-sql-script-files?view=sql-server-2017

        我刚刚成功运行了包含 800 万次插入的 7gb 文件。

        【讨论】:

        • 这绝对有效 - 慢是的,但它有效.. 虽然 user4725980 在自己进行传输时建议了一种更好的方法,而不仅仅是接收大文件 - 更容易。但是您的方法确实有效-文件名可能需要用引号引起来。很高兴知道 800 万次插入需要多长时间..
        【解决方案8】:

        我在 IntelliJ IDEA 编辑器中打开了 5.14G 的 sql 文件。加载甚至不需要 30 秒。

        【讨论】:

        • IntelliJ 只显示文件的一部分。不是完整的文件
        【解决方案9】:

        我有一个类似的问题,一个大学传给我的 6GB .sql 转储。仍然想知道他是怎么做到的。

        我可以通过终端在 Linux 中使用 vi/vim 打开文件。

        您为什么不尝试使用 centos 或其他风格创建虚拟机,将文件传递到那里(通过 ssh 并使用 filezilla)并在那里打开它?安装没有 GUI 的服务器版本。

        我打赌你可以在那里打开它。否则,拆分将是要寻找的东西。

        【讨论】:

        • 嗨,我使用命令行实用程序通过 BCP(批量复制程序)解决了这个问题。但是在我的场景中,我们没有 linux。但这是一个很好的信息。谢谢
        • @PiyushJain 你能用那个程序打开 .sql 还是只是复制它?我有一个 16GB 的 Ram vm,带有 ubuntu 服务器和 mysql + phpmyadmin 和 toad 客户端来检查数据库。甚至蟾蜍都不能导入这样的文件。所以我让 vm 在 3 天内运行将数据库导入 mysql(或更准确地说,mariadb)。是的,它是一种慢金属。但是对于测试来说仍然很酷。运行 esxi 6.0.2 的 HP Proliant DL380 G5。如果您想知道,我将文件 ftp 到服务器中。
        【解决方案10】:

        010 Editor 可以处理任何大小的文件。我只是用它来编辑一个 3GB 的文件,Chrome、TextPad 和其他所有东西都崩溃了。

        【讨论】:

          【解决方案11】:

          我遇到了同样的问题,但我解决了。

          我有一个 5 GB 的 .sql 文件。在该文件中,由于语法错误,我不得不进行编辑。我尝试了几个编辑器,但都不起作用。

          然后在我尝试使用 Visual Studio 代码编辑器 之后。它有效。

          • 所以首先从https://code.visualstudio.com/download下载VSC。
          • 安装 VSC 后,您必须上传文件。如果文件大小大于其原始上传文件大小。
          • 然后在 VSC 建议您必须增加最大文件大小(以 MB 为单位)之后。
          • 因此,您必须根据需要充分利用它。 (我建议你。增加文件大小 - 比你想要的大三倍)。
          • 然后您必须重新启动 VSC。之后,您可以打开您的文件。
          • 我希望文件能被打开。

          【讨论】:

          • 这似乎与an existing answer 重复,尽管您有更多详细信息。也许更好的方法是建议对旧答案进行编辑以添加更多细节。
          【解决方案12】:

          我有 8 GB 的 sql 文件,我尝试过的每个文本编辑器或 sql 服务器都崩溃了,或者根本不允许它打开。

          我在我的电脑上尝试了不同的程序,pycharm 毫不费力地打开了它,但它已经崩溃了一次。

          【讨论】:

            【解决方案13】:

            Sublime Text 在 Mac 上对我来说非常好用。我尝试了很多,PHPstorm 效果很好,但仅在只读模式下。 Sublime Text 实际上会打开整个文件进行编辑,但加载需要一段时间。加载时有一个进度条。

            【讨论】:

              【解决方案14】:

              gVim 应用程序可以打开大型 mysql 转储文件。

              【讨论】:

                【解决方案15】:

                为什么不简单地将文件导入 SQL Server 并在企业管理器中查看呢?您可以直接导入它,也可以使用 PowerShell,但后者可能会在一夜之间运行(对于小文件更容易,尤其是很多文件)。一旦它在那里,你可以轻松地做任何你想做的事情,文件大小不会有问题。

                【讨论】:

                  【解决方案16】:

                  对于跨平台应用,我发现VSCode其实是这里最好的。如果它注意到它是一个大文件,它将自动禁用语法查找和所有不错的功能,但至少保留基本的搜索和替换等。我经常将它用于 Wordpress 大小约为 1-3GB 的文件,因为有时,在更改开发/临时站点等的域名时,永久链接不会更新。

                  如果您碰巧在 Windows 上安装了 Linux 或 Git Bash,那么您将可以访问 vim,这是我对任何 4GB+ 的建议。我不得不在一个 6GB+ MySQL 文件中手动修改行,它工作正常。您会认为它不起作用,因为从磁盘读取到 RAM 可能需要大约一分钟,但它会做到的。您需要对保存的次数保持高效,因为它会将完整的 6GB 写入磁盘,并且导航还需要使用搜索、行号等,但它确实有效。

                  【讨论】:

                    【解决方案17】:

                    使用超大文件编辑器是一种简单的编辑解决方案,然后使用 SQLCMD 实用程序从 CMD 运行它。

                    【讨论】:

                      【解决方案18】:

                      我在打开一个 3GB 的 SQL 文件时遇到了同样的问题。所以我使用 IntelliJ 打开文件,它对我有用。 我不建议下载和安装 IntelliJ 来打开一个大文件。但这将是大型开发人员社区或 IDE 用户在日常生活中最简单的解决方案。

                      【讨论】:

                        猜你喜欢
                        • 2018-03-04
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 2010-09-14
                        • 1970-01-01
                        • 1970-01-01
                        • 2015-11-01
                        • 1970-01-01
                        相关资源
                        最近更新 更多