SQL Server如何提高数据库备份的速度
对于一个数据库完整备份来说,备份的速度很大程度上取决于下面两个因素:读磁盘数据、日志文件的吞吐量,写磁盘数据文件的吞吐量。
下图是备份过程中磁盘的变化情况:
读吞吐量
读吞吐量的大小取决于磁盘读取数据的速度,而磁盘读取的速度又取决于数据文件在磁盘中的位置。因此,位于不同盘符上不同数据库文件的读取速度都不相同。
测量读吞吐量的一个方法就是进行一次数据库完整备份,然后使用Windows性能监控器(perfmon)来监控数据库文件所在磁盘的Read bytes/sec 性能计数器。保存备份文件的磁盘应该在物理上区别于数据库文件所在的磁盘,否则测量精度会不准确。当然备份同时也应该会有另外一些来自系统或是其他应用程序对磁盘的读取操作。
注意:如果你使用完整备份来监测磁盘读写吞吐量的话,那么这个测试用的备份文件应该和其他常规备份放在一起,以便恢复时使用。也就是说,如果你在测试备份文件之后又进行了常规差异备份,那么这些差异备份就会以这个测试备份为还原的起始点。
假设数据库所有文件的大小都是相等的,那么你获取的最小测量值就是你指定数据库在系统中最大的备份吞吐量了。
另一个测量读吞吐量的方法是在NUL设备上执行备份,如下:
BACKUP DATABASE AdventureWorks TO DISK = 'NUL' WITH COPY_ONLY
注意我们使用了COPY_ONLY选项,这个选项仅仅在SQL Server 2005及以上版本中才提供。你可以在SQL Server2000上执行相同的备份,只是要忽略这个选项,但是一定要小心。因为备份到NUL设备也会被认为是一个有效备份,这就意味着当你执行备份到NUL设备后,你后续的所有差异备份都将不可用,除非你在执行备份到NUL设备后,再执行一次常规的数据库完整备份。假如你执行事务日志备份到NUL设备,那么你将破坏日志恢复链,导致后续事务日志备份不可用。
如果你必须在SQL Server 2000上执行备份到NUL设备的话,一定要做好备灾恢复的准备。
假设我现在已经测量出我的AdventureWorks读吞吐量为46MB/sec。这就是说,46MB/sec是最大的备份吞吐量了,也是我的磁盘能提供给SQL Server备份读线程最快的速度了。那我们如何提高这个速度呢?使用更快的磁盘肯定是一种方法。另外的方法就是把数据库文件分散到多个物理磁盘上,以便于在读数据时可以同步创建多个读线程。减小数据库文件的碎片级别也可以提高吞吐量,特别是当数据库文件有大量碎片存在时。
写吞吐量
现在开始说说写吞吐量。执行一个文件备份,在我的系统中,我得到了如下的
相关文档:
系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......
sql="select * from (select top 4 ID,SmallPic,NewsNameSi,EndDate,ContentSi,SortID from achi_news where ProductProperty=1 and IsOk=1 and HomeForcePage=1 and HomeEndTime>getDate() and isdate(HomeEndTime)=1 order by HomeorderNum asc )a union all select * from (select top 4 ID,SmallPic,NewsNameS ......
sql 两表关联 更新
update set from 语句格式
Sybase和SQL SERVER:UPDATE...SET...from...WHERE...的语法,实际上从源表获取更新数据。
在 SQL 中:
Update A SET A.dept =B.name
from A LEFT JOIN B ON B.ID=A.dept_ID ......
直接在SQL查询分析器中读取EXCEL文件需要使用到OPENDATASOURCE。
但是使用它之前需要进行配置一下。记得如下配置是必须的:
1、执行这两个存储过程:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
它的作用:
第一个是:是否支持高级选 ......
第一范式:确保每列的原子性.
如果每列(或者每个属性)都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式.
例如:顾客表(姓名、编号、地址、……)其中"地址"列还可以细分为国家、省、市、区等。
第二范式:在第一范式的基础上更进一层,目标是确保表中的每列都和主键相关.
如果一个关系满足 ......