易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL Server如何提高数据库还原的速度

影响数据库还原速度的因素和影响数据库备份速度的因素相同。除此之外,假如你使用SQL Server 2005的话,你还可以启动另外一个优化任务来还原当前不存在的数据库,运行环境为Windows XP,Windows 2003 Server 或更新版本。
Perform Volume Maintenance Tasks
当你还原一个新的完整数据库是,SQL Server读备份文件头,然后创建原始数据库中数据和日志文件需要的磁盘空间。假如SQL Server服务启动帐户没有“Perform Volume Maintenance Tasks”权限的话,数据和日志文件就需要被初始化为0,也就是说,SQL Server先创建这些文件,然后用0来填充它们。对于一个大数据库来说,这将花费很多时间。我记得使用SQL Server 2000从磁带上还原一个320GB的数据库时,总是奇怪为什么总是有30分钟的时间,还原进程一点称进展都没有。
然后,假如SQL Server服务启动帐户有“Perform Volume Maintenance Tasks”权限的话,它就会根据大小来创建数据文件,跳过“填充0”这个阶段。
下图使用secpol.msc来显示权限

你可以设想一下它会节省你多少还原大型数据库的时间。注意,事务日志文件仍然需要“填充0”,仅仅是数据文件可以跳过这一步。
注意:当然使用新权限时,要启动SQL Server服务来使之生效
下面是一个还原20GB数据和5GB事务日志所消耗时间的对照表
 
还原消耗时间
未使用”Perform Volume Maintenance Tasks”
5:05
使用“Perform Volume Maintenance Tasks”
1:01
消耗1:01时间是因为SQL Server仍然要把事务日志文件进行“填充0”操作,未使用”Perform Volume Maintenance Tasks”的情况下,SQL Server需要把数据文件和事务日志都进行“填充0”的操作,所以还原时间显示变长了。
你可以用下面这个脚本来快速确定当前是否使用了PVMT(Perform Volume Maintenance Tasks)。
CREATE DATABASE test_InstantInit ON
PRIMARY (name = 'test_InstantInit', filename = 'k:\temp\test_InstantInit.mdf', size = 1GB)
LOG ON (name = 'test_InstantInit_log', filename = 'k:\temp\test_InstantInit.ldf', size = 1MB)
DROP DATABASE test_InstantInit
整个脚本如果在几秒内完成就证明使用了PVMT。
这里还有一点需要说明的地方。当SQL Server跳过“填充0”阶段空间时,如果数据文件所占用的空间里面包括以前的数据,那么使用DBCC


相关文档:

完全卸载SQL Server 2005

 
1.需要一种下载卸载工具,这里选择微软官方提供的工具(msicuu2.exe)
http://support.microsoft.com/default.aspx?kbid=290301
 
2.使用卸载工具卸载所有SQL Server服务和相关组件(注意:卸载前要先停止对应的服务,否则可能卸载失败)
 
3.删除C:\WINDOWS\inf 下所用文件(我是在该文件夹下搜索&ldquo ......

SQL 行数的选择

Oracle数据库
SELECT
    *
from
(
    SELECT
        ROWNUM AS NO_ROW
        ,row_.*
    from
    (
        SELECT
 &nb ......

精妙SQL语句学习

SQL分类:
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、说明:创建数据库
CREATE DATABASE database-name
2、说明:删除数据库
drop database dbname ......

SQL Server和Oracle的常用函数对比

---------数学函数
1.绝对值
S:select abs(-1) value
O:select abs(-1) value from dual
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
3.取整(小)
S:select floor(-1.001) value
O:select floor(-1.001) value from dual
4.取整(截取)
S:select cast(-1.002 as int) v ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号