我在Consumption Plan下运行Azure Function,并且每隔一段时间我就会在函数中没有空间周围出现一堆错误......错误例如:
执行函数时出现异常:PdfToImages。Microsoft.Azure.WebJobs.Host:异常绑定参数“req”。mscorlib:将内容复制到流时出错。mscorlib:磁盘空间不足。
我读到有 1GB 或内存的限制,但我似乎没有使用它,我删除了每次调用后使用的所有文件。
存储限制是同一应用服务计划中所有应用的临时存储中的总内容大小。消耗计划使用 Azure 文件进行临时存储。
更令人困惑的是,有些调用可以通过并且没有空间问题,而且一旦我开始看到问题,我就会重新启动函数并且所有调用都可以工作。
这是示例音量屏幕截图...
有人能告诉我磁盘空间是如何处理的吗...
我有一个[Documents]包含以下列的表:
Name (string)
Status (string)
DateCreated [datetime]
Run Code Online (Sandbox Code Playgroud)
该表有大约100万条记录.这三列中的所有三列都有一个索引(每个列都有一个索引).
当我运行此查询时:
select top 50 *
from [Documents]
where (Name = 'None' OR Name is null OR Name = '')
and Status = 'New';
Run Code Online (Sandbox Code Playgroud)
执行速度非常快(300毫秒)
如果我运行相同的查询,但使用该ORDER BY子句,它真的很慢(3000毫秒)
select top 50 *
from [Documents]
where (Name = 'None' OR Name is null OR Name = '')
and Status = 'New'
order by DateCreated;
Run Code Online (Sandbox Code Playgroud)
我理解它在另一个索引(DateCreated)中搜索,但它应该真的慢得多吗?如果是这样,为什么?我能做些什么来加速这个查询(复合索引)?
谢谢
顺便说一句:所有索引都包含DateCreated了非常低的碎片,实际上我进行了重组并且它没有改变任何东西.
我有一个 Azure WebJob 侦听多个队列...
我可以在作业级别指定 MaxDequeueCount ...
config.UseTimers();
config.Queues.BatchSize = 32;
config.Queues.MaxDequeueCount = 6;
Run Code Online (Sandbox Code Playgroud)
在队列级别设置 MaxDequeueCounts 的最佳方法是什么?我知道我可以获得实际的出队计数并将其“手动”发送到毒队列,但我想知道这是否可以以更好的方式完成......