簡體   English   中英

查詢DateTime字段時,DocumentClient花費的時間太長

[英]DocumentClient takes too long when queried over a DateTime field

我有以下代碼從DocumentDB數據庫中獲取一些對象的列表:

var document = this._client.CreateDocumentQuery<T>(UriFactory.CreateCollectionUri(dbName, collectionName), queryOptions)
.Where(r => r.pDate >= startDate && r.pDate <= endDate);

var result = document.ToList();

pDate的類型為DateTime ,並以ISO8601格式的字符串形式存儲在數據庫中。

查詢花費不合理的時間(例如4至5分鍾)太長,無法返回結果。 當我跟蹤程序時,就是程序卡住的那個.ToList() 奇怪的是,查詢會快速返回一些特定的開始和結束日期。 如果我將過濾器放在pDate以外的其他字段上,查詢也會很快返回一些結果。

我的設置與本文檔中的解釋一致,但是除少數例外外,幾乎所有時間我的表現仍然很差。

我已經嘗試過在這里和那里提到的幾種方法來解決此問題,但是到目前為止還沒有運氣。 感謝您對問題的任何評論或解決方案。

這可能是因為在此特定字段上應用了索引。

從此鏈接https://docs.microsoft.com/zh-cn/azure/cosmos-db/indexing-policies ,您將需要一個Range索引用於range或Order by Queries。

應用於集合的默認索引策略是“字符串的哈希和數字的范圍”

日期時間存儲為字符串,因此對於運行范圍比較查詢或按查詢排序,對於精度為-1的字符串數據類型,您需要將索引策略設置為“ Range”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM