我正在使用GUID Id作为我的分区键,当我尝试运行存储过程时,我遇到了问题。要运行存储过程,我需要提供分区密钥,我不确定在这种情况下我应该提供什么值?请协助。
如果注册存储过程的集合是单分区集合,则事务的范围限定为集合中的所有文档。如果集合是分区的,则存储过程在单个分区键的事务范围内执行。然后,每个存储过程执行必须包括与事务必须在其下运行的范围相对应的分区键值。
你可以参考上面提到的here的描述。
正如@Rafat Sarosh所说,GUID Id
不是一个合适的partitioning key
。根据您的情况,city
可能更合适。您可能需要调整数据库partitioning scheme
,因为在您定义分区键后无法删除或修改分区键。
我建议你exporting your data到json
文件,然后import到一个新的集合,由city
通过Azure Cosmos DB Data migration tool划分。
希望它能帮到你。
仅供参考:
问题:
执行sql查询文档时无法提供特定的分区键值。
解:
1.执行查询sql时将EnableCrossPartitionQuery
设置为true
。(有性能瓶颈)
2.考虑将频繁查询的字段设置为分区键。
请看一下这个视频https://youtu.be/F0wEDdxQER0?t=9m40s
请在此处阅读有关分区键的更多信息:https://docs.microsoft.com/en-us/azure/cosmos-db/partition-data