資源描述:
《SAP HANA數(shù)據(jù)庫(kù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、SAPHANA?數(shù)據(jù)庫(kù)–開(kāi)發(fā)指南–如何使用SQL和SQLScript數(shù)據(jù)建模SAPHANA數(shù)據(jù)庫(kù)開(kāi)發(fā)指南如何使用SQL和SQLScript數(shù)據(jù)建模1.簡(jiǎn)介1.1什么是SAPHANA1.2相關(guān)文檔2.SAPHANA數(shù)據(jù)庫(kù)概念2.1基本概念2.1.1現(xiàn)代化硬件對(duì)數(shù)據(jù)庫(kù)系統(tǒng)架構(gòu)的影響2.1.2基于列式和行式的存儲(chǔ)2.1.3列式表的優(yōu)勢(shì)2.2架構(gòu)概覽2.3SAPHANA數(shù)據(jù)庫(kù)概念:表,模型和視圖處理2.3.1表,試圖和星型結(jié)構(gòu)2.3.2SAPHANA模型視圖2.3.3SAPHANA視圖處理3.教程3.1使用SAPHANAstud
2、io3.2如何使用SAPHANAmodeler3.2.1如何建立分析試圖3.2.2查看表3.2.3建立分析試圖3.2.4MANDT屬性3.2.5過(guò)濾器的應(yīng)用3.2.6創(chuàng)建屬性試圖3.2.7創(chuàng)建簡(jiǎn)單的星型架構(gòu)3.2.8計(jì)算屬性3.2.9多語(yǔ)種屬性視圖(文本視圖)3.2.10圖形化計(jì)算視圖3.2.11如何創(chuàng)建腳本計(jì)算視圖3.3使用SAPHANAstudio執(zhí)行SQL和SQLScript語(yǔ)句3.4如何顯示查詢計(jì)劃3.4.1查詢計(jì)劃中的列3.4.2查詢計(jì)劃中的OPERATOR_NAME列3.5使用jdbc驅(qū)動(dòng)3.5.1安裝驅(qū)動(dòng)3
3、.5.2系統(tǒng)必備3.5.3jdbc驅(qū)動(dòng)的整合3.5.4加載jdbc驅(qū)動(dòng)3.5.5連接地址3.5.6jdbc4.0標(biāo)準(zhǔn)擴(kuò)展api3.5.7jdbc跟蹤記錄3.5.8匹配SQL和java類型4.最佳實(shí)踐4.1列式存儲(chǔ)引擎的特點(diǎn)4.2SQL查詢代價(jià)的估算4.2.1行式搜索代價(jià)模型SAPHANA數(shù)據(jù)庫(kù)開(kāi)發(fā)指南如何使用SQL和SQLScript數(shù)據(jù)建模4.2.2列式搜索代價(jià)模型4.3SQL查詢列引擎的優(yōu)化技巧4.3.1表達(dá)式4.3.2聯(lián)接4.3.3EXISTS/IN運(yùn)算符4.3.4set操作4.4SQLScript推薦實(shí)踐4.4.
4、1減少SQL語(yǔ)句的復(fù)雜度4.4.2識(shí)別共同的子表達(dá)式4.4.3多層聚集4.4.4理解語(yǔ)句執(zhí)行的代價(jià)4.4.5充分利用底層引擎4.4.6減少依賴性4.4.7模擬SQL語(yǔ)句中的函數(shù)調(diào)用4.4.8避免混合使用計(jì)算引擎操作符和SQL查詢4.4.9避免使用游標(biāo)4.4.10避免使用動(dòng)態(tài)SQL4.4.11跟蹤和調(diào)試免責(zé)聲明本文檔為預(yù)覽版本,文檔中的內(nèi)容均不是來(lái)自SAPAG公司發(fā)布的任何關(guān)于SAP的產(chǎn)品,策略,或未來(lái)的發(fā)展的官方聲明。文檔中的信息可能是不完整或是不正確的。SAP公司不假設(shè),不保證,對(duì)本文檔為您的商業(yè)用途或利用它產(chǎn)生的任何
5、損失不承擔(dān)責(zé)任。本文檔應(yīng)當(dāng)在您已授權(quán)SAPHANA許可下使用,并受其條款指導(dǎo)您使用SAPHANA。SAPHANA數(shù)據(jù)庫(kù)開(kāi)發(fā)指南如何使用SQL和SQLScript數(shù)據(jù)建模1.簡(jiǎn)介1.1什么是SAPHANA?SAPHANA是由SAP帶給您的一項(xiàng)令人興奮的新技術(shù)。其核心利用了創(chuàng)新型的內(nèi)存技術(shù)來(lái)存儲(chǔ)數(shù)據(jù),特別適合處理數(shù)據(jù)量非常大的表格型或關(guān)系型的數(shù)據(jù),具有前所未有的性能。常見(jiàn)的數(shù)據(jù)庫(kù)以行方式存儲(chǔ)表格數(shù)據(jù),例如,描述一個(gè)地址的所有數(shù)據(jù)都存儲(chǔ)在內(nèi)存中相互毗鄰的位置。如果你的需求只是訪問(wèn)一個(gè)地址,程序會(huì)運(yùn)行的很快,因?yàn)樗械臄?shù)據(jù)是連續(xù)
6、存儲(chǔ)的。然而,試想這樣的場(chǎng)景,你的程序需要計(jì)算有多少已儲(chǔ)存的地址與特定的國(guó)家,城市或郵編對(duì)應(yīng)?這種情況下,就可能不得不掃描整張表,選出每一行,然后檢查國(guó)家或城市是否是需要的。由于所有的大容量存儲(chǔ)設(shè)備,例如硬盤,以一種與感興趣的數(shù)據(jù)相比很大的一整塊形式訪問(wèn)數(shù)據(jù),例如512字節(jié)的硬盤,很可能該設(shè)備讀取一至多行的數(shù)據(jù)只是為了查找?guī)讉€(gè)字符,比如“巴西”或是“舊金山”。業(yè)務(wù)數(shù)據(jù)表經(jīng)常含有很多偶爾使用的數(shù)據(jù)字段或列,例如和其他表相關(guān)聯(lián)的數(shù)據(jù),或者控制其他字段使用的數(shù)據(jù)字段。你能想象如果你的程序可以繞開(kāi)不必要的列而訪問(wèn)真正需要的信息所
7、帶來(lái)的效率提升嗎?如果使用這種數(shù)據(jù)存儲(chǔ)方式,你將會(huì)體驗(yàn)到數(shù)據(jù)庫(kù)或程序明顯更快的響應(yīng)。SAPHANA通過(guò)高效的列式存儲(chǔ)方式組織表來(lái)讓你繞開(kāi)讀取不需要的數(shù)據(jù)。除了常見(jiàn)的行式存儲(chǔ)架構(gòu)之外,同樣可以使用列式存儲(chǔ)。這意味著你的程序無(wú)須等待數(shù)據(jù)庫(kù)獲取不需要的數(shù)據(jù),因?yàn)榱惺奖碇械乃袛?shù)據(jù)都是以相鄰方式儲(chǔ)存。因此,在我們的地址表例子中,掃描列字段“國(guó)家”或“城市”比讀取行式存儲(chǔ)快很多。但是,如果你的數(shù)據(jù)庫(kù)系統(tǒng)已經(jīng)把所有數(shù)據(jù)緩存到內(nèi)存或是靠近處理器的快速讀取內(nèi)存中,列式內(nèi)存布局是否仍然可以加速訪問(wèn)?來(lái)自SAP和位于波茨坦市的哈索-普拉特納
8、研究所進(jìn)行的測(cè)量證明,當(dāng)訪問(wèn)每一行數(shù)據(jù)的子集時(shí),以列方式重新組織內(nèi)存中的數(shù)據(jù)可以帶來(lái)顯著的速度提升。由于SAPHANA把數(shù)據(jù)都緩存至內(nèi)存中,硬盤幾乎很少使用,只是為了數(shù)據(jù)持久化而對(duì)數(shù)據(jù)庫(kù)的改變進(jìn)行記錄。SAPHANA為了保持?jǐn)?shù)據(jù)庫(kù)盡可能小的變化,采用只對(duì)原始數(shù)據(jù)庫(kù)的增量變化記錄的方式。數(shù)據(jù)是增加或插入到一個(gè)表列而不是