主頁 > 資料庫 > 達夢體系結構與運維管理

達夢體系結構與運維管理

2021-04-02 06:39:37 資料庫

一、啟動/關閉資料庫

(一)啟動資料庫

1、命令列方式

cd /dm8/dmdbms/bin
./dmserver [ini_file_path] [-noconsole] [mount]
說明:
(1)Dmserver命令列啟動引數可指定dm.ini檔案的路徑,非控制臺方式啟動及指定資料庫是否以MOUNT狀態啟動,
(2)Dmserver啟動時可不指定任何引數,默認使用當前目錄下的dm.ini檔案,如果當前目錄不存在dm.ini檔案,則無法啟動
(3)Dmserver 啟動時可以指定-noconsole 引數,如果以此方式啟動,則無法通過在控制臺中輸入服務器命令,當以控制臺方式啟動dmserver時,用戶可以在控制臺輸入一些命令,
當不確定啟動引數的使用方法時,可以使用 help 引數,將列印出格式、引數說明和使用示例,使用方法如下:
[dmdba@dmtest ~]$ /dm8/dmdbms/bin/dmserver help
格式: ./dmserver [ini_file_path] [-noconsole] [mount] [path=ini_file_path] [dcr_ini=dcr_path]

實體:
./dmserver path=/opt/dmdbms/bin/dm.ini
./dmserver /opt/dmdbms/bin/dm.ini

關鍵字 說明
--------------------------------------------------------------------------------
path dm.ini絕對路徑或者dmserver當前目錄的dm.ini
dcr_ini 如果使用css集群環境,指定dmdcr.ini檔案路徑
-noconsole 以服務方式啟動
mount 配置方式啟動
help 列印幫助資訊

生產庫實體:/dm8/dmdbms/bin/dmserver /dm8/dmdata/DMOA/dm.ini -noconsole

2、服務的方式

systemctl start DmServiceDMOASERVER.service
systemctl status DmServiceDMOASERVER.service

[root@dmtest ~]# systemctl list-unit-files|grep Dm*
DmAPService.service enabled
DmServiceDMOASERVER.service enabled

說明:
無論是在何種作業系統下運行,DM資料庫在啟動時都會進行LICENSE檢查,若LICENSE過期或KEY檔案與實際運行環境不配套,DM服務器會強制退出,

(二)關閉資料庫

1、命令列模式

在啟動資料庫的命令工具中輸入exit,然后回車,退出DM資料庫

2、服務的方式

systemctl stop DmServiceDMOASERVER.service

二、表空間

DM8創建資料庫時,系統會自動創建5個表空間:SYSTEM、ROLL、MAIN、TEMP、HMAIN,
(1)SYSTEM 存放全域資料字典資訊和全域系統資料,
(2)ROLL 存放回滾記錄,
(3)MAIN 存放臨時資料,
(4)TEMP 用戶默認表空間,
(5)HMAIN HUGE表空間,存放列式存盤資料,

(一)創建表空間

創建名為bookshop的表空間,并指定該空間上擁有2個資料檔案,每個資料檔案的大小為128M:
create tablespace bookshop datafile 'd:\bookshop1.dbf' size 128,'d:\bookshop2.dbf' size 128;
創建表空間時指定資料檔案初始代銷為128M,擴展屬性為可自動擴展,每次擴展大小為100m,最大可擴展到200M:
create tablespace test datafile '/dm8/dmdata/DMOA/test.dbf' size 128 autoextend on next 100 maxsize 200;

說明:
添加的資料檔案大小最小為4096*頁大小,如頁大小為32K,則可添加的檔案最小值為4096*32k=128M,

(二)洗掉表空間

只可以洗掉用戶創建的表空間并且只能洗掉未使用過的表空間,洗掉表空間時會洗掉其擁有的所有資料檔案,
例如洗掉bookshop表空間:
drop tablespace bookshop;

(三)修改表空間名

可修改已存在的由用戶創建的表空間的名稱,
比如可修改bookshop表空間名為books:
alter tablespace bookshop rename to books;

(四)擴展表表空間

在bookshop表空間中添加大小為64M的資料檔案:
alter tablespace bookshop add datafile 'd:\book.dbf' size 64;
擴展bookshop表空間中資料檔案book.dbf大小至128M:
alter tablespace bookshop resize datafile 'd:\book.dbf' to 128;

三、賬戶

(一)賬戶創建

創建用戶TEST_USER時指定該用戶使用的最大磁盤空間為50M
create user test_user identified by test_password diskspace limit 50;
對用戶的空間限制也可進行更改,如修改用戶TEST_USER的磁盤空間限制為無限制:
alter user test_user diskspace unlimited;

(二)表創建

創建表TEST時指定該表物件可使用的最大磁盤空間為500M
create table test(sno int,myinfo varchar) diskspace limit 500;
對表物件空間的限制也可進行更改,如修改表TEST的磁盤空間限制為50M:
alter table test modify diskspace limit 50;

四、重做日志檔案

(一)添加重做日志檔案

在服務器打開狀態下,可以添加新的重做日志檔案,添加的資料檔案大小最小為4096*頁大小,如頁大小為32K,則可添加的檔案最小值為4096*32k=128M,
示例如下:
alter database add logfile 'd:\dameng03.log' size 128;

(二)擴展重做日志檔案

在服務器打開狀態下,可以擴展已有的重做日志檔案的大小,
alter database resize logfile 'd:\dameng03.log' to 256;

五、回滾表空間

回滾空間的空間名固定為ROLL,不可修改,

(一)擴展回滾表空間

回滾空間的其他管理和用戶表空間的管理基本是一樣的,可增加和擴展回滾空間中的回滾檔案,設定回滾空間的擴展屬性,

(二)修改回滾表空間路徑

回滾檔案的路徑記錄在控制檔案里面,可以使用dmctlcvt工具在DM服務器關閉的狀態下對控制檔案進行修改,使用dmctlcvt工具將控制檔案轉換為文本檔案,編輯文本檔案
中要修改的檔案的路徑后再使用dmctlcvt工具將文本檔案轉換為控制檔案即可,
示例如下:回滾表空間路徑從d盤移動到e盤
(1)首先轉換控制檔案到文本檔案
dmctlcvt c2t D:\dm.ctl D:\ctl.txt
(2)編輯ctl.txt文本檔案
將檔案中的fil_path=d:\roll.dbf改為新路徑fil_path=e:\roll.dbf,保存文本檔案,
(3)復制d:\roll.dbf檔案為e:\roll.dbf
(4)最后轉換文本檔案到控制檔案
dmctlcvt t2c D:\ctl.txt D:\dm.ctl
這種修改檔案路徑的方法也可用于重做日志檔案,系統表空間檔案等路徑的修改

六、常用操作

(一)會話

1、連接會話概況

select*from v$connect;
說明:IP_ADDR為“::1”且TYPE$為“SQL3”,表示會話是在達蒙服務器通過bing/disql直連的

2、連接會話詳細資訊

如:執行的sql陳述句、主庫名、當前會話狀態、用戶名等等
---會話id可以通過“select sessid ();”獲取
select *from v$sessions where state='ACTIVE';
select *from v$sessions where user_name='OA' and clnt_host='dmtest' and appname='disql' and clnt_ip='::1' and sess_id=281223325068824;
select sess_seq,state,substr(sql_text,0,10)sql_text,user_name,create_time,clnt_host,appname,clnt_ip,osname,last_send_time,trx_id from v$sessions;

3、殺掉會話

sp_close_session(281224128100360);
說明:281224128100360是v$sessions中的sess_id

(二)SQL

1、通過會話id查詢SQL執行文本
select sf_get_session_sql(281223325068824)from dual;
2、通過sql文本查詢sql_id和hash_value
select*from v$sqltext where sql_text like '%select wftnode0_.NODEID as NODEID40_0_%';
3、通過sql_id或hash_value查詢執行計劃
select*from v$sql_plan where sql_id=16919;
4、通過sql_id查詢sql歷史執行資訊
select*from v$sql_history where sql_id=16919;
5、查詢執行時長超過2秒的活動SQL陳述句
select sess_id,sql_text,sf_get_session_sql(sess_id)fullsql,last_recv_time,datediff(ss,last_recv_time,sysdate)y_exectime,clnt_ip from v$sessions where state='ACTIVE';
6、顯示系統最近1000條執行時間超過預定值的SQL陳述句
select*from v$long_exec_sqls where to_char(finish_time,'yyyymmdd')='20210219' order by finish_time desc;

(三)事務和鎖

select*from v$trx
select*from v$lock;
select o.name,l.* from v$lock l,sysobjects o where l.table_id=o.id and l.blocked=1;

(四)資料庫物件資訊

1、所有賬戶

select username,user_id,account_status,default_tablespace,temporary_tablespace,created,profile from dba_users;
select o.name,u.id,o.crtdate,o.valid,u.locked_status,last_login_dtid from sysusers u,sysobjects o where u.id=o.id and o.type$='UR' and o.subtype$='USER';

2、指定賬戶下所有物件

select*from sysobjects where schid in(select id from sysobjects where type$='SCH' and name='OA');
sysobjects欄位說明:
schid:TYPE$=SCHOBJ或者TYPE$=TABOBJ時表示物件所屬的模式 ID,否則為 0,
type$:物件的主型別
1) 庫級:UR(用戶), SCH(模式), POLICY,GDBLINK, GSYNOM,DSYNOM,DIR,OPV,SPV,RULE,DMNOBJ;
2) 模式級:SCHOBJ;
3) 表級:TABOBJ
subtype$:物件的子型別,分為三種:
1) 用戶物件:USER, ROLE;
2) 模式物件:UTAB,STAB,VIEW,PROC,SEQ,PKG,TRIG, DBLINK,SYNOM, CLASS,TYPE,JCLASS,DOMAIN,CHARSET,CLLT,CONTEXT;
3) 表物件:INDEX,CNTIND,CONS

(五)表空間

1、單獨查詢資料檔案

select t.name ts_name,
decode(d.auto_extend,1,'自動擴展',0,'非自動擴展')auto_extend,
d.next_size,
t.id ts_id,
d.id file_id,
d.path file_name,
d.create_time,
d.modify_time,
d.status$,
d.total_size * sf_get_page_size() / 1024 / 1024||'M' "Size(MB)",
d.free_size * sf_get_page_size() / 1024 / 1024||'M' "Free(MB)",
(d.total_size-d.free_size) * 100 / d.total_size||'%' "Used(%)"
from v$tablespace t, v$datafile d
where t.id = d.group_id order by t.id,d.id;

2、匯總資料檔案

select name,
sum(total_size) * sf_get_page_size() / 1024 / 1024 || 'M' "Size(MB)",
sum(free_size) * sf_get_page_size() / 1024 / 1024 || 'M' "Free(MB)",
(sum(total_size)-sum(free_size)) * 100 / sum(total_size) || '%' "Used(%)"
from (select t.name, d.total_size, d.free_size
from v$tablespace t, v$datafile d
where t.id = d.group_id)
group by name;

(六)資料庫及引數配置

資料庫資訊:
select*from v$database;
實體資訊:
select*from v$instance;
所有初始化引數:
select*from v$dm_ini;
控制檔案:
select*from v$dm_ini where para_name='CTL_PATH';
歸檔配置:
select*from v$dm_arch_ini;
日志檔案:
select*from v$rlogfile;

(七)查看/調整資料庫引數配置

1、通過視圖查看

select*from v$dm_ini where para_name='SVR_LOG';
此引數表示是否打開SQL日志功能,0:表示關閉;1:表示打開;2:按檔案中記錄數量切換日志檔案,日志記錄為詳細模式;3:不切換日志檔案,日志記錄為簡單模式,只記錄時間和原始陳述句

2、通過函式查看/修改

可以在dm資料庫運行程序中執行sf_get_para_value、sf_get_para_double_value和sf_get_para_string_value這三個函式來獲取系統的當前配置引數,并且可以使用sp_set_para_value 和 sp_set_para_double_value 程序來修改靜態/動態配置引數,
SQL> select sf_get_para_value(1,'svr_log') from sysdual;

行號 SF_GET_PARA_VALUE(1,'svr_log')
---------- ------------------------------
1 1
SQL> SELECT sf_get_sys_priv(8197) FROM sysdual;

行號 SF_GET_SYS_PRIV(8197)
---------- ---------------------
1 EXECUTE

示例如下:
sf_get_para_value(scope int, paraname varchar(256))
配置引數的值型別為數值型別時使用該函式來獲取當前值,scope 引數為1表示獲取ini檔案中配置引數的值,為2表示獲取記憶體中配置引數的值,
sf_get_para_double_value(scope int, paraname varchar(8187))
配置引數的值型別為浮點型時使用該函式來獲取當前值,scope 引數為1 表示獲取ini檔案中配置引數的值,為 2 表示獲取記憶體中配置引數的值,
sf_get_para_string_value (scope int, paraname varchar(8187))
配置引數的值為字串型別時用該系統函式來獲取當前值,scope 引數為 1 表示獲取ini 檔案中配置引數的值,為 2 表示獲取記憶體中配置引數的值,

sp_set_para_value (scope int, paraname varchar(256), value int64)
該程序用于修改整型靜態配置引數和動態配置引數,scope 引數為1 表示在記憶體和ini檔案中都修改引數值,此時只能修改動態的配置引數,引數為 2 表示只在 ini 檔案中修改配置引數,此時可用來修改靜態配置引數和動態配置引數,當 scope 等于 1,試圖修改靜態配置引數時服務器會回傳錯誤資訊,只有具有 dba 角色的用戶才有權限呼叫 sp_set_para_value,
sp_set_para_double_value (scope int, paraname varchar(8187),alue double)
該程序用于修改浮點型靜態配置引數和動態配置引數,scope 引數為 1 表示在記憶體和ini 檔案中都修改引數值,此時只能修改動態的配置引數,引數為 2 表示只在 ini 檔案中修改配置引數,此時可用來修改靜態配置引數和動態配置引數,當 scope 等于 1,試圖修改靜態配置引數時服務器會回傳錯誤資訊,只有具有 dba 角色的用戶才有權限呼叫sp_set_para_double_value,
sf_set_system_para_value (paraname varchar(256), value int64\double\varchar(256), deferred int, scope int64)
該程序用于修改系統整型、double、varchar 的靜態配置引數或動態配置引數,deferred 引數,為 0 表示當前 session 修改的引數立即生效,為 1 表示當前 session不生效,后續再生效,默認為 0,scope 引數為 1 表示在記憶體和 ini 檔案中都修改引數值,此時只能修改動態的配置引數,引數為 2 表示只在 ini 檔案中修改配置引數,此時可用來修 改 靜 態 配 置 參 數 和 動 態 配 置 參 數 , 只 有 具 有 dba 角 色 的 用 戶 才 有 權 限 調 用sf_set_system_para_value,

dm 的動態 ini 引數分為系統級和會話級兩種級別,會話級引數在服務器運行程序中被修改時,之前創建的會話不受影響,只有新創建的會話使用新的引數值,
1. sf_set_session_para_value (paraname varchar(8187), value bigint)
設定某個會話級 ini 引數的值,設定的引數值只對本會話有效,
2. sp_reset_session_para_value (paraname varchar(8187))
重置某個會話級 ini 引數的值,使得這個 ini 引數的值和系統 ini 引數的值保持一致,
3. sf_get_session_para_value (paraname varchar(8187))
獲得當前會話的某個會話級 ini 引數的值,需要注意的是,在對引數進行調整前,dba 應該深刻理解配置引數中每個引數的含義和對系統的影響,避免由于錯誤的調整導致影響整個系統對外提供正常服務,對于一些關鍵業務,在實際調整前,建議在測驗系統上先進行試驗,驗證通過后再在生產系統上進行調整,

(八)資料庫歸檔配置

1、開啟歸檔

alter database add archivelog 'type=local,dest=/dm8/dmarch,file_size=512,space_limit=0';
引數說明:
file_size 單個redo日志歸檔檔案大小,取值范圍65MB-2048MB,默認是1024MB,

2、查看是否開啟歸檔

SQL> select name,status$,role$,arch_mode from v$database;

行號 NAME STATUS$ ROLE$ ARCH_MODE
---------- ---- ----------- ----------- ---------
1 DMOA 4 0 Y

3、查看歸檔配置

SQL> select*from v$dm_arch_ini;

行號 ARCH_NAME ARCH_TYPE ARCH_DEST ARCH_FILE_SIZE ARCH_SPACE_LIMIT ARCH_HANG_FLAG ARCH_TIMER_NAME ARCH_IS_VALID ARCH_WAIT_APPLY ARCH_INCOMING_PATH ARCH_CURR_DEST
---------- -------------- --------- ----------- -------------- ---------------- -------------- --------------- ------------- --------------- ------------------ --------------
1 ARCHIVE_LOCAL1 LOCAL /dm8/dmarch 512 51200 1 NULL Y NULL NULL /dm8/dmarch

七、常用函式

(一)執行檢查點

select checkpoint(rate int);
說明:rate表示刷臟頁百分比,取值范圍1-100或0,如果為0表示所有臟頁都重繪到磁盤,如果是30表示30%的臟頁重繪到磁盤,

(二)INI引數管理

1、獲得dm.ini檔案中BUFFER引數值
select sf_get_para_value(1,'buffer');
2、將dm.ini檔案中HFS_CACHE_SIZE引數值設定為320
sp_set_para_value (1,'hfs_cache_size',320);
也可以統一使用如下函式修改系統整型、double、varchar 的靜態配置引數或動態配置引數:
sf_set_system_para_value ('join_hash_size',50,1,1);
3、設定會話級ini引數join_hash_size的值為2000
sf_set_session_para_value('join_hash_size',2000);
4、重置會話級ini引數join_hash_size的值
sp_reset_session_para_value('join_hash_size')
5、獲取會話級ini引數join_hash_size的值:
select sf_get_session_para_value('join_hash_size');
6、設定服務器日志相關INI引數
select sf_set_sql_log(1, '3:5:7');

(三)殺掉會話

說明:281224128100360是v$sessions中的sess_id
sp_close_session(281224128100360);
終止 id 為 310509680 的會話的操作
call sp_cancel_session_operation (310509680);

(四)查詢資料庫基礎資訊

1、獲得系統建庫時指定的簇大小
select sf_get_extent_size ();
2、獲得系統建庫時指定的頁大小
select sf_get_page_size ();
3、獲得系統建庫時指定字符集
select sf_get_unicode_flag ();
4、獲取資料庫唯一標志 sguid
select sf_get_sguid();
5、獲取一個唯一編碼串,
select guid();
6、回傳當前連接 id
select sessid ();
7、回傳當前用戶 id
select uid();
8、回傳當前用戶名
select user();
9、獲取資料庫名
select cur_database();
10、獲取系統當前時鐘記數
select cur_tick_time();

(五)重組表空間空閑簇

call sp_reclaim_ts_free_extents('system');

(六)清空執行快取資訊

call sp_clear_plan_cache();

(七)執行計劃

設定計劃 id 為 473546872 的計劃結果集快取生效,
call sp_set_pln_rs_cache(473546872, 1);

清空 id 為 473546872 的執行快取資訊
call sp_clear_plan_cache(473546872);

(八)用戶對表或列的權限

獲得用戶 sysdba 對表 sys.sysobjects 的查詢權限
select sf_check_user_table_priv ('sys', 'sysobjects', 'sysdba', 0);
獲得用戶 sysdba 對表 sys.sysobjects 的 id 列的查詢權限
select sf_check_user_table_col_priv ('sys', 'sysobjects', 'id' ,'sysdba', 0);
說明:0=select, 1=insert, 2=delete, 3=update,4=reference

(九)監控執行時間超過5秒的陳述句

監控結果存放在v$log_exec_sqls_time
call sp_set_long_time(5000);
查看 v$long_exec_sqls 監控的最短執行時間,
select sf_get_long_time();

(十)回傳指定會話上最近處理的完整的陳述句

select sf_get_session_sql(96710784);

(十一)備份恢復管理

1、添加備份目錄
SELECT SF_BAKSET_BACKUP_DIR_ADD('DISK','/home/dm_bak');
2、洗掉備份目錄
SELECT SF_BAKSET_BACKUP_DIR_REMOVE('DISK','/home/dm_bak');
3、清理全部備份目錄
SELECT SF_BAKSET_BACKUP_DIR_REMOVE_ALL();
4、洗掉指定備份集
SELECT SF_BAKSET_REMOVE('DISK','/home/dm_bak/db_bak_for_remove',1);
5、批量洗掉滿足指定條件的所有備份集,
SELECT SF_BAKSET_REMOVE_BATCH ('DISK', now(), NULL, NULL);
6、批量洗掉指定時間之前的資料庫備份集
CALL SP_DB_BAKSET_REMOVE_BATCH('DISK', NOW());
7、批量洗掉指定表空間物件及指定時間之前的表空間備份集
CALL SP_TS_BAKSET_REMOVE_BATCH('DISK',NOW(),'MAIN');
8、批量洗掉指定表物件及指定時間之前的表備份集
CALL SP_TAB_BAKSET_REMOVE_BATCH('DISK',NOW(),'SYSDBA','TAB_FOR_BATCH_DEL');
9、批量洗掉指定時間之前的歸檔備份集
CALL SP_ARCH_BAKSET_REMOVE_BATCH('DISK', NOW());

(十二)物件相關資訊管理

1、回傳表/視圖定義
CALL SP_TABLEDEF('PRODUCTION','PRODUCT');
CALL SP_VIEWDEF('PURCHASING','VENDOR_EXCELLENT');
2、獲取check約束/unique約束/索引/同義詞/序列
通過查詢系統表,得到約束 ID 為 134217770,查詢check約束定義:
SELECT A.name, A.ID FROM SYSOBJECTS A, SYSOBJECTS B WHERE B.NAME='TEST_CHECKDEF' AND A.PID=B.ID AND A.SUBTYPE$='CONS';
SELECT CHECKDEF(134217770,1);
通過查詢系統表,系統生成 C2 上的 INDEX 為 33555481,查詢unique約束定義:
SELECT C.INDEXID FROM SYSOBJECTS O,SYSCONS C WHERE O.NAME='CONS1' AND O.ID=C.ID;
SELECT CONSDEF(33555481,1);
查詢系統表得到索引 ID,獲取index的創建定義:
SELECT NAME, ID FROM SYSOBJECTS WHERE NAME='PRODUCT_IND' AND SUBTYPE$='INDEX';
SELECT indexdef(33555530,1);
獲取同義詞定義:
SELECT SYNONYMDEF('SYSDBA', 'SYSOBJECTS',0,1);
獲取序列定義:
SELECT ID FROM SYSOBJECTS WHERE NAME='SEQ1'; --查出 id 為 167772160
SELECT SEQDEF(167772160, 1);
3、對指定索引進行空間整理
CALL SP_REORGANIZE_INDEX('PRODUCTION','PRODUCT_IND');
4、重建索引
SP_REBUILD_INDEX('SYSDBA', 33555530);
5、獲取自增列當前值
SELECT IDENT_CURRENT('PRODUCTION.PRODUCT');

(十三)日志管理

1、洗掉三天之前的歸檔日志
SELECT SF_ARCHIVELOG_DELETE_BEFORE_TIME(SYSDATE - 3);
2、洗掉 LSN 值小于 95560 的歸檔日志檔案,
SELECT SF_ARCHIVELOG_DELETE_BEFORE_LSN(95560)

(十四)統計資訊

1、對 SYSOBJECTS 表上所有的索引生成統計資訊
CALL SP_TAB_INDEX_STAT_INIT ('SYS', 'SYSOBJECTS');
2、對庫上所有模式下的所有用戶表以及表上的所有索引生成統計資訊
CALL SP_DB_STAT_INIT ();
3、對指定的索引 IND 生成統計資訊
CALL SP_INDEX_STAT_INIT ('SYSDBA', 'IND');
4、對表 SYSOBJECTS 的 ID 列生成統計資訊
CALL SP_COL_STAT_INIT ('SYS', 'SYSOBJECTS', 'ID');
5、對'SYSOBJECTS'表上所有的列生成統計資訊
CALL SP_TAB_COL_STAT_INIT ('SYS', 'SYSOBJECTS');
6、對'SYSOBJECTS'表上所有的列生成統計資訊,采樣率 90
CALL SP_STAT_ON_TABLE_COLS ('SYS','SYSOBJECTS',90);
7、對表 SYSOBECTS 生成統計資訊
CALL SP_TAB_STAT_INIT ('SYS', 'SYSOBJECTS');
8、對'SELECT * FROM SYSOBJECTS'陳述句涉及的所有表生成統計資訊
CALL SP_SQL_STAT_INIT ('SELECT * FROM SYSOBJECTS');
9、清空索引 IND 的統計資訊
CALL SP_INDEX_STAT_DEINIT ('SYSDBA', 'IND');
10、洗掉 SYSOBJECTS 的 ID 列的統計資訊
CALL SP_COL_STAT_DEINIT ('SYS', 'SYSOBJECTS', 'ID');
11、洗掉 SYSOBJECTS 表上所有列的統計資訊
CALL SP_TAB_COL_STAT_DEINIT ('SYS', 'SYSOBJECTS');
12、洗掉表 SYSOBECTS 的統計資訊
CALL SP_TAB_STAT_DEINIT ('SYS', 'SYSOBJECTS');
13、統計指定執行ID的所有運算子的執行時間
需設定INI引數ENABLE_MONITOR=1、MONITOR_TIME=1 和 MONITOR_SQL_EXEC=1,
select count(*) from sysobjects where name='SYSDBA';
已用時間: 14.641(毫秒). 執行號:26. 可以得到執行號為 26,
et(26);

(十五)資源監控

1、監測當前系統的記憶體空間是否低于閥值
CALL SP_CHECK_IDLE_MEM ();
2、監測 d:\data 路徑下的磁盤空間是否低于閥值
CALL SP_CHECK_IDLE_DISK ('d:\data');
說明:對 指 定 位 置 的 磁 盤 空 間 進 行 檢 測 , 并 在 低 于 閾 值 ( 對 應 INI 參 數IDLE_DISK_THRESHOLD)的情況下列印報警記錄到日志,同時報磁盤空間不足的例外,
3、查看 DM 服務器對用戶命令的平均回應時間
在 dm.ini 中 ENABLE_MONITOR 取值不小于 2 的前提下執行,單位秒
SELECT SYS.SF_GET_CMD_RESPONSE_TIME();
4、查看事務的平均回應時間
在 dm.ini 中 ENABLE_MONITOR 取值不為 0 的前提下執行,單位秒
SELECT SYS.SF_GET_TRX_RESPONSE_TIME();
5、查看資料庫中用戶態時間占總處理時間的比值
在 dm.ini 中 ENABLE_MONITOR 取值不小于 2 的前提下執行,用戶態時時間占總處理時間的比值,該比值越大表明用于 IO、事務等待等耗費的時間越少
SELECT SYS.SF_GET_DATABASE_TIME_PER_SEC();

(十六)空間占用

1、查看用戶占用的空間
可以使用系統函式USER_USED_SPACE得到用戶占用空間的大小,函式引數為用戶名,回傳值為占用的頁的數目,
SELECT USER_USED_SPACE('TEST_USER');
2、查看表占用的空間
可以使用系統函式TABLE_USED_SPACE得到表物件占用空間的大小,函式引數為模式名和表名,回傳值為占用的頁的數目,
SELECT TABLE_USED_SPACE('SYSDBA', 'TEST');
3、查看表使用的頁數
可以使用系統函式TABLE_USED_PAGES得到表物件實際使用頁的數目,函式引數為模式名和表名,回傳值為實際使用頁的數目,
SELECT TABLE_USED_PAGES('SYSDBA', 'TEST');
4、查看索引占用的空間
可以使用系統函式INDEX_USED_SPACE得到索引占用空間的大小,函式引數為索引ID,回傳值為占用的頁的數目,
SELECT INDEX_USED_SPACE(33555463);
5、查看索引使用的頁數
可以使用系統函式INDEX_USED_PAGES得到索引實際使用頁的數目,函式引數為索引ID,回傳值為實際使用頁的數目,
SELECT INDEX_USED_PAGES(33555463);
6、獲取整個資料庫占用的頁數
SELECT DB_USED_SPACE ();

(十七)其他雜類函式

1、將整型數 2010,2,2,5,5 轉換成日期時間型別
SELECT TO_DATETIME (2010,2,2,5,5);
2、清空動態性能視圖 V$SQL_HISTORY 的歷史資料
SP_DYNAMIC_VIEW_DATA_CLEAR('V$SQL_HISTORY');
3、解鎖用戶
call SP_UNLOCK_USER('USER123');
4、獲得運算式的內部存盤位元組
select dump('an',1017);
5、讓一個執行緒睡眠 1 秒鐘之后,再醒過來繼續運行
sleep(1);
6、獲取表的行數,功能和 SP_GET_TABLE_COUNT 一樣
SELECT SP_GET_TABLE_COUNT(1097);

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/271178.html

標籤:其他

上一篇:資料調度組件:基于Azkaban協調時序任務執行

下一篇:SqlServer存盤程序的創建與使用

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more