【问题标题】:Inexplicable SQL Query Result in Cosmos DB Data ExplorerCosmos DB 数据资源管理器中莫名其妙的 SQL 查询结果
【发布时间】:2019-01-24 17:20:09
【问题描述】:

我与 ca 有一个收藏。 7.000 个文档已移至新数据库(以利用 Index v2 和数据库吞吐量配置)。

查询

SELECT VALUE COUNT(c.id)  FROM c WHERE c._DAT.KursFrei._v = "RD18-G 06"

产生以下(正确)结果:

[
    72
]

例如这个查询:

SELECT DISTINCT VALUE c._DAT.KursFrei._v FROM c 

只显示以下输出:

[
"NFS 16 BW",
"G 04 2018",
"NFS 15",
"NFS 17 BW",
"NFS 17",
"G 05 2018",
"G 05 2015",
"RDF 07",
"RDF 07 "
]

第一个查询的约束值甚至没有显示出来。

SELECT VALUE c._DAT.KursFrei._v FROM c 

仅显示 149 个结果,而

SELECT COUNT(VALUE) c._DAT.KursFrei._v FROM c 

正确显示6891

  • 已启用跨分区查询
  • “每页查询结果”设置为 10000(Unlimited 似乎仍默认为 100)
  • 所有在针对旧的未分区集合运行时,查询结果符合预期
  • 我还没有尝试从我的应用程序运行查询

这是我的索引设置:

{
"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": "/_OLD/*"
    }
]
}

【问题讨论】:

    标签: azure-cosmosdb


    【解决方案1】:

    我在本地应用程序中从 Azure 门户复制了数据资源管理器的基本功能。基本上,我只是通过CreateDocumentQuery() 循环一个SQL 字符串,并对结果提要中的所有对象调用.ToString()

    正如我所料:

    • 所有查询都显示正确和预期的结果
    • 查询的执行速度比门户网站快几个数量级

    这证实了我最初的假设,即数据资源管理器只是让我进行了一次疯狂的追逐,而在当前状态下,不仅使用起来很麻烦,而且几乎没用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-16
      • 1970-01-01
      • 2012-12-28
      • 1970-01-01
      • 2020-04-07
      • 1970-01-01
      • 2012-05-19
      • 1970-01-01
      相关资源
      最近更新 更多