为什么我们不能创建大小大于 900 字节的索引?这个问题是在一场没有人回答的演讲中提出的。
我可以想到这个方法来回答这个问题。
页面大小为 8K,可用 8060 900 字节 * 8 = 7200 字节(900*9 = 8100),因此页面中最多只能容纳 8 条记录。如果该索引是非聚集索引,则还需要存储聚集索引键,该索引键可以再次为 900 字节长,即对于单个记录所需的内存为(900 + 900 字节),即每页可以存储 4 条记录。
如果页面中只能存储 4 条记录,与性能提升相比,IO 操作开销将无效,因此索引大小限制为 900 字节。
我有一个恢复模式设置为 FULL 的数据库。这是一个开发数据库,我有两个完整备份,日期分别为 19 日和 27 日,即最新的。
其中一位开发人员在 26 日做了一些更改,我想回滚这些更改并希望将数据库恢复到 25 日的状态。
restore database MyDb from disk = 'I:\MSSQL\DATA\MyDb_20160127.bak'
with recovery, stopat = '2016-01-25 10:38:15.280',
move 'MyDb' to 'I:\MSSQL\DATA\MyDb.mdf',
move 'MyDb_log' to 'I:\MSSQL\DATA\MyDb.ldf'
Run Code Online (Sandbox Code Playgroud)
STOPAT 子句指定一个点太早,无法恢复此备份集。选择不同的停止点或使用 RESTORE DATABASE WITH RECOVERY 在当前点恢复。
我正在使用 SQL Server 2005