小编dim*_*dim的帖子

日志文件中单个事务的大小

有没有办法通过查看 SQL Server 2008 中的日志文件从事务日志中找出事务的大小?我的日志文件确实从一些失败的维护作业中意外膨胀,并且似乎不再释放日志空间。所以我想找出语句以及它在特定时间段内在事务日志中使用了多少空间。

我正在考虑使用 fn_dblog(null,null) 的输出并相应地汇总输出。但这似乎相当令人生畏,因为没有官方文档。

欢迎任何建议和帮助。

sql-server sql-server-2008-r2 database-internals transaction-log

6
推荐指数
1
解决办法
118
查看次数

使用模式 + 文件组或完全独立的数据库(同一实例)对一些大表进行分区?

我有以下挑战:

我有一个暂存数据库,其中包含几个大表(在 SSD 上),但我开始用完 SSD 上的空间。我使用 SQL Server 2014 BI-Edition(= 关系引擎的标准版),因此开箱即用的表分区不可用。我的方法是将数据拆分到单独的表中,然后将它们连接到一个视图中。

数据本身(大部分)写入一次,然后只能读取。

下面两个建议的更好的解决方案是什么?为什么?

解决方案 A:使用文件组将数据移动到不同的磁盘:

  • 在单独的磁盘(非 SSD、RAID5)上创建两个新文件组
  • 创建多个表(例如,每季度一个)并根据某些规则将旧数据移动到这些表中(例如移动 6 个月之前的数据)
  • 一个文件组是只读的,另一个是读写的。更多的当前数据驻留在读写文件组中,而较旧的数据位于只读文件组中
  • 为所有表创建相同的索引(相同的列)
  • 使用视图透明地访问所有数据

方案B:使用数据库保存历史数据

  • 以或多或少相同的方式实现,但添加一个数据库(在同一实例中)作为附加层

感谢您分享您的想法和建议。

database-design sql-server sql-server-2014

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