是否有任何程序会缩小sql脚本文件的大小?
我有一个非常大的SQL脚本(大约700兆字节)。我想知道是否有一个好方法来减少脚本的大小 我知道JavaScript有一些代码最小化工具,我正在寻找一个用于SQL脚本的工具 我不希望在SQL脚本上获得性能。我正在尝试使文件大小变小。删除多余的空白。降低名称限定,以便脚本文件的大小可以更小 如果尝试在SQLServerManagementStudio中加载该文件,则会出现此错误 没有足够的存储空间供用户使用 处理此命令。(不适用于 HRESULT:0x80070008)(mscorlib)是否有任何程序会缩小sql脚本文件的大小?,sql,sql-server,Sql,Sql Server,我有一个非常大的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(..)而不是单个更新)
- 长操作可以定义为存储过程(在运行脚本之前),脚本只需调用存储过程
希望这对其他人有所帮助。可以做到这一点,不仅仅是对PostgreSQL,而且对大多数符号,包括MS、MySql等。他希望它仍然是一个脚本(至少我是这样解释的),“代码最小化”是否意味着压缩?据我所知,收缩SQL脚本不会提高性能,可能会对部署产生微不足道的影响,如果它是自动生成的,那么它将不会改进维护。只是想知道,缩小SQL脚本可以解决什么问题?为什么要这样做?目标是什么?你在试图混淆你的脚本吗?如果只是为了使文件变小,又有什么可能的目的呢?在这样大小的文件中,空格字符不会产生足够的差异来克服这个错误。您需要将其拆分为不同的文件,或者使用不同的编辑器来处理它(我不知道sql server有任何这样的编辑器);除非脚本中充满了用于加载表的INSERT语句,否则对于一个内聚文件来说,700MB似乎太大了。