我正在尝试使用delete命令从Azure SQL表中删除大数据,但是当删除数据时,数据库数据存储将增加。我该如何阻止它,或者Azure中是否有任何选项可以最大限度地减少事务日志?
我不想使用truncate,因为我不需要删除表中的所有数据。
delete top(10000)
from Crumbs
where CrumbId <= @maxId and
TenantId =@tenantId
答案 0 :(得分:0)
通常,您会将数据库的恢复模式更改为SIMPLE。
对于Azure Sql数据库来说有点不同: 在这种情况下,SQL数据库引擎每5-10分钟执行一次事务日志备份-它也会自动缩小。
如果要完全控制数据库实例,则可以选择运行SQL Server托管实例或安装了SQL Server的VM。
答案 1 :(得分:0)
请参考此博客:How to delete large data of table in SQL without log?。
如果您不想使用截断,M.Ali会为您提供另一个选择:
示例:
def str_widowed(s, n):
for i in range(len(s) - n + 1):
yield s[i:i+n]
也许您可以尝试此选项。
希望这会有所帮助。
答案 2 :(得分:0)
根据表和要删除的记录,您有一些选择: