一、 問題背景與適用場景 什么是后半有序?如果數(shù)據(jù)集T已經(jīng)按字段a、b有序,現(xiàn)在我們要將T按b排序或分組時(shí),因?yàn)樵赼值相同的段內(nèi),b都是有序的,這種要排序或分組的字段在分段內(nèi)...
一、 問題背景與適用場景 什么是后半有序?如果數(shù)據(jù)集T已經(jīng)按字段a、b有序,現(xiàn)在我們要將T按b排序或分組時(shí),因?yàn)樵赼值相同的段內(nèi),b都是有序的,這種要排序或分組的字段在分段內(nèi)...
一、 問題背景與適用場景 在對數(shù)據(jù)集進(jìn)行排序運(yùn)算時(shí),有時(shí)會遇到這樣一種場景:數(shù)據(jù)集T已經(jīng)按字段a有序,而字段b無序,現(xiàn)在我們要將T按a、b排序,我們稱之為前半有序(a有序)的...
一、 問題背景與適用場景 通常分組計(jì)算都采用hash方案,即先計(jì)算分組字段的hash值,hash值相同的記錄被分揀到一個(gè)小集合里,然后在這個(gè)小集合中遍歷找分組字段值相同的聚合...
一、 問題背景與適用場景 在《性能優(yōu)化技巧:小事實(shí)表與大維表關(guān)聯(lián)[http://c.raqsoft.com.cn/article/1583209591047]》中,我們嘗試了...
一、 問題背景與適用場景 在主子表關(guān)聯(lián)查詢中,有時(shí)會遇到這樣一種情況:按條件過濾后的事實(shí)表數(shù)據(jù)量很小,能夠全部裝載進(jìn)內(nèi)存或僅比內(nèi)存略大一點(diǎn);而要關(guān)聯(lián)的維表數(shù)據(jù)量很大,比內(nèi)存要...
一、 問題背景與適用場景 在《性能優(yōu)化技巧:有序歸并[http://c.raqsoft.com.cn/article/1577153335610]》中我們見證了有序歸并算法提...
在事實(shí)表與維表的關(guān)聯(lián)查詢時(shí),常常會遇到需要對維表的數(shù)據(jù)進(jìn)行過濾或者針對維表做計(jì)算的情況,這時(shí)可以有兩種處理方式: 1、先做關(guān)聯(lián)(如果是內(nèi)存則可以是預(yù)關(guān)聯(lián)),再對關(guān)聯(lián)后的事實(shí)表...
一、 問題背景與適用場景 在以前的文章中我們介紹過,關(guān)系數(shù)據(jù)庫在進(jìn)行表間關(guān)聯(lián)時(shí)是使用HASH分段技術(shù)。設(shè)兩個(gè)關(guān)聯(lián)表的規(guī)模(記錄數(shù))分別是 N 和 M,則 HASH 分段技術(shù)的...
【摘要】 用實(shí)例、分步驟,實(shí)踐目標(biāo) 本期目標(biāo),是在完成數(shù)據(jù)類型轉(zhuǎn)化基礎(chǔ)上,實(shí)現(xiàn)維度排序壓縮,進(jìn)一步提升計(jì)算速度。 實(shí)踐的步驟: 1、 準(zhǔn)備基礎(chǔ)寬表:修改上期的代碼,完成維度排...
【摘要】用實(shí)例、分步驟,詳細(xì)講解多維分析(OLAP)的實(shí)現(xiàn)。 實(shí)踐目標(biāo) 本期目標(biāo)是練習(xí)將數(shù)據(jù)庫讀出的數(shù)據(jù),盡可能轉(zhuǎn)換為有利于性能優(yōu)化的數(shù)據(jù)類型,例如:小整數(shù)和浮點(diǎn)數(shù)。 實(shí)踐的...
一、 問題背景與適用場景 在《性能優(yōu)化技巧:部分預(yù)關(guān)聯(lián)》一文中,我們介紹了將維表內(nèi)存化并預(yù)關(guān)聯(lián)的技術(shù),但事實(shí)表與維表關(guān)聯(lián)時(shí),仍需進(jìn)行hash計(jì)算和比對,怎么提高這一步的性能呢...
一、 問題背景與適用場景 在《性能優(yōu)化技巧:預(yù)關(guān)聯(lián)》中,我們測試了將數(shù)據(jù)表事先全部加載進(jìn)內(nèi)存并做好關(guān)聯(lián)后的查詢性能優(yōu)化問題,但如果內(nèi)存不夠大,不能將維表和事實(shí)表全部裝入,那怎...
一、 問題背景與適用場景 SQL中JOIN的性能是個(gè)老大難問題,特別是關(guān)聯(lián)表較多時(shí),計(jì)算性能會急劇下降。 SQL實(shí)現(xiàn)JOIN一般是采用HASH分堆的辦法,即先計(jì)算關(guān)聯(lián)鍵的HA...
TopN是常見的運(yùn)算,用SQL寫出來是這樣(以O(shè)racle為例): select * from (select * from T order by x desc) where...
我們知道,大數(shù)據(jù)運(yùn)算性能的瓶頸常常是在外存(也就是硬盤)IO上,因?yàn)橥獯嬖L問性能要比內(nèi)存低一兩個(gè)數(shù)量級。因此,做性能優(yōu)化時(shí),減少硬盤的訪問量有時(shí)要比減少CPU計(jì)算量更為重要。...
【摘要】 用實(shí)例、分步驟,詳細(xì)講解多維分析(OLAP)基礎(chǔ)寬表的實(shí)現(xiàn)。 實(shí)踐目標(biāo) 本期目標(biāo)是練習(xí)如何搭建多維分析后臺的基礎(chǔ)寬表,并通過 SPL 和 SQL 訪問基礎(chǔ)寬表。 實(shí)...
【摘要】 有序運(yùn)算是指按照一定的次序?qū)τ行蚣系某蓡T進(jìn)行計(jì)算。SQL 和 SPL 是大家比較熟悉的程序語言,本文將探討對于有序運(yùn)算問題,這兩種語言的解決方案和基本原理。如何簡...
【摘要】 多維分析(OLAP)中常見的枚舉維度切片(過濾條件 in)和二值維度(是否型過濾條件)如何優(yōu)化?點(diǎn)擊了解枚舉維度與二值維度切片的優(yōu)化[https://link.zh...
【摘要】 循環(huán)運(yùn)算是指按照一定的次序?qū)系某蓡T進(jìn)行計(jì)算。除了在循環(huán)中訪問當(dāng)前成員、對成員賦值等簡單的計(jì)算,還有在循環(huán)中進(jìn)行跨行計(jì)算、嵌套循環(huán)、迭代運(yùn)算等復(fù)雜需求。如何簡便快...