Hoo*_*ody 4 performance sql-server database-size
我一直试图弄清楚为什么我们的生产数据库最近增长如此之快,并发现原因是审计表。我们将存档表以解决问题,但我只是想检查表的大小对于像这样的大型 SQL 服务器表是否正常。它有 4,000,000 行,结构如下...
Name Type Nullable
AuditLogId bigint no
UserName nvarchar no
TimeOfChange datetime no
ObjectName nvarchar no
ChangeName nvarchar no
RecordId int yes
OriginalValues nvarchar yes
ResultingValues nvarchar no
Run Code Online (Sandbox Code Playgroud)
使用 AuditLogId 上的主键
ALTER TABLE [dbo].[AuditLog] ADD CONSTRAINT [PK_AuditLog] PRIMARY KEY CLUSTERED
(
[AuditLogId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
GO
Run Code Online (Sandbox Code Playgroud)
在 RecordId 上更新的记录还有一个外键。nvarchar 字段似乎有多达 12,000 个字符,平均大约 8000 个字符。该表目前的大小为 40GB,这看起来对吗?如果我上面发布的内容无法回答该问题,我可以在表格上提供更多信息。
谢谢
Aar*_*and 17
您有 4,000,000 行,其中一列平均有 8,000 个字符(我假设为 16,000 字节)。
SELECT CONVERT(bigint,4000000) * /* b */ 16000 / /*kb*/ 1024 / /*mb*/ 1024;
------
61,035
Run Code Online (Sandbox Code Playgroud)
如果您的统计数据准确,我希望该表为 61 GB。(我想知道您的意思是 8,000 个字节,而不是 8,000 个字符,在这种情况下,我希望大于 30 GB。)
其他因素包括:
归档时间: |
|
查看次数: |
2435 次 |
最近记录: |