首次查詢Rolap Cube子成員計數不准

2021-09-05 14:46:24 字數 938 閱讀 9227

昨天被services team提回來乙個問題,說我們的產品在獲取成員的子成員數量時,不時會出現數不准的問題。結果用他們提供的cube反覆試驗,最終發現這個問題原來是由於cube的dimension儲存格式是rolap引起的,詳細錯誤復現和原因大概是這樣的。

當我們把乙個cube的dimension的儲存格式設定為了rolap後,在"第一次"訪問這個cube時,取回來的第乙個member(一般是all level的那個自動aggregate)的childcount始終是1000。這個第一次有個限制,是cube冷查詢的第一次,就是說cube被處理後,還從來沒有被訪問過。因為一旦這個rolap cube被訪問過後,dimension就動態的重新整理了,這時取到的childcount就是實際的正確數量值了。

通過跟蹤adomd.net(8.0)的member類的childcount屬性,我們可以清楚地看到,這個1000其實就是乙個在系統未取到真實的childcount時的乙個預設數值:

雖然有這麼乙個不準確的childcount,但是只要該含有rolap型別dimension的cube一旦被訪問過,即下次查詢是"熱查詢",這個childcount就會是正確的。不過微軟建議rolap型別dimension一般用於超大量(10m個以上)member的dimension,所以我們應該不會太多的用到rolap型別dimension,所以adomd.net預設返回1000似乎也算是可以接受的。

mysql from 子查詢 mysql 子查詢

簡單的解釋下幾個資料庫概念以幫助理解子查詢的內容 1 什麼是建標 答 就是宣告列的過程。2 什麼是列答 列可以理解為變數,可以運算3 什麼是取出結果 答 可以理解為零時表 接下來建立2個表,email表和person表,例子的原型是乙個人可以有多個郵箱,而乙個郵箱只能屬於乙個人,一對多的資料關係,其...

mysql求和 子查詢 MySQL子查詢

到現在為止,我們已經表明,以select宣告是乙個簡單的查詢。該單個語句從單個資料庫表中檢索資料。sql還同意建立乙個子查詢。即巢狀在其他查詢的查詢。下列實施例給出巢狀查詢。一種表示訂單資訊儲存,包含訂單號,客戶id。訂購日期。例如以下所看到的 一張表示儲存訂單物品資訊,例如以下 另一張表儲存的是客...

mysql sql 子查詢語句 SQL子查詢

子查詢或內部查詢或巢狀查詢在另乙個sql查詢的查詢和嵌入式where子句中。子查詢用於返回將被用於在主查詢作為條件的資料,以進一步限制要檢索的資料。子查詢可以在select,insert,update使用,而且隨著運算子如delete語句 in,between 等.這裡有一些規則,子查詢必須遵循 子...