小编Sha*_*pta的帖子

为什么 SQL Server 有 900 字节的索引大小限制

为什么我们不能创建大小大于 900 字节的索引?这个问题是在一场没有人回答的演讲中提出的。

我可以想到这个方法来回答这个问题。

页面大小为 8K,可用 8060 900 字节 * 8 = 7200 字节(900*9 = 8100),因此页面中最多只能容纳 8 条记录。如果该索引是非聚集索引,则还需要存储聚集索引键,该索引键可以再次为 900 字节长,即对于单个记录所需的内存为(900 + 900 字节),即每页可以存储 4 条记录。

如果页面中只能存储 4 条记录,与性能提升相比,IO 操作开销将无效,因此索引大小限制为 900 字节。

index sql-server clustered-index

11
推荐指数
1
解决办法
9825
查看次数

仅从完整备份将数据库恢复到时间点

我有一个恢复模式设置为 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

sql-server-2005 sql-server recovery restore recovery-model

5
推荐指数
1
解决办法
5755
查看次数