GZipStream問題...

问题描述

//privatevoidexecuteFileCompression()//{//FileStreamsourceFile=File.OpenRead(this.backupPath+this.backupOriginalName);//FileStreamdestinationFile=File.Create(this.backupPath+this.backupCompressionName);//byte[]buffer=newbyte[sourceFile.Length];//sourceFile.Read(buffer,0,buffer.Length);//using(GZipStreamoutput=newGZipStream(destinationFile,CompressionMode.Compress))//{////Console.WriteLine("Compressing{0}to{1}.",sourceFile.Name,destinationFile.Name,false);//output.Write(buffer,0,buffer.Length);//}//sourceFile.Close();//destinationFile.Close();//}本人用GzipStream壓縮SQLServer的700MB的bak之備份文件,但發覺我內存有1G都報錯,OutOfMemory,聽有分段壓縮方式,請問問怎做???

解决方案

解决方案二:
GzipStream本身不支持分段压缩..可以先将700M的文件拆分为小文件...然后分别调用GzipStream压缩..
解决方案三:
0x1000为一段,压缩和解压,参考如下代码usingSystem.IO;usingSystem.IO.Compression;privatevoidbutton1_Click(objectsender,EventArgse){FileStreamvSourceFileStream=newFileStream(@"c:temptemp.bmp",FileMode.Open,FileAccess.Read,FileShare.Read);FileStreamvDestFileStream=newFileStream(@"c:temptemp.zip",FileMode.OpenOrCreate,FileAccess.Write);GZipStreamvGZipStream=newGZipStream(vDestFileStream,CompressionMode.Compress,true);byte[]vBuffer=newbyte[0x1000];intvReadLength=vSourceFileStream.Read(vBuffer,0,vBuffer.Length);while(vReadLength>0){vGZipStream.Write(vBuffer,0,vReadLength);vReadLength=vSourceFileStream.Read(vBuffer,0,vBuffer.Length);}vGZipStream.Close();vSourceFileStream.Close();vDestFileStream.Close();}privatevoidbutton2_Click(objectsender,EventArgse){FileStreamvSourceFileStream=newFileStream(@"c:temptemp.zip",FileMode.Open,FileAccess.Read,FileShare.Read);FileStreamvDestFileStream=newFileStream(@"c:temptemp2.bmp",FileMode.OpenOrCreate,FileAccess.Write);GZipStreamvGZipStream=newGZipStream(vSourceFileStream,CompressionMode.Decompress,true);byte[]vBuffer=newbyte[0x1000];intvReadLength=vGZipStream.Read(vBuffer,0,vBuffer.Length);while(vReadLength>0){vDestFileStream.Write(vBuffer,0,vReadLength);vReadLength=vGZipStream.Read(vBuffer,0,vBuffer.Length);}vGZipStream.Close();vSourceFileStream.Close();vDestFileStream.Close();}

时间: 2024-08-03 04:24:08

GZipStream問題...的相关文章

Oracle常見問題集(四)

oracle 21. 用EXISTS替換DISTINCT 當提交一個包含一對多表資訊(比如部門表和雇員表)的查詢時,避免在SELECT子句中使用DISTINCT. 一般可以考慮用EXIST替換 例如: 低效: SELECT DISTINCT DEPT_NO,DEPT_NAME FROM DEPT D,EMP E WHERE D.DEPT_NO = E.DEPT_NO 高效: SELECT DEPT_NO,DEPT_NAME FROM DEPT D WHERE EXISTS ( SELECT 'X

ORACLE常用傻瓜問題1000問(之八)

oracle                                   ORACLE常用傻瓜問題1000問(之八) 作者: CCBZZP         大家在應用ORACLE的問題可能會遇到很多簡單的問題, 特別對新手來說, 今天我簡單把它總結一下, 發布給大家, 希望對大家有幫助! 9I管理的V$视图. 281. V$ACCESS    显示当前被锁定的数据库中的对象及正在访问他们的会话. 282. V$ACTIVE_INSTANCES    为当前安装的数据库中出现的所有实例建立

Oracle常見問題集(一)

oracle 一.常見問題 1. Oracle安裝完成後的初始口令 internal/oracle sys/change_on_install system/manager scott/tiger sysman/oem_temp   2. ORACLE9IAS WEB CACHE的初始默認用戶和密碼? administrator/administrator   3. oracle 8.0.5怎麽創建資料庫 用orainst.如果有motif介面,可以用orainst /m   4. oracle

Oracle常見問題集(二)

oracle 71. 內核參數的應用 shmmax 含義:這個設置並不決定究竟Oracle資料庫或者作業系統使用多少實體記憶體,只決定了最多可以使用的記憶體數目.這個設置也不影響作業系統的內核資源.   設置方法:0.5*實體記憶體 例子:Set shmsys:shminfo_shmmax=10485760 shmmin 含義:共用記憶體的最小大小. 設置方法:一般都設置成爲1. 例子:Set shmsys:shminfo_shmmin=1: shmmni 含義:系統中共用記憶體段的最大個數.

Oracle常見問題集(三)

oracle 151. 如何監控 SGA 中字典緩衝區的命中率? select parameter, gets,Getmisses , getmisses/(gets+getmisses)*100 "miss ratio", (1-(sum(getmisses)/ (sum(gets)+sum(getmisses))))*100 "Hit ratio" from v$rowcache where gets+getmisses <>0 group by p

ORACLE常用問題1000問(之一)

oracle 大家在應用ORACLE的時候可能會遇到很多看起來不難的問題, 特別對新手來說, 今天我簡單把它總結一下, 發布給大家, 希望對大家有幫助! 和大家一起探討, 共同進步! 對ORACLE高手來說是不用看的. 1. Oracle安裝完成后的初始口令? internal/oracle sys/change_on_install system/manager scott/tiger sysman/oem_temp 2. ORACLE9IAS WEB CACHE的初始默认用户和密码? adm

ORACLE常用傻瓜問題1000問(之三)

oracle 88. CHR()的反函數是? ASCII() SELECT CHAR(65) FROM DUAL; SELECT ASCII('A') FROM DUAL; 89. 字符串的連接 SELECT CONCAT(COL1,COL2) FROM TABLE ; SELECT COL1||COL2 FROM TABLE ; 90. 怎么把select出来的结果导到一个文本文件中? SQL>SPOOL C:\ABCD.TXT; SQL>select * from table; SQL &

ORACLE常用傻瓜問題1000問(之五)

oracle                 ORACLE常用傻瓜問題1000問(之五)   作者:  CCBZZP           大家在應用ORACLE的時候可能會遇到很多看起來不難的問題, 特別對新手來說, 今天我簡單把它總結一下, 發布給大家, 希望對大家有幫助! 和大家一起探討, 共同進步!           對ORACLE高手來說是不用看的.     本讲主要讲的是SQL语句的优化方法! 主要基于ORACLE9I的.174. /*+ALL_ROWS*/   表明对语句块选择基于

ORACLE常用傻瓜問題1000問(之一)

oracle                                             ORACLE常用傻瓜問題1000問(之一)    作者:  CCBZZP           大家在應用ORACLE的時候可能會遇到很多看起來不難的問題, 特別對新手來說, 今天我簡單把它總結一下, 發布給大家, 希望對大家有幫助! 和大家一起探討, 共同進步!         對ORACLE高手來說是不用看的.   1. Oracle安裝完成后的初始口令?   internal/oracle