国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

淺談SSAS計(jì)算中MDX性能改進(jìn)的幾個(gè)技巧

開(kāi)發(fā) 開(kāi)發(fā)工具
本文提供了一些簡(jiǎn)單的技巧,可以幫助你在SSAS的計(jì)算中表現(xiàn)出最佳的性能。其中一些是在SSAS 2005/2008中新開(kāi)發(fā)的函數(shù)。

1.使用半加性度量值替代Calculation

這算是半加性度量值函數(shù)的模擬能力之一,但是,有些只在SSAS Enterprise SKU版本中才支持。但是半加性函數(shù)操作更快,差不多是MDX腳本兩本的速度

2.使用一元操作符替代Calculation

服從分配律一元操作符(與位置順序無(wú)關(guān)的操作符)一般來(lái)說(shuō)要比同樣作用的賦值操作快兩倍。那是不是所有的Calculation都要抽取出來(lái),然后用一元操作符替換呢,答案是否定的。例外就是那些不服從分配律的一元操作符(包括*,/或者數(shù)字值)。在這種情況下,才會(huì)有可能改進(jìn)性能。

3.減小集合計(jì)算的大小

當(dāng)計(jì)算值是基于集合,使用NONEMPTY函數(shù)減小集合的大小。例如,當(dāng)計(jì)算城市間每個(gè)產(chǎn)品的銷(xiāo)售平均值,這個(gè)查詢大約耗時(shí)1分46秒,在我的機(jī)器上:

  1. with member measures.x as avg(existing  
  2. [Product].[Product].[Product].members*[Customer].[Customer Geography].[City].members,  
  3. [Measures].[Internet Sales Amount])  
  4. select [Date].[Calendar].[Month].members on 0,  
  5. non empty [Product].[Subcategory].members on 1  
  6. from [Adventure Works] where measures.x 

但是添加了NONEMPTY,耗時(shí)大約39秒:

  1. with member measures.x as avg(existing   
  2. nonempty( [Product].[Product].[Product].members*[Customer].[Customer Geography].[City].members,[Measures].[Internet Sales Amount])  
  3. , [Measures].[Internet Sales Amount])  
  4. select [Date].[Calendar].[Month].members on 0,  
  5. non empty [Product].[Subcategory].members on 1  
  6. from [Adventure Works] where measures.x 

避免賦給cell像0, Null, “N/A”, “-“ 這樣的值
之前翻譯的文章已經(jīng)提過(guò)了,AS的引擎在排除空行方面是很高效的。下面的查詢使用"-"替換了null值,并且non empty不會(huì)排出它們:

  1. with member measures.x as  
  2. iif( not isempty([Measures].[Internet Sales Amount]),[Measures].[Internet Sales Amount],"-")  
  3. select descendants([Date].[Calendar].[Calendar Year].&[2004] ) on 0,  
  4. non empty [Customer].[Customer Geography].[Customer].members on 1  
  5. from [Adventure Works]  
  6. where measures.x 

Non empty操作符不能用來(lái)格式化的值上,因此要使用格式化字符串的方式來(lái)替換null值,但卻排除了空的行,耗時(shí)大約是一半的時(shí)間:

  1. with member measures.x as  
  2. [Measures].[Internet Sales Amount], FORMAT_STRING = "#.00;(#.00);#.00;-" 
  3. select descendants([Date].[Calendar].[Calendar Year].&[2004] ) on 0,  
  4. non empty [Customer].[Customer Geography].[Customer].members on 1  
  5. from [Adventure Works]  
  6. where measures.x 

有的讀者可能已經(jīng)觀察到,上面的兩個(gè)查詢其實(shí)是不等效的——第二個(gè)查詢完全排除了空行。

4.計(jì)算格式化值的成本

在某些情況下,采用格式化字符串的成本消耗甚至操作了求值本身。這時(shí)候就需要對(duì)比是否應(yīng)用格式化屬性時(shí)兩者的執(zhí)行時(shí)間,例如:

  1. select [Measures].[Internet Average Sales Amount] on 0 from [Adventure Works] cell properties value  
  2. 如果不帶格式化的結(jié)果明顯快的話,可以使用下面的語(yǔ)句實(shí)現(xiàn)格式化:  
  3. scope([Measures].[Internet Average Sales Amount]);  
  4. FORMAT_STRING(this) = "currency";  
  5. end scope; 

執(zhí)行這個(gè)查詢(應(yīng)用了格式化),然后在決定是否采用吧

5.使用屬性

在SSAS 2000中,當(dāng)要查找一個(gè)集合中哪些成員滿足條件通常使用filter函數(shù),例如下面查找男性的顧客:

Filter(Customer.name.Name.members, Customer.name.currentmember.properties(“Gender”) = “Male”)

在SSAS 2005/2008中這樣的方式就要避免了,取而代之的是添加一個(gè)hierarchy屬性Customers.Gender :

(Customers.Gender.Male, Measures.Sales)

這個(gè)hierarchy屬性可以對(duì)終端用戶隱藏,但是對(duì)MDX表達(dá)式仍然有效。

下面查詢男性客戶的平均銷(xiāo)售額:

Avg(Customer.Name.Name.members*Customers.Gender.Male, Measures.Sales)

為什么使用.properties會(huì)慢呢?因?yàn)樵讷@取一個(gè)成員的時(shí)候每個(gè)成員其實(shí)都要獲取到,這樣才能得到property的值,EXISTS更快些是因?yàn)橹苯邮褂昧藘?nèi)部存儲(chǔ)結(jié)構(gòu)

6.使用IS比較操作符

當(dāng)比較成員時(shí),比較對(duì)象時(shí)使用IS,不要像下面這樣:

Iif( [Currency Code].currentmember.Name = “USA”], …)

正確的方法是:

Iif( [Currency Code].currentmember IS [Currency Code].[USA], …)

這是因?yàn)?**個(gè)語(yǔ)句要將成員轉(zhuǎn)型為string,這是要耗時(shí)的,而且沒(méi)有必要

7.使用NONEMPTY函數(shù)

NONEMPTY函數(shù)(SSAS 2005新增的)在提出元組方面進(jìn)行了優(yōu)化,因此下面的查詢就不可取了:

Filter(Customer.Name.members, not IsEmpty( ([Measures].[Unit Sales], [Product].[Name].[Xbox])

合適的方式是:

NonEmpty (Customer.Name.members, ([Measures].[Unit Sales], [Product].[Name].[Xbox]))

其實(shí)Filter(, Not Isempty()) 和NonEmpty(,) 是等效的,現(xiàn)在引擎已經(jīng)自動(dòng)做了優(yōu)化

另外:

  1. Count(Filter([year and month].[Month],  
  2. Not IsEmpty(([Project Count], [Layer].[Layer].[web]))   
  3. or Not IsEmpty(([Project Count], [Layer].[Layer].[server])))) 

上面的方式也不可取,應(yīng)該這樣:

  1. Count(NonEmpty ([year and month].[Month],{([Project Count],   
  2. [Layer].[Layer].[web]), ([Project Count], [Layer].[Layer].[server])}) 

8.條件計(jì)算

IIF的存在可能會(huì)破環(huán)引擎的優(yōu)化,因?yàn)閮?yōu)化器不能接受在求值過(guò)程中的表達(dá)式,這個(gè)問(wèn)題可能以后會(huì)解決,但是可以采用一些方案繞過(guò)這個(gè)問(wèn)題:

9.條件計(jì)算和條件域

IIF有時(shí)候用于限定應(yīng)用于集合成員的計(jì)算的域,例如:

  1. This =  
  2. IIF([account].[Account Type].currentmember IS [Account].[Account Type].[Flow],   
  3. ,   
  4. )  

上面的做法不推薦,下面可能會(huì)獲得更好的性能:

  1. Scope ([Account].[Account Type].[Flow]);  
  2. This = ;  
  3. End Scope;  
  4. Scope ([Account].[Account Type].[Account Type].members –   
  5. [Account].[Account Type].[Flow]);  
  6. This = ;  
  7. End Scope; 

10.使用ValidMeasure減少計(jì)算求值的空間消耗

在SSAS 2005中,每個(gè)度量值組都有一個(gè)IgnoreUnrelatedDimensions 屬性,這個(gè)屬性定義了如何處理與度量值不相關(guān)的維度 --或者忽略這個(gè)維度,或者剔除默認(rèn)成員上的空值。

在定義計(jì)算的時(shí)候,不要使用這個(gè)behavior而是使用ValidMeasuer函數(shù),例如:

  1. scope(leaves([Time]), [Currency].[Currency].members - [Currency].[Currency].[Currency].[USA]  
  2. Scope [Measures].[store Sales];  
  3. This = iif( isempty(validmeasure([Measures].[Exchange Rate])), null, [Measures].[Store Sales]/validmeasure([Measures].[Exchange Rate]));  
  4. End Scope; 

11.使用Sum或Aggregate替代求和運(yùn)算,

避免:

Create Member measures.x as

(Sales, Country.USA) + (Sales, Country.Canada) + (Sales, Country.Mexico)…

推薦:

Create Member measures.x as Sum({Country.USA, Country.Canada, Country.Mexico}, Sales)

12.在大數(shù)據(jù)量Crossjoin中多重的Hierarchy

如果可能,盡量使在同一緯度中的hierarchy在一起。為什么呢?因?yàn)樵谝鎯?nèi)部有一個(gè)exists在進(jìn)行Crossjoin的相鄰的集合之間。如果一個(gè)來(lái)自不用緯度的hierarchy插在兩個(gè)屬于相同緯度的hierarchy之間,exists的行為會(huì)變化,就會(huì)增加占用的空間,影響性能

13.緩存計(jì)算結(jié)果

在公式引擎內(nèi)部有一個(gè)緩存,用于重用計(jì)算結(jié)果,但是要進(jìn)行緩存,這個(gè)結(jié)果在Cube空間中就要有一個(gè)可定地址的單元格或者元組。

例如,一個(gè)應(yīng)用程序在集合中定義了一個(gè)比率:一個(gè)值除***值,并且展示為柱狀圖。

***種方法:

  1. with   
  2. member measures.y as  
  3. measures.[unit sales]  
  4. /  
  5. max(customers.[name].[name].members, measures.[unit sales])  
  6. select  
  7. measures.y on 0,  
  8. customers.[name].[name].members on 1  
  9. from sales 

這個(gè)執(zhí)行大約需要15秒。這個(gè)計(jì)算其實(shí)效率不高,因?yàn)?**值其實(shí)是不變的,但是每次表達(dá)式都要進(jìn)行求值,下面的查詢就要好一些:

  1. with   
  2. member measures.x as   
  3. max(customers.[name].[name].members, measures.[unit sales])  
  4. member measures.y as  
  5. measures.[unit sales]  
  6. /  
  7. (measures.x,[Customers].[Customers].[All Customers] )  
  8. select   
  9. measures.y on 0,  
  10. customers.[name].[name].members on 1  
  11. from sales 

這個(gè)查詢不到1秒!性能得到了數(shù)量級(jí)的提升!

不知道讀者有沒(méi)有注意到一個(gè)問(wèn)題?為什么SSAS表達(dá)式中的measure.y必須要在分母中包含[Customers].[Customers].[All Customers] ,換句話說(shuō)為什么不能這樣:

  1. with   
  2. member measures.x as   
  3. max(customers.[name].[name].members, measures.[unit sales])  
  4. member measures.y as  
  5. measures.[unit sales]  
  6. /  
  7. (measures.x)  
  8. select   
  9. measures.y on 0,  
  10. customers.[name].[name].members on 1  
  11. from sales  

這是因?yàn)槲覀冃枰镁彺嬷怠H绻鸞Customers].[Customers].[All Customers]沒(méi)有寫(xiě)上customer維度的屬性,那么單元格會(huì)跟著客戶名的引用和計(jì)算值變化,而計(jì)算值每次都要重新求值

【編輯推薦】

  1. 在T-SQL中使用臨時(shí)表的注意事項(xiàng)
  2. SQL Server數(shù)據(jù)庫(kù)管理常用的SQL和T-SQL語(yǔ)句(1)
  3. 用T-SQL操作面試SQL Server開(kāi)發(fā)人員(1)
  4. SQL Server 2005中的T-SQL
  5. T-SQL實(shí)用例句
  6. 微軟SQLServer密碼管理的危險(xiǎn)判斷
責(zé)任編輯:彭凡 來(lái)源: cnblogs
相關(guān)推薦

2014-09-17 11:20:38

AndroidListView技巧

2011-07-05 14:59:17

java

2022-04-06 07:32:41

Java運(yùn)算符變量

2011-06-08 16:52:16

軟件測(cè)試

2015-01-12 15:36:27

云網(wǎng)絡(luò)性能云性能監(jiān)測(cè)應(yīng)用性能監(jiān)測(cè)

2019-09-26 08:33:51

Nginx技術(shù)Java

2010-03-02 10:08:28

Android源代碼

2021-09-08 09:41:09

開(kāi)發(fā)Go代碼

2013-06-03 10:02:53

WAF繞過(guò)

2019-08-14 15:40:05

Web圖片優(yōu)化前端

2024-10-24 08:07:25

大語(yǔ)言模型LLMRAG模型

2025-08-01 09:01:00

2011-03-02 17:56:40

DB2數(shù)據(jù)庫(kù)

2011-04-19 10:53:05

SSAS

2021-06-27 06:25:14

代碼優(yōu)化技巧Java

2022-09-07 00:04:37

JavaScript運(yùn)算符技巧

2010-09-08 15:19:46

生產(chǎn)環(huán)境性能測(cè)試風(fēng)險(xiǎn)

2011-08-19 15:48:13

SQL Server 結(jié)果集Sets使用技巧

2011-05-05 09:25:35

噴墨打印機(jī)指標(biāo)術(shù)語(yǔ)

2017-03-13 16:48:05

Git技巧
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

夜鲁夜鲁夜鲁视频在线播放| 日韩二区三区在线观看| 欧美性猛交xxxx| 欧在线一二三四区| 日韩中文欧美在线| 狠狠色狠狠色综合人人| 亚洲综合专区| 成人在线精品视频| 欧美一区三区| 欧美诱惑福利视频| 盗摄牛牛av影视一区二区| 日韩视频第一页| 2022成人影院| 亚洲精品一区二区三区影院| 超碰caoporn久久| 欧美电影一区二区三区| av在线1区2区| 欧美人伦禁忌dvd放荡欲情| a黄色在线观看| 欧美精品一卡二卡| 在线免费观看a视频| 欧美三级电影在线看| jizz日韩| 日韩欧美在线影院| 日本在线高清| 一区二区三区视频免费在线观看| 超碰超碰人人人人精品| 99视频日韩| 91午夜精品| 色777狠狠综合秋免鲁丝| 亚洲少妇视频| 牛牛国产精品| 福利电影一区二区| 日本黄色播放器| 国产麻豆成人精品| 国产精品麻豆网站| 国产黄色免费网| 午夜精品视频在线观看| 亚洲欧美另类图片| 5566中文字幕一区二区电影| 高h视频在线播放| 一个人看的www久久| 日本在线一区二区三区| 国产a∨精品一区二区三区不卡| 国产伦精品一区二区三区千人斩| 国产精品视频在线播放| 亚洲二区视频| 国产精品igao激情视频| 日本一区二区三区免费乱视频| 动漫h在线观看| 欧美另类一区二区三区| 男人最爱成人网| 2019中文字幕在线观看| 亚洲草久电影| 亚洲成人自拍视频| 久久蜜桃av一区二区天堂| 午夜影院网站| 日韩欧美精品在线| 北条麻妃在线一区二区免费播放| 国产在线拍偷自揄拍精品| 久久久久国产精品一区二区| 欧美性大战久久久久xxx| 亚洲一区二区三区自拍| 精灵使的剑舞无删减版在线观看| 欧美成人精品h版在线观看| 1024精品久久久久久久久| 一区二区三区四区视频在线观看 | 亚洲成人国产精品| 亚洲天堂中文字幕在线观看| 97神马电影| 99视频精品在线| 蜜桃av成人| 亚洲欧洲国产精品| 日韩黄色大片| 日韩精品一区二区在线视频| 亚洲成av人片一区二区| 欧美电影h版| 91九色视频在线| 99精品黄色片免费大全| 黄色av网站在线| 欧美成人全部免费| 久久福利毛片| 久草在线中文888| 日韩在线视频线视频免费网站| 一区二区电影在线观看| 青青草国产精品视频| 欧美性感一区二区三区| 婷婷综合国产| 裸体裸乳免费看| 欧美三级韩国三级日本三斤| 国产ts一区| 黄色网络在线观看| 欧美手机在线视频| 理论片一区二区在线| 麻豆一区二区三区在线观看| 精品久久久久久中文字幕大豆网| 日韩三级一区| 一区二区在线不卡| 欧美情侣在线播放| 黄网站色视频免费观看| 日韩中文字幕免费视频| 国产乱码精品1区2区3区| 手机福利在线| 国产日韩欧美精品电影三级在线| 天堂中文8资源在线8| 日韩免费精品视频| 99re成人精品视频| 国产美女精品写真福利视频| 亚洲xxxxx电影| 有码一区二区三区| 亚洲午夜免费| 国产免费一区二区视频| 日韩亚洲欧美在线| 一区免费视频| 一二三四在线视频观看社区| 久久久视频在线| 91免费看`日韩一区二区| 成人黄色免费短视频| 亚洲一区在线直播| 欧美一区二区在线看| 亚洲黄色毛片| 永久av在线| 美女精品国产| 欧美午夜不卡视频| 黄页视频在线免费观看| 青青青在线播放| 国产精品久久久久久网站| 午夜国产精品视频| 超碰在线免费| 成人中文在线| 亚洲色图官网| 免费在线国产视频| 国外成人在线视频网站| 欧美日韩国产限制| 亚洲精品午夜av福利久久蜜桃| 在线黄色国产视频| 99re在线| 欧美精品一二三| 国产精品五区| 97天天综合网| 国产成人精品免费看在线播放| 亚洲精品电影在线| 丁香另类激情小说| 成人污版视频| 德国一级在线视频| 国产精品色婷婷视频| 精品露脸国产偷人在视频| 真实国产乱子伦精品一区二区三区| 992tv在线| 国产精品一 二 三| 日韩视频中午一区| 国产一区二区三区观看| 黄色精品视频网站| 久热免费在线观看| 国产成人精品视| 欧美三级xxx| 亚洲综合丁香| 91亚洲视频| www.亚洲高清| 国产精品爽爽爽| 欧美日韩久久久久久| 麻豆精品视频在线观看| 久久日本片精品aaaaa国产| 国产1区2区在线| 国产精品入口尤物| 欧美精品精品一区| 国产一区二区三区精品视频| 日韩欧美高清一区二区三区| 传媒在线观看| 欧美日韩一区二区三区在线观看免 | 美女一区二区视频| 91丨精品丨国产| 香蕉自在线视频| 亚洲精品高清视频| 性欧美xxxx视频在线观看| 欧美在线制服丝袜| 国产91丝袜在线播放九色| 极品一区美女高清| 免费黄色网页在线观看| 成人在线观看你懂的| 国产精品久久久久久久久久99| 欧美成人r级一区二区三区| 久久五月婷婷丁香社区| 综合久久一区| 免费一区二区三区四区| 性网站在线播放| 400部精品国偷自产在线观看 | 亚洲天堂一区二区| 午夜影院韩国伦理在线| 在线一区日本视频| 国产精品久久久久久久久久免费| 亚洲国产一区二区三区四区| 亚洲日本欧美天堂| 日本美女一区二区三区| 久久综合欧美| 超碰国产一区| 91caoporm在线视频| 中文字幕免费中文| 一二三四中文字幕| 国产午夜精品在线|