Jam*_*son 5 sql-server clustered-index maintenance sql-server-2012 transaction-log
我有一张桌子 TableA
ID PK BIGINT
TrxID BIGINT
CardBalance INT
AccountBalance INT
Run Code Online (Sandbox Code Playgroud)
SP_SPACEUSED 'TableA' 输出:
name rows reserved data index_size unused
TableA 904054184 55547120 KB 34661408 KB 19963544 KB 922168 KB
Run Code Online (Sandbox Code Playgroud)
所以数据大小约为33 GB。TrxID 上有一个聚集索引。有一个非聚集索引,大约有 19GB。
我的事务日志文件大小约为 250 GB。DBCC SQLPERF('logspace')显示 < 1% 的使用率。
当我运行时:
ALTER INDEX CIX_TableA_TrxID ON dbo.TableA REBUILD WITH (ONLINE = ON)
Run Code Online (Sandbox Code Playgroud)
事务日志在大约 20 分钟后达到 100%,然后继续增长。
是否有可靠的方法来计算此操作需要多少日志空间?
此外,这似乎在日志文件中使用了很多空间,这听起来对吗?
在联系SQLSkills的 Paul Randal 后,他告诉我事务日志使用率高的原因是在ONLINE索引重新/构建中,每一行都有它自己的日志记录以及日志记录的所有开销。一个OFFLINE记录完整的 8kb 页面图像,而不是逐行记录。
Pawe\xc5\x82 Tajs 提供的相关链接:
\n\nSQL 问答:日志知识(同样由 Paul Randal 撰写)
\n| 归档时间: |
|
| 查看次数: |
289 次 |
| 最近记录: |