达梦数据库系列—45.系统存储过程总结

目录

参数

数据库

执行计划

会话

备份恢复

数据守护

归档日志

[SQL LOG](#SQL LOG)

统计信息


参数

查询数值类型参数值

--语法格式:

select SF_GET_PARA_VALUE (scope int, paraname varchar(256));

--SCOPE 参数为 1 表示获取 INI 文件中配置参数的值

--SCOPE 参数为 2 表示获取内存中配置参数的值

--例如:获取 DM.INI 文件中动态参数 HFS_CACHE_SIZE 的当前值

select SF_GET_PARA_VALUE (1,'HFS_CACHE_SIZE');

查询浮点型参数值

--语法格式

select SF_GET_PARA_DOUBLE_VALUE(scope int, paraname varchar(8187));

--SCOPE 参数为 1 表示获取 INI 文件中配置参数的值

--SCOPE 参数为 2 表示获取内存中配置参数的值

--例如:获取内存中 参数SEL_RATE_EQU 的当前值

select SF_GET_PARA_DOUBLE_VALUE(2,'SEL_RATE_EQU');

查询字符串类型参数值

--语法格式

select SF_GET_PARA_STRING_VALUE(scope int, paraname varchar(8187));

--SCOPE 参数为 1 表示获取 INI 文件中配置参数的值

--SCOPE 参数为 2 表示获取内存中配置参数的值

--例如:获取 DM.INI 文件中动态参数 SQL_TRACE_MASK 的当前值

select SF_GET_PARA_STRING_VALUE(1,'SQL_TRACE_MASK');

获得当前会话的某个会话级 INI 参数的值

--语法格式

select SF_GET_SESSION_PARA_VALUE (paraname varchar(8187));

--例如:获取当前会话 USE_HAGR_FLA 参数的值

select SF_GET_SESSION_PARA_VALUE ('USE_HAGR_FLAG');

修改整型参数

SP_SET_PARA_VALUE (scope int, paraname varchar(256), value int64);

SP_SET_PARA_VALUE (1,'HFS_CACHE_SIZE',320);

修改浮点型参数

SP_SET_PARA_DOUBLE_VALUE(scope int,paraname varchar(8187),value double);

SP_SET_PARA_DOUBLE_VALUE(1, 'SEL_RATE_EQU', 0.3);

修改系统整型、double、 varchar的配置参数

--语法格式

SF_SET_SYSTEM_PARA_VALUE(paraname varchar(256),value int64\double\varchar(256),deferred int,scope int64);

--DEFERRED 参数为 0 表示当前 session 修改的参数立即生效,默认为 0

--DEFERRED 参数为 1 表示当前 session 不生效,后续再生效

--SCOPE 参数为 1 表示在内存和 INI 文件中都修改参数值,此时只能修改动态的配置参数

--SCOPE 参数为 2 表示只在 INI 文件中修改配置参数,此时可用来修改静态配置参数和动态配置参数

--例如:将动态参数 ENABLE_DDL_ANY_PRIV 设置为 1,且当前 session 立即生效

select SF_SET_SYSTEM_PARA_VALUE('ENABLE_DDL_ANY_PRIV',1,0,1);

修改会话级INI参数的值,设置的参数值只对本会话有效

SF_SET_SESSION_PARA_VALUE (paraname varchar(8187), value bigint);

--例如:将 USE_HAGR_FLAG 设置为 1,且只对本会话有效

select SF_SET_SESSION_PARA_VALUE ('USE_HAGR_FLAG',1);

重置某个会话级 INI 参数的值

--语法格式

SP_RESET_SESSION_PARA_VALUE (paraname varchar(8187));

--例如:重置 USE_HAGR_FLAG

select SP_RESET_SESSION_PARA_VALUE ('USE_HAGR_FLAG');

数据库

查看版本

select id_code();

SELECT SF_GET_UNICODE_FLAG ();

查看字符集

select UNICODE ();

查看页大小

select SF_GET_PAGE_SIZE();

查看簇大小

SELECT SF_GET_EXTENT_SIZE ();

查看永久魔数

SELECT PERMANENT_MAGIC();

打开监听

SP_OPEN_LSNR();

关闭监听

SP_CLOSE_LSNR();

查看表定义

CALL SP_TABLEDEF('SYSDBA', 'ORDERS');

根据对象类型、对象名、对象所属模式返回DDL语句 :

SELECT SF_DBMS_METADATA_GET_DDL(OBJECT_TYPE=>'TABLE',OBJECT_NAME=>'DICT_AREA',SCHNAME=>'TEST');

查看视图定义

CALL SP_VIEWDEF('SYSDBA', 'VIEW1');

查看约束定义

//通过查询系统表

SELECT C.INDEXID FROM SYSOBJECTS O,SYSCONS C WHERE O.NAME='CONS1' AND O.ID=C.ID;

//系统生成C2上的INDEX为33555481

SELECT CONSDEF(33555481,1);

查看索引定义

//查询系统表得到索引ID

SELECT NAME, ID FROM SYSOBJECTS WHERE NAME='PRODUCT_IND' AND SUBTYPE$='INDEX';

SELECT indexdef(33555530,1);

查看全文索引定义

//查询系统表得到全文索引ID

select name, id from sysobjects where name='PRODUCT_CINd';

select context_index_def(33555531, 1);

查看同义词定义

SELECT SYNONYMDEF('SYSDBA', 'SYSOBJECTS',0,1);

查看序列定义

SELECT ID FROM SYSOBJECTS WHERE NAME='SEQ1'; //查出id为167772160

SELECT SEQDEF(167772160, 1);

禁用/启用触发器

SP_ENABLE_EVT_TRIGGER('SYSDBA', 'TRI_1', 1);

SP_ENABLE_EVT_TRIGGER('SYSDBA', 'TRI_1', 0);

分配给表的页面数

SELECT TABLE_USED_SPACE('SYSDBA','SPACE_TABLE');

表已使用的页面数

SELECT TABLE_USED_PAGES('SYSDBA','SPACE_TABLE');

表的总行数

SELECT TABLE_ROWCOUNT('SYSDBA','TAB1');

执行计划

仅当历史执行计划持久化功能打开(USE_PLN_POOL!=0,ENABLE_MONITOR_PLNHIST=1)时,使用 DBMS_XPLAN 包才有意义。

展示sql语句的历史执行计划

如果还未创建过系统包。请先调用系统过程创建系统包

SP_CREATE_SYSTEM_PACKAGES (1,'DBMS_XPLAN');

DBMS_XPLAN.DISPLAY_PLANHIST('SELECT C1 FROM T1;');

会话

杀会话

SP_CLOSE_SESSION(510180488);

解锁用户

SP_UNLOCK_USER('USER123');

查看当前用户

SELECT USER();

查看当前数据库

SELECT CUR_DATABASE();

查看当前用户ID

SELECT UID();

查看当前会话ID

SELECT SESSID ();

备份恢复

查看备份集信息,需要先添加备份目录,V$BACKUPSET_SEARCH_DIRS有目录信息,当前会话执行查询。

添加备份目录

SELECT SF_BAKSET_BACKUP_DIR_ADD('DISK','/dm/backup');

删除备份目录,只删目录不删文件

SELECT SF_BAKSET_BACKUP_DIR_REMOVE('DISK','/dm/backup');

SELECT SF_BAKSET_BACKUP_DIR_REMOVE_ALL();

删除备份目录,删除文件

SELECT SF_BAKSET_REMOVE('DISK','/dm/backup/db_full_bak_01',1)

删除备份集

SELECT SF_BAKSET_REMOVE_BATCH ('DISK', now(), NULL, NULL);

删除满足指定条件的所有库级备份集

SELECT SF_BAKSET_REMOVE_BATCH_S ('DISK', now(), NULL, NULL);

删除满足指定条件的所有库级备份集,保留备份时间最新的 n 个库级完全备份集

SELECT SF_BAKSET_REMOVE_BATCH_N ('DISK', now(), NULL, NULL, 2);

删除指定时间之前的数据库备份集

CALL SP_DB_BAKSET_REMOVE_BATCH('DISK', NOW());

删除指定表空间对象及指定时间之前的表空间备份集

CALL SP_TS_BAKSET_REMOVE_BATCH('DISK',NOW(),'MAIN');

删除指定表对象及指定时间之前的表备份集

CALL SP_TAB_BAKSET_REMOVE_BATCH('DISK',NOW(),'SYSDBA','TAB_FOR_BATCH_DEL');

删除指定时间之前的归档备份集

CALL SP_ARCH_BAKSET_REMOVE_BATCH('DISK', NOW());

BACKUP ARCHIVELOG BACKUPSET '/dm/backup/arch_bak_for_batch_del';

SELECT SF_BAKSET_BACKUP_DIR_ADD('DISK','/dm/backup');

CALL SP_ARCH_BAKSET_REMOVE_BATCH('DISK', NOW());

数据守护

设置OGUID

SP_SET_OGUID (451245);

设置实时归档有效/无效

SP_SET_RT_ARCH_VALID ();

SP_SET_RT_ARCH_INVALID ();

获取实时归档状态

SELECT SF_GET_RT_ARCH_STATUS ();

归档日志

设置刷脏页百分比为 30% 的检查点

SELECT CHECKPOINT(30);

删除三天之前的归档

SELECT SF_ARCHIVELOG_DELETE_BEFORE_TIME(SYSDATE - 3);

删除 LSN 值小于 95560 的归档日志文件

SELECT SF_ARCHIVELOG_DELETE_BEFORE_LSN(95560);

SQL LOG

使配置生效

SP_REFRESH_SVR_LOG_CONFIG();

修改 SVR_LOG 参数为1

sp_set_para_value(1,'SVR_LOG',1);

统计信息

对库上所有模式下的所有用户表以及表上的所有索引生成统计信息

CALL SP_DB_STAT_INIT ();

对某张表生成统计信息

SP_TAB_STAT_INIT ('SYS', 'SYSOBJECTS');

对表上所有的索引生成统计信息

SP_TAB_INDEX_STAT_INIT ('SYS', 'SYSOBJECTS');

对某个表上所有的列生成统计信息

SP_TAB_COL_STAT_INIT ('SYS', 'SYSOBJECTS');

对指定的索引生成统计信息

SP_INDEX_STAT_INIT ('SYSDBA', 'IND');

对指定的列生成统计信息

SP_COL_STAT_INIT ('SYS', 'SYSOBJECTS', 'ID');

对某个表上所有的列,按照指定的采样率生成统计信息

SP_STAT_ON_TABLE_COLS ('SYS','SYSOBJECTS',90);

对'SELECT * FROM SYSOBJECTS'语句涉及的所有表生成统计信息

SP_SQL_STAT_INIT ('SELECT * FROM SYSOBJECTS');

相关推荐
安审若无43 分钟前
Oracle 打补丁指南
数据库·oracle
樱花的浪漫1 小时前
Cuda reduce算子实现与优化
数据库·人工智能·深度学习·神经网络·机器学习·自然语言处理
啊森要自信1 小时前
【MySQL 数据库】MySQL用户管理
android·c语言·开发语言·数据库·mysql
kkkkk0211061 小时前
Redis八股
数据库·redis·缓存
Liu1bo2 小时前
【MySQL】表的约束
linux·数据库·mysql
胖胖的战士2 小时前
Mysql 数据库迁移
数据库·mysql
czhc11400756633 小时前
LINUX1012 mysql GLIBC安装
数据库·mysql
DemonAvenger3 小时前
深入 Redis Hash:从原理到实战,10 年经验的后端工程师带你玩转哈希结构
数据库·redis·性能优化
❥ღ Komo·3 小时前
PHP数据库操作全攻略
数据库·oracle
程序新视界4 小时前
MySQL的整体架构及功能详解
数据库·后端·mysql