Azure cosmosdb 如果在存储过程中无限循环会发生什么?

Azure cosmosdb 如果在存储过程中无限循环会发生什么?,azure-cosmosdb,Azure Cosmosdb,5s后,Azure Cosmos DB不再允许您在存储过程中执行任何数据库操作 两个问题: a) 是否允许我执行其他耗时超过5秒的操作?例如,对查询的数据进行一些后处理,然后稍后返回给用户 b) 我是只为存储过程中的实际数据库操作付费,还是也为某种“JavaScript执行时间”付费 a) 是否允许我执行其他耗时超过5秒的操作? 例如,对查询的数据进行一些后处理,然后返回给用户 以后呢 我认为5s限制到目前为止还不能被突破。正如@Mark在评论中提到的,并遵循我之前的案例:过程最适合于写重、不读

5s后,Azure Cosmos DB不再允许您在存储过程中执行任何数据库操作

两个问题:

a) 是否允许我执行其他耗时超过5秒的操作?例如,对查询的数据进行一些后处理,然后稍后返回给用户

b) 我是只为存储过程中的实际数据库操作付费,还是也为某种“JavaScript执行时间”付费

a) 是否允许我执行其他耗时超过5秒的操作? 例如,对查询的数据进行一些后处理,然后返回给用户 以后呢

我认为5s限制到目前为止还不能被突破。正如@Mark在评论中提到的,并遵循我之前的案例:过程最适合于写重、不读或删除重、甚至长时间执行API的操作

b) 我是否只为数据库中的实际数据库操作支付RUs费用 存储过程,也可以用于某种“JavaScript执行时间” 还有吗

基于Cosmos DB,成本只受存储容量和吞吐量的影响。事实上,任何操作都是基于REST API的,即使是JS服务器功能。所以,我认为您不需要为JS执行时间支付更多的费用


更新答案:

如果我没有误解的话,您可以在SP中访问cosmos db进行单个查询,然后执行更多与cosmos db无关的工作负载。您只是想知道这个场景是否会让您花费更多,换句话说,您可以使用SP分配给您的大部分资源

根据我的研究,SP没有任何特殊的计费策略。因此,一切都由RUs决定。对于您的场景,也许您可以计算SP的RU,使用或不使用自定义代码来比较它们

StoredProcedureResponse response = documentClient.executeStoredProcedure(collectionLink + "/sprocs/test", requestOptions, null);
System.out.println(response.getRequestCharge());
a) 是否允许我执行其他耗时超过5秒的操作? 例如,对查询的数据进行一些后处理,然后返回给用户 以后呢

我认为5s限制到目前为止还不能被突破。正如@Mark在评论中提到的,并遵循我之前的案例:过程最适合于写重、不读或删除重、甚至长时间执行API的操作

b) 我是否只为数据库中的实际数据库操作支付RUs费用 存储过程,也可以用于某种“JavaScript执行时间” 还有吗

基于Cosmos DB,成本只受存储容量和吞吐量的影响。事实上,任何操作都是基于REST API的,即使是JS服务器功能。所以,我认为您不需要为JS执行时间支付更多的费用


更新答案:

如果我没有误解的话,您可以在SP中访问cosmos db进行单个查询,然后执行更多与cosmos db无关的工作负载。您只是想知道这个场景是否会让您花费更多,换句话说,您可以使用SP分配给您的大部分资源

根据我的研究,SP没有任何特殊的计费策略。因此,一切都由RUs决定。对于您的场景,也许您可以计算SP的RU,使用或不使用自定义代码来比较它们

StoredProcedureResponse response = documentClient.executeStoredProcedure(collectionLink + "/sprocs/test", requestOptions, null);
System.out.println(response.getRequestCharge());

您是否使用存储过程进行长时间运行的查询?通常,建议不要在查询中使用存储过程,而在大批量写入时使用存储过程。这里有一个例子。嗨,这里有更新吗?@MarkBrown:没有,我是从理论的角度来问的。您是否使用存储过程进行长时间运行的查询?通常,建议不要在查询中使用存储过程,而在大批量写入时使用存储过程。这里有一个例子。嗨,这里有什么更新吗?@MarkBrown:没有,我是从理论的角度来问的。你说“目前为止还不能突破5s限制”,但据我所知,只有在执行数据库操作时才会检查它。所以,当我不执行任何实际的数据库计算,而是在Azure CosmosDB硬件之外执行一些繁重的JS操作时,是什么阻止了我?是否存在一个硬限制,在该限制之后,我的查询将被终止?5s不是吗,因为在5s之后,当我执行数据库操作时,它只是开始返回错误,但脚本似乎运行正常。@D.R.对不起,我不理解您的场景。您的意思是您的js SP脚本中没有对cosmos db的操作?那么为什么要使用cosmos db SP?也许Azure函数更合适。开始时我有一个简短的查询,但后来我只想利用那里的免费(?)JS计算能力,而不是在我的虚拟机上执行相同的工作。还没有,我会在周末检查这个。@D.R.当然,当然。请慢慢来。您说“到目前为止,5s限制还不能突破”,但据我所知,只有在执行数据库操作时才检查它。所以,当我不执行任何实际的数据库计算,而是在Azure CosmosDB硬件之外执行一些繁重的JS操作时,是什么阻止了我?是否存在一个硬限制,在该限制之后,我的查询将被终止?5s不是吗,因为在5s之后,当我执行数据库操作时,它只是开始返回错误,但脚本似乎运行正常。@D.R.对不起,我不理解您的场景。您的意思是您的js SP脚本中没有对cosmos db的操作?那么为什么要使用cosmos db SP?也许Azure函数更合适。开始时我有一个简短的查询,但后来我只想利用那里的免费(?)JS计算能力,而不是在我的虚拟机上执行相同的工作。还没有,我会在周末检查这个。@D.R.当然,当然。请慢慢来。