达梦数据库系列—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');

相关推荐
打鱼又晒网11 分钟前
【MySQL】数据库精细化讲解:内置函数知识穿透与深度学习解析
数据库·mysql
大白要努力!16 分钟前
android 使用SQLiteOpenHelper 如何优化数据库的性能
android·数据库·oracle
tatasix1 小时前
MySQL UPDATE语句执行链路解析
数据库·mysql
南城花随雪。1 小时前
硬盘(HDD)与固态硬盘(SSD)详细解读
数据库
儿时可乖了1 小时前
使用 Java 操作 SQLite 数据库
java·数据库·sqlite
懒是一种态度1 小时前
Golang 调用 mongodb 的函数
数据库·mongodb·golang
天海华兮1 小时前
mysql 去重 补全 取出重复 变量 函数 和存储过程
数据库·mysql
gma9992 小时前
Etcd 框架
数据库·etcd
爱吃青椒不爱吃西红柿‍️2 小时前
华为ASP与CSP是什么?
服务器·前端·数据库
Yz98763 小时前
hive的存储格式
大数据·数据库·数据仓库·hive·hadoop·数据库开发