是否有任何程序会缩小sql脚本文件的大小?

是否有任何程序会缩小sql脚本文件的大小?,sql,sql-server,Sql,Sql Server,我有一个非常大的SQL脚本(大约700兆字节)。我想知道是否有一个好方法来减少脚本的大小 我知道JavaScript有一些代码最小化工具,我正在寻找一个用于SQL脚本的工具 我不希望在SQL脚本上获得性能。我正在尝试使文件大小变小。删除多余的空白。降低名称限定,以便脚本文件的大小可以更小 如果尝试在SQLServerManagementStudio中加载该文件,则会出现此错误 没有足够的存储空间供用户使用 处理此命令。(不适用于 HRESULT:0x80070008)(mscorlib) 应该这

我有一个非常大的SQL脚本(大约700兆字节)。我想知道是否有一个好方法来减少脚本的大小

我知道JavaScript有一些代码最小化工具,我正在寻找一个用于SQL脚本的工具

我不希望在SQL脚本上获得性能。我正在尝试使文件大小变小。删除多余的空白。降低名称限定,以便脚本文件的大小可以更小

如果尝试在SQLServerManagementStudio中加载该文件,则会出现此错误

没有足够的存储空间供用户使用 处理此命令。(不适用于 HRESULT:0x80070008)(mscorlib)


应该这样做。

SQL更难压缩,字段、表名和命令必须是原来的样子。此外,您不会只想将命令重写为较短的命令,因为这可能会影响性能


根据您使用的DBMS,它可能允许命令使用简短的名称,然后可能会有一个转换器。

将脚本分解为几个小文件,然后从单个主脚本调用这些文件怎么样

或者,您可以通过以下批处理文件执行此操作:

REM =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
REM Define widely-used variables up here so they can be changed in one place
REM Search for "sqlcmd.exe" and make sure this path is valid for you
REM =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
set sqlcmd="C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe"
set uname="your_uname_here"
set pwd="your_pwd_here"
set database="your_db_name_here"
set server="your_server_name_here"

%sqlcmd% -S %server% -d %database% -U %uname% -P %pwd% -i "c:\script1.sql"
%sqlcmd% -S %server% -d %database% -U %uname% -P %pwd% -i "c:\script2.sql"
%sqlcmd% -S %server% -d %database% -U %uname% -P %pwd% -i "c:\script3.sql"

pause
我自己也喜欢批处理文件方法,因为它更容易修补,而且您可以将其安排为windows作业


确保.BAT文件位于具有适当安全限制的文件夹中,因为它的凭据位于纯文本.BAT文件中。

压缩sql文件将具有最大的压缩比

最小化txt sql文件将减少每兆字节数/千字节数。。不值得

更好的方法是创建一个“函数”来解压和读取文件。我想这是最好的好处


今天,文件大小应该不是问题。拨号连接?软盘?

这个700MB的脚本中有什么?!我希望有一些相似之处/重复之处可以缩短文件

只是一些猜测:

  • 不要使用Insert语句插入一百万条记录,而是使用批量加载工具
  • 不要更新多个单独的记录,而是尝试将相同值的更新批处理为一个(例如,更新选项卡集col=1,其中id in(..)而不是单个更新)
  • 长操作可以定义为存储过程(在运行脚本之前),脚本只需调用存储过程
当然,将脚本分成更小的部分,并从一个简单的批处理文件中调用每个部分也可以。但我会有点担心性能(执行需要多长时间?!),并会寻找一些更快的方法。

(回答这个问题是因为它是我搜索“SQL脚本大小”时返回的顶部项目)

我在尝试将大型脚本加载到ManagementStudio时遇到了相同的错误。在我的例子中,我试图使用SQLServer脚本生成器将数据库从SQL2008R2降级为SQL2008,该脚本生成器创建了一个700mb的结构和data.SQL文件

为了解决这个问题,我使用命令行来运行脚本:

C:>sqlcmd-S[SQLSERVER\INSTANCE]-i[FILELOCATION\FILENAME].sql


希望这对其他人有所帮助。

可以做到这一点,不仅仅是对PostgreSQL,而且对大多数符号,包括MS、MySql等。

他希望它仍然是一个脚本(至少我是这样解释的),“代码最小化”是否意味着压缩?据我所知,收缩SQL脚本不会提高性能,可能会对部署产生微不足道的影响,如果它是自动生成的,那么它将不会改进维护。只是想知道,缩小SQL脚本可以解决什么问题?为什么要这样做?目标是什么?你在试图混淆你的脚本吗?如果只是为了使文件变小,又有什么可能的目的呢?在这样大小的文件中,空格字符不会产生足够的差异来克服这个错误。您需要将其拆分为不同的文件,或者使用不同的编辑器来处理它(我不知道sql server有任何这样的编辑器);除非脚本中充满了用于加载表的INSERT语句,否则对于一个内聚文件来说,700MB似乎太大了。