gpt4 book ai didi

indexing - 为什么我在 2 个看似相同的 CosmosDb 集合之间看到不同的索引行为

转载 作者:行者123 更新时间:2023-12-04 15:29:16 25 4
gpt4 key购买 nike

我正在尝试调试 2 个单独的 cosmos db 集合之间的一个非常奇怪的差异,这些集合在面值上配置相同。

我们最近修改了一些执行以下查询的代码。

旧查询

SELECT * FROM c 
WHERE c.ProductId = "CODE"
AND c.PartitionKey = "Manufacturer-GUID"

新查询
SELECT * FROM c
WHERE (c.ProductId = "CODE" OR ARRAY_CONTAINS(c.ProductIdentifiers, "CODE"))
AND c.PartitionKey = "Manufacturer-GUID"

简介 Array_Contains生产环境中的调用已经将该查询的性能从 ~3 RU/s ==> ~6000 RU/s 降低了。但仅限于生产环境。

原因似乎是在生产中,它没有达到索引。请参阅以下两种环境的输出。

开发配置

收集规模:2000 RU/s

索引策略:(注意 ETag 的排除路径)
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*",
"indexes": [
{
"kind": "Range",
"dataType": "Number",
"precision": -1
},
{
"kind": "Range",
"dataType": "String",
"precision": -1
},
{
"kind": "Spatial",
"dataType": "Point"
}
]
}
],
"excludedPaths": [
{
"path": "/\"_etag\"/?"
}
]
}

产品配置

收集规模:10,000 RU/s

索引策略:(注意与 DEV 相比,ETag 没有排除路径)
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*",
"indexes": [
{
"kind": "Range",
"dataType": "Number",
"precision": -1
},
{
"kind": "Range",
"dataType": "String",
"precision": -1
},
{
"kind": "Spatial",
"dataType": "Point"
}
]
}
],
"excludedPaths": []
}

比较两种环境的输出结果时,DEV 显示索引命中,而 PROD 显示索引未命中,尽管索引策略之间没有明显差异。

DEV 中的结果
Request Charge:           3.490 RUs
Showing Results: 1 - 1
Retrieved document count: 1
Retrieved document size: 3118 bytes
Output document count: 1
Output document size: 3167 bytes
Index hit document count: 1

PROD 中的结果
Request Charge:           6544.870 RUs
Showing Results: 1 - 1
Retrieved document count: 124199
Retrieved document size: 226072871 bytes
Output document count: 1
Output document size: 3167 bytes
Index hit document count: 0

我唯一能在网上找到的是文档中对 Cosmos 集合中发生的一些更改的引用,指出“新索引布局”正在用于较新的集合,但没有其他提及索引布局作为我可以在文档中的任何地方找到的概念。

https://docs.microsoft.com/en-us/azure/cosmos-db/index-types#index-kind

任何人都知道在调试/解决这个问题方面我可以从哪里开始。

最佳答案

您的开发容器更新并使用我们的 v2 索引,该索引在 Array_Contains() 等方面有显着改进。要了解有关如何升级 PROD 容器的更多信息,请通过 microsoft dot com 的 askcosmosdb 向我们发送电子邮件。

谢谢。

关于indexing - 为什么我在 2 个看似相同的 CosmosDb 集合之间看到不同的索引行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54924457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com