DM8新特性及初次體驗
DM8快要釋出了,最近拿到了DM8的新特性白皮書和最新測試版,下面開始我們的DM8之旅吧。
DM8十大新特性:
1. 共享儲存叢集DSC增強
最多可以支援8個節點的共享儲存叢集,支援共享儲存叢集+資料守護,進一步提高系統可用性,提供可替代Oracle的兩地三中心解決方案。
2. 提供分散式檔案系統DDFS
DDFS(DM Distributed File System)是可供DM資料庫伺服器使用的底層分散式檔案系統,DDFS支援多副本資料冗餘容災,採用中心化副本控制協議(primary-secondary協議)和Quorum機制對副本進行管理,可快速進行主副本間的切換,能夠有效地處理系統中的各種故障和異常情況。
3. 支援分散式彈性計算叢集
當單個達夢資料庫系統在SQL執行過程中發現當前操作需要大量的記憶體和CPU資源,且當前區域網上有可利用的空閒DM資料庫計算資源時,就可以把當前的SQL操作拆分成多個任務和相應的資料分發到這些可以利用的達夢資料庫,並回收計算結果加以整合,從而實現複雜SQL的彈性計算。
4. 查詢最佳化器增強
支援多維統計資訊,當查詢中涉及的多個列互相併不獨立時,允許使用者指定針對多個列收集和計算統計資訊,可提升多列過濾、多列連線場景下的代價計算精準度,生成更優的執行計劃;相關子查詢、外連線等查詢最佳化引數根據應用場景自動調整,減少人工干預;複雜表示式的最佳化;語句塊中的SQL獨立HINT支援等。
5. AWR報表工具增強
DM8對AWR報表工具的內部構造策略進行了改造,大幅提升了AWR報表的生成效率。同時相對於DM7的AWR報表工具增加了多個統計表單,實現了對系統執行情況更加細緻的展現。
6. 安全功能增強
進一步增強強制訪問控制、儲存加密、資源限制、實時審計等安全功能。
7. JDBC介面增強
對JDBC介面進行了重新設計實現,資源開銷更小,效能更高。
8. 高階功能擴充套件
擴充套件了對多級分割槽表的功能支援,新增對分割槽交換、分割槽重新命名、修改LIST分割槽範圍值、增加約束功能的支援;物化檢視支援ON COMMIT快速重新整理方式,支援巢狀物化檢視,提升了複雜物化檢視的重新整理效能;支援遞迴CTE表示式。
9. 管理工具改進
管理工具提供了全新的SQL助手提供SQL語法檢查和SQL輸入助手功能;SQL語法檢查功能對使用者輸入的SQL語句進行實時的語法檢查,定位錯誤的SQL語法。SQL輸入助手能夠對使用者輸入SQL進行實時的智慧提示。
10. 達夢資料庫管理服務平臺
提供了全新的基於Web開發的資料庫管理服務平臺(DEM), DEM不僅包含了桌面工具系統管理工具(Manager),資料遷移工具(DTS),效能監視工具(Monitor)的功能,還提供了叢集部署(Deploy)功能、監控功能和告警功能。使用者透過叢集部署功能可快速和簡單地在多臺主機上部署MPP叢集、DMDSC叢集和資料守護叢集。
DM8初步體驗:
DM8的安裝步驟與DM7保持了相同的操作體驗,而全新設計的圖示給我帶來了一些驚喜,給人煥然一新的感覺,有圖有真相:
共享儲存叢集、分散式檔案系統、彈性計算等高階特性環境有限,這次就不給大家分享了,下面給大家分享一些我在初次安裝使用中發現的細節性改進吧:
DM7的管理工具語法檢查依賴於伺服器,DM8這塊做了重大改進,不依賴於伺服器即可進行語法檢查。SQL輸入助手方面DM7也不是很精確,有時會有一些卡頓的情況出現,非常期待DM8的表現。
--開啟DM8管理工具,構造兩條有語法錯誤的SQL語句,看看效果。
--斷開連線,新建一個視窗,構造兩條有語法錯誤的SQL語句,離線的情況下看看效果。
--測試一下SQL助手輔助輸入的情況
DM8的SQL助手2.0果然很強大,可以提供離線的語法檢查,SQL輸入輔助功能自然流暢,幾可與sqldeveloper工具媲美。
DM8還有一個我非常期待的功能,我們在最佳化儲存過程效能的時候會碰到一個非常頭疼的問題:無法有效的確定儲存過程中某條SQL的執行計劃。DM8在儲存過程除錯功能中增加了檢視SQL執行計劃的功能,這是一大創新,下面我們來體驗一下吧。
--建立一個儲存過程,看看DM8支援多少動態檢視
create or REPLACE PROCEDURE p_explain() as cnt INT; begin cnt=0; select COUNT(*) INTO cnt from SYSOBJECTS where SYSOBJECTS.NAME LIKE 'V$%'; print cnt; end; |
--除錯儲存過程,檢視select語句的執行計劃
--噹噹噹當,期待已久的功能終於實現了!
下面我們再來看看遞迴WITH吧,ITPUB上newkid等大神最喜歡用遞迴WITH來解複雜的SQL題目了,以後也可以在DM8上執行了。
--先來個簡單的
with T(code,name,parentCode,level) as ( select '01' as Code,'武漢市' Name,'0' parentCode,1 level from dual union all select '02' as Code,'北京市' Name,'0' parentCode,1 level from dual union all select '0101' ,'洪山區','01',2 from dual union all select '010101' ,'街道口','0101',3 from dual union all select '010102' ,'關山','0101',3 from dual union all select '0102' ,'武昌區','01',2 from dual union all select '0103' ,'江夏區','01',2 from dual union all select '0201' ,'海淀區','02',2 from dual union all select '020101' ,'魏公村','0201',3 from dual union all select '020102' ,'中關村','0201',3 from dual union all select '0202' ,'東城區','02',2 from dual ) ,A(code,name,parentCode,level) as( select Code,Name,parentCode,level from T where Code='01' union all select T.Code,T.Name,T.parentCode,t.level from T inner join A on T.parentCode=A.Code ) --遞迴查詢武漢資料 select * from A ; |
--再來一個newkid大神寫的質因子分解的SQL
WITH t(c,n,m,r) AS ( SELECT 1,2,720,1 FROM DUAL UNION ALL SELECT c+1 ,CASE WHEN MOD(m,n)>0 THEN n+1 ELSE n END ,CASE WHEN MOD(m,n)>0 THEN m ELSE m/n END ,MOD(m,n) FROM t WHERE c<720 AND m>1 ) SELECT n FROM t WHERE r=0; |
篇幅有限,今天就分享這麼多了,下次有空再繼續深入!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31545814/viewspace-2565131/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 初次體驗 MeiliSearch
- Cypress系列(3)- Cypress 的初次體驗
- 7月新特性 | 軟體開發生產線CodeArts釋出多項新特性等你體驗!
- OceanBase學習之路11|體驗 DDL 新特性(Oracle 模式)Oracle模式
- OceanBase學習之路12|體驗 DDL 新特性(MySQL 模式)MySql模式
- .NET 9 最佳化,搶先體驗 C# 13 新特性C#
- Ubuntu20.10初次安裝後無法更新軟體及VimUbuntu
- Kotlin的特點及各版本新特性Kotlin
- Android Q 新特性及變更記錄Android
- Android12 新特性及適配指南Android
- Android R 新特性分析及適配指南Android
- MYSQL安裝教程及sqlyog初次使用MySql
- 微服務新體驗之Aspire初體驗微服務
- Python全棧實戰系列之一:網路爬蟲的初次體驗Python全棧爬蟲
- 【Java】jdk1.8新特性及用法總結JavaJDK
- 【DATAGUARD】Oracle19c dataguard新特性及部署Oracle
- Hadoop 3.0 新特性原理及架構深度剖析Hadoop架構
- Xcode 10.1 新特性及解決的問題XCode
- MySQL 8.0表空間新特性簡單實驗MySql
- 【新特性速遞】FineUIPro/Mvc/Core 全新移動端訪問體驗(示例首頁)!UIMVC
- 新特性
- Oracle 23C Free下載安裝及新特性Oracle
- Java高階特性1_流庫_初體驗Java
- OceanBase學習之路13|體驗多租戶特性
- React 新特性React
- 新特性介面
- Hadoop新特性Hadoop
- 初次端內開發及node壓測優化優化
- 阿里雲初次備案全流程及注意事項阿里
- 谷歌的Android Q到底有哪些新特性及變更?谷歌Android
- SpringBoot初體驗及原理解析Spring Boot
- Promise特性及用法Promise
- 【譯】新的 MSBuild 編輯體驗UI
- Nocalhost:雲原生開發新體驗
- Java 11新特性Java
- Java 8 新特性Java
- Android 9.0新特性Android
- ES 2024 新特性