Ⅰ GBase 8a MPP資料庫如何通過JDBC實現連接級的負載均衡
在使用JDBC實現連接GBase8aMPP資料庫時,由於GBase8aMPP資料庫是分布式資料庫,那麼在通過JDBC實現連接高可用的情況下,還希望能夠實現連接級別的負載均衡,需要如何實現呢?這就需要使用到GBase8aMPP資料庫JDBC驅動自帶的負載均衡功能。
如果我們希望把資料庫連接請求平均分布到各個節點的上話,我們可以使用JDBC 高可用負載均衡功能。
假設有如下場景,部署有一個GBase 集群,三個節點IP如下:
192.168.1.1;192.168.1.2;192.168.1.3;
String dbUrl =
「jdbc:gbase://192.168.1.1:5258/test?user=gbase&password=gbase20110531&failoverEnable=true&hostList=192.168.1.2,192.168.1.3&gclusterId=gcl1」;
failoverEnable:是否開啟高可用。
hostList:集群節點的IP列表,以逗號分隔,hostList中不需要包含url中的主IP。
gclusterId:不同的gclusterId會創建不同的列表,用於區分被連接的集群,要求必須以a-z任意字元開頭的可以包含a-z、0-9所有字元長度為最大為20的字元串。
高可用負載均衡功能是將url中的IP和hostList中的IP放入一個列表中,當應用獲取連接的時候,JDBC會從列表表中順序獲取IP創建連接,每個IP獲取一個連接,從而實現連接的負載均衡,同時,當列表中的IP不可連接時,JDBC會順序獲取列表中的下一個IP,獲取連接,如果無可用連接時,將拋出異常。也就是說高可用負載均衡功能既實現了連接負載均衡功能,也實現了高可用功能。
Ⅱ GBase 8c 資料庫怎麼修改表列的默認值和數據類型
支持分別修改列默認值和數據類型。要為某列設置一個新默認值,可以使用命令:
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT new_default;
修改數據類型,使用命令:
ALTER TABLE table_name ALTER COLUMN column_name TYPE new_type;
注意:這不會影響任何錶中已經存在的行。
Ⅲ ggbase怎麼用
ggbase用法如下,可以通過其數據系統進行數據分析,並且GgBase非常強大,8a是國內首個基於列存的新型分析型資料庫,8a Cluster是國內首個分布式並行資料庫集群,8t是國內首個與世界先進技術接軌的國產事務型通用資料庫系統,可以進行強大的計算力。GBase是南大通用數據技術有限公司推出的自主品牌的資料庫產品,在國內資料庫市場具有較高的品牌知名度。
使用ggbase的首先需要打開ROUTINES表因為該表提供了關於存儲子程序(存儲程序和函數)的信息,所以需要與之相對於,啟動電腦ggbase的運行。
此時ROUTINES表不包含自定義函數UDF名為mysql.proc name的列指明了對應INFORMATION_SCHEMA.ROUTINES表的mysql.proc表列,然後便能開始運行ggbase。
然後打開TABLES表提供了關於資料庫中的表的信息包括視圖詳細表述了某個表屬於哪個schema,表類型,表引擎,創建時間等信息,這是數據統計的關鍵軟體,同時也是數據分析的關鍵,同時是show tables from schemaname的結果取之此表。
Ⅳ GBase8s資料庫SQL語句性能緩慢從哪個方面入手分析
在實際的生產運行環境中,很多客戶現場都看到開發人員和系統管理人員遇到很多有關於GBase 8s 資料庫引起的性能問題,進而被多次問起如何進行GBase 8s 資料庫性能調優,
性能優化原則
包括:
性能規劃:深入了解應用與資料庫的交互特徵,確立良好的設計、開發、測試迭代過程,上線前消除模型上的性能瓶頸。
實例調優:建立性能基準,對比調節資料庫、操作系統、存儲、網路等的配置,主動監控、消除瓶頸。
SQL 調優:書寫高效 SQL,優化相關資料庫對象,充分藉助優化器,確定最佳執行計劃。
性能優化流程
首先執行下面的初始檢查:
– 獲取直接用戶的使用反饋,確定性能目標和范圍。
– 獲取性能表現好與壞時的操作系統、資料庫、應用統計信息。
– 對資料庫做一次全面健康檢查。
根據收集的信息,以及對應用特性的了解,構建性能概念模型,明確性能瓶頸所在,以及導致性能的根本原因。
– 首先應該排除操作系統、硬體資源造成的瓶頸。
– 然後針對資料庫系統性能進行分析
– 必要時,還需要檢查應用日誌,因為系統性能問題也可能由於應用非 SQL 部分造成瓶頸。
提出一系列針對的優化措施,並根據它們對性能改善的重要程度排序,然後逐一加以實施。不要一次執行所有的優化措施,必須逐條嘗試,逐步對比。
通過獲取直接用戶的反饋驗證調節是否已經產生預期的效果,否則,需要重新提煉性能概念模型,直到對應用特性了解進一步准確。
重復上述,直到性能達到目標或由於客觀約束無法進一步優化。
常見調優技巧
找到 CPU 佔用最高的 SQL
在 sysmaster 庫中執行
select sqx_estcost, sqx_sqlstatement
from syssqexplain
order by sqx_estcost desc
1
2
3
注意:此時看到的僅僅是當前正在執行的 SQL
需要多看幾次
onstat 命令
onstat -g act 得到當前正在執行的 SQL
根據 rstcb 列
onstat -u | grep 57c68220
1
從第三列 sessid 得到 SESSION
onstat -g ses SESSION 即可得到當時正在執行的 SQL
一般多找幾個 threads 後,就基本可以確定問題 SQL
得到 SQL 後,利用 set explain on 分析其查詢路徑,看是否未利用索引,在對大表進行全表掃描,根據需要創建相應索引。
找到全表掃描較多的表及其 SQL
得到全表掃描較多的表
-- 系統順序掃描較多時,被多次順序掃描的大表,如果有,應該考慮增加索引
select first 5
substr(t.tabname,0,20) tabname,
substr(dbsname,0,10) dbname,
nrows*rowsize*p.seqscans costs,
substr(p.seqscans,0,8) seqscans,
substr(nrows,0,8) nrows
from sysmaster:sysptprof p , systables t,sysmaster:sysprofile s
where p.tabname = t.tabname
and p.seqscans > s.value/50
and s.name = 'seqscans'
--and s.value > 2000000 and nrows > 2000
order by 3 desc
1
2
3
4
5
6
7
8
9
10
11
12
13
利用 onstat –g ses 0 –r 5/ onstat –g stm 的輸出信息,根據表名,找到可能的 SQL 語句。由於以上獲取 SQL 的辦法是有局限的,如果無法獲取,建議通過查看應用日誌或聯系開發人員查看源代碼的方式來找到。
利用 set explain on 分析其查詢路徑,確認是在對表進行全表掃描,根據需要創建相應索引。