irpas技术客

达梦数据库常用sql语句大全_yuDazzle_达梦数据库sql语句

网络 6248

常用sql 一、对象操作相关sql1.查看表占用空间:2.拼接sql,批量删除模式下的表:3.查找一个表属于哪个用户;4.查询某一模式下的所有表名5.查询数据库中所有用户及状态6.查询当前用户拥有哪些角色;7.查询当前角色下有哪些权限;8.查询数据库是否兼容其他数据库模式9.修改数据库当前兼容模式10.查询表上的唯一索引对应的列 二、优化相关sql1.更新模式下统计信息:2.更新单表统计信息:3.更新单列统计信息:4.查询慢sql:5.查询阻塞锁6.查询锁等待7.按照耗时排序查询慢sql8.查询死锁涉及的事务信息 三、 其他常用sql1.初始化代理环境:2.授权激活:3.查询数据库使用的字符集4.查询数据库大小写是否敏感5.查询varchar类型是否以字符为单位6.清理归档:7.查看用户会话空闲时间,登录失败次数限制8.查询用户的会话持续期以及会话使用cpu时间上限

一、对象操作相关sql 1.查看表占用空间: SELECT TABLE_USED_PAGES('模式名', '表名') * PARA_VALUE / 1024 / 1024 "USER_USED_SPACE(MB)" FROM V$DM_INI WHERE PARA_NAME LIKE 'GLOBAL_PAGE_SIZE'; 2.拼接sql,批量删除模式下的表: select 'drop table SYSDBA."' || A .TABLE_NAME ||' ;' FROM DBA_TABLES A WHERE OWNER='SYSDBA'; 3.查找一个表属于哪个用户; select * from dba_tables where TABLE_NAME='表名'; 4.查询某一模式下的所有表名 select TABLE_NAME from dba_tables where owner='SYSDBA'; 5.查询数据库中所有用户及状态 select username, ACCOUNT_STATUS from dba_users ; 6.查询当前用户拥有哪些角色; select grantee,granted_role from dba_role_privs where grantee='用户名'; 7.查询当前角色下有哪些权限; select grantee,privilege from dba_sys_privs where grantee='角色名'; 8.查询数据库是否兼容其他数据库模式 select * from v$dm_ini where "V$DM_INI".PARA_NAME='COMPATIBLE_MODE';

查询结果为0,表示不兼容; 2:部分兼容 ORACLE, 3:部 分兼容 MS SQL SERVER, 4:部分兼容 MYSQL

9.修改数据库当前兼容模式

见上一条,如果修改为部分兼容 MYSQL;

sp_set_para_value(2,'COMPATIBLE_MODE',4);

见上一条,如果修改为部分兼容 ORACLE;

sp_set_para_value(2,'COMPATIBLE_MODE',2);

修改以后重启数据库实例服务生效;

10.查询表上的唯一索引对应的列

修改PRODUCT_VENDOR为对应的表名

select column_name FROM dba_ind_columns where index_name in ( select index_name from dba_indexes where table_name ='PRODUCT_VENDOR' and uniqueness = 'UNIQUE' ); 二、优化相关sql 1.更新模式下统计信息: DBMS_STATS.GATHER_SCHEMA_STATS( '模式名', 100, FALSE, 'FOR ALL COLUMNS SIZE AUTO'); 2.更新单表统计信息: SP_TAB_STAT_INIT('模式名','表名'); 或者 DBMS_STATS.GATHER_TABLE_STATS('模式名','表名',NULL,100,TRUE,'FOR ALL COLUMNS SIZE AUTO') 3.更新单列统计信息: STAT 100 ON 表名(列名); sp_col_stat_init('模式名','表名','列名'); sp_tab_col_stat_init('模式名','表名'); 4.查询慢sql: select datediff(ss,sysdate,last_send_time) a, SF_GET_SESSION_SQL(SESS_ID) ,--获取完整sql sess_id , sess_seq , sql_text , state , seq_no , user_name , trx_id , create_time, clnt_ip from v$sessions where state='ACTIVE' and sess_id != sessid order by a; 5.查询阻塞锁 select * from v$lock where blocked=1; 6.查询锁等待 select * from v$trxwait; 7.按照耗时排序查询慢sql select timestampdiff(ss,LAST_RECV_TIME,sysdate),sf_get_session_sql(sess_id),* from SYS."V$SESSIONS" where sess_id<>sessid order by 6 asc,1 desc; 8.查询死锁涉及的事务信息 select dh.trx_id , sh.sess_id, wm_concat(top_sql_text) from V$DEADLOCK_HISTORY dh, V$SQL_HISTORY sh where dh.trx_id =sh.trx_id and dh.sess_id=sh.sess_id group by dh.trx_id, sh.sess_id 三、 其他常用sql 1.初始化代理环境: SP_INIT_JOB_SYS(1); 2.授权激活: sp_load_lic_info(); 3.查询数据库使用的字符集 SELECT sf_get_unicode_flag()

结果为1,表示字符集为utf-8; 结果为0,表示字符集为gbk;

4.查询数据库大小写是否敏感 select sf_get_case_sensitive_flag()

结果为1,表示大小写敏感; 结果为0,表示大小写不敏感;

5.查询varchar类型是否以字符为单位 select sf_get_length_in_char()

结果为1,表示以字符为单位; 结果为0,表示以字节为单位;

6.清理归档: SF_ARCHIVELOG_DELETE_BEFORE_TIME(SYSDATE - 15); 7.查看用户会话空闲时间,登录失败次数限制 select a.ID as 用户ID, b.name as 用户名, CONN_IDLE_TIME as 用户会话的最大空闲时间, FAILED_NUM as 用户登录失败次数限制, SESS_PER_USER, LOCK_TIME as 用户口令锁定时间 from SYSUSERS a,sysobjects b where a.id=b.id 8.查询用户的会话持续期以及会话使用cpu时间上限 select a.ID as 用户ID, b.name as 用户名, a.INFO1 as 会话持续期, a.CPU_PER_SESSION as 会话使用cpu时间上限 from SYSRESOURCES a, sysobjects b where a.id=b.id

欢迎关注达梦云适配中心;


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #达梦数据库sql语句 #模式名 #100 #false #for