需要一些帮助来理解到底什么是分配空间和最大空间。
当它说最大分配空间是500 DB时,这是否包括数据和日志?
如果分配的空间达到最大空间,是否整个空间只分配给数据?
我的数据库统计-
基本上,我的DB最近出现了性能问题,巨大的日志IO影响了DTU。
如果有任何关于这方面的帮助,我将非常感激。
最大文件大小不包括日志大小和XTP文件。在确定数据库大小时,它们也被排除在外。顺便说一下,它们是由SQL Azure的基础设施自动管理的。
根据层级的不同,数据库会获得特定数量的日志空间。 使用vCore,当你设置存储大小时,你将为你的日志分配一个固定的空间。例如,如果您指定1TB的存储空间,您将获得300GB的日志分配。
你可以用下面的语句来验证日志的大小和使用中的百分比。
DBCC SQLPERF(LOGSPACE)
如果你得到与日志大小有关的错误,请使用以下DMV来监控事务。以下DMV可以用来监控事务:sys.dm_tran_active_transactions,sys.dm_tran_database_transactions,sys.dm_tran_locks,sys.dm_tran_session_transactions。有一些限制,例如:每个事务的日志限制是2GB,消耗大于100万锁的会话会被终止。
未提交的事务会阻止日志文件的截断。为了防止这种情况发生,从最老的活动事务日志序列号(LSN)到日志尾部(当前LSN)的距离不能超过日志文件大小的20%。当违反规定时,违规事务将被终止并回滚,以便对日志进行截断。
为了避免因行操作而被节流,请减少事务中数据的大小,例如减少行数或将操作分成多个事务。为了避免因需要单个事务的表索引操作而被节流,请确保遵守以下公式。
表中受影响的行数*(更新字段的平均大小(以字节为单位)+80) < 2 GB。