2017-09-01 209 views
0

我們正在使用Azure Cosmos DB Graph API來緩存具有包含相當大html的屬性的CMS的項目。Azure Cosmos的性能DB中包含html屬性的大元素

當添加8000個項目時,Cosmos DB開始非常緩慢。

比如這個簡單的查詢需要約12-15秒即可完成:

g.V().hasLabel('news').limit(10) 

數據在每個頂點周圍約4-5千,我已經排除圖形設置的內容屬性。

我已經將RU增加到5000/s,而Azure Portal中的Monitor-tab似乎已經足夠。 Estimating throughput needs表明5000RU應該足夠500次讀取/秒,但我甚至不能做一個。

查詢沒有像g.V()。hasLabel('user')這樣的html屬性的項目仍然很快。

我也試圖從索引中排除的路徑,但無明顯差異(沒有重新加載的項目,如果這是必要的嗎?)

"excludedPaths": [ 
     { 
      "path": "/Content/?" 
     } 
    ] 

我能做些什麼來得到這個加快速度?

回答

2

如果您使用的是.NET SDK,則表明該請求會檢索「hasLabel」篩選器的所有結果,並在客戶端SDK代碼中執行「限制」篩選。

我用Fiddler中的「limit」擴展名嗅探了一些查詢,無論該值如何,請求中的查詢都不包含TOP子句。在請求的正文文檔DB查詢看起來像: {"query":"SELECT N_2 FROM Node N_2 WHERE (IS_DEFINED(N_2._isEdge) = false AND (N_2.label = 'news'))"}

我希望它是:{"query":"SELECT TOP 10 N_2 FROM Node N_2 WHERE (IS_DEFINED(N_2._isEdge) = false AND (N_2.label = 'news'))"}

+0

感謝您的輸入。我從宇宙數據庫團隊獲得了確認,這是今年10月初將要解決的問題。對承諾的「全球規模」非常重要:-) –