达梦数据库sql笔记

文章目录

  • [1 日期时间函数](#1 日期时间函数)
    • [1.1 now()](#1.1 now())
  • [2 权限相关](#2 权限相关)
  • [3 锁](#3 锁)
    • [3.1 某张表上的某种锁是由哪个会话操作加上的](#3.1 某张表上的某种锁是由哪个会话操作加上的)
  • [4 表空间](#4 表空间)
  • [5 查看一个模式下的每一张表占据的硬盘空间的大小](#5 查看一个模式下的每一张表占据的硬盘空间的大小)

1 日期时间函数

1.1 now()

语法:NOW(n)

功能:返回系统的当前时间戳。等价于 GETDATE()

参数:n:指定毫秒的精度。取值范围 0-6,默认为 6。

2 权限相关

为一个用户移除 PUBLIC 角色(默认可能隐含权限)

sql 复制代码
REVOKE PUBLIC FROM WY_RES_READ;

1、 创建一个角色,并将一个模式下的所有的表的查询权限赋给创建好的角色,然后将角色赋给 另外一个用户。

sql 复制代码
-- 创建只读角色
--CREATE ROLE WY_GQ_IIMS_READONLY;

-- 授权角色访问模式下的所有表
BEGIN
    FOR rec IN (
        SELECT TABLE_NAME 
		FROM ALL_TABLES 
		WHERE OWNER = 'WY_GQ_IIMS'
    ) 
    LOOP
        EXECUTE IMMEDIATE 
            'GRANT SELECT ON WY_GQ_IIMS.' || rec.TABLE_NAME || ' TO WY_GQ_IIMS_READONLY';
    END LOOP;
END;
/

-- 将角色授予用户
GRANT WY_GQ_IIMS_READONLY TO WY_RES_READ;

3 锁

3.1 某张表上的某种锁是由哪个会话操作加上的

sql 复制代码
select 
	a.*,b.NAME,c.SESS_ID,c.CLNT_IP,c.SQL_TEXT 
from 
	v$lock a
	left join sysobjects b on b.ID=a.TABLE_ID
	left join v$sessions c on a.TRX_ID=c.TRX_ID
where 
	b.NAME LIKE '%recent_a%'
	and c.CREATE_TIME > '2025-08-05';

4 表空间

sql 复制代码
SELECT 
  ID AS "表空间ID",
  NAME AS "表空间名称",
  CACHE AS "缓存策略",
  TYPE$ AS "类型(0=数据,1=临时,2=回滚)",
  STATUS$ AS "状态(0=联机,1=脱机)",
  TOTAL_SIZE*16/1024/1024 AS "总大小(GB)",
  USED_SIZE*16/1024/1024 AS "已使用大小(GB)"
FROM 
	V$TABLESPACE
order by USED_SIZE DESC;

select tablespace_name,file_name,status, bytes/1024/1024/1024 as "GB" from DBA_DATA_FILES order by "GB" DESC;

-- 查看页大小
SELECT SF_GET_PAGE_SIZE();

select 
	*
FROM 
	V$TABLESPACE;

select * from DBA_DATA_FILES;


5 查看一个模式下的每一张表占据的硬盘空间的大小

sql 复制代码
SELECT 
    t.owner AS "模式",
    t.table_name AS "表名",
    ROUND(COALESCE(s.seg_size, 0) / 1024 / 1024, 2) AS "表数据空间(MB)",
    ROUND(COALESCE(idx.idx_size, 0) / 1024 / 1024, 2) AS "索引空间(MB)",
    ROUND(COALESCE(s.seg_size + idx.idx_size, 0) / 1024 / 1024 / 1024, 2) AS "总占用空间(GB)"
FROM 
    dba_tables t
LEFT JOIN 
    (SELECT owner, segment_name, SUM(bytes) AS seg_size 
     FROM dba_segments 
     WHERE segment_type = 'TABLE' 
     GROUP BY owner, segment_name) s 
    ON t.owner = s.owner AND t.table_name = s.segment_name
LEFT JOIN 
    (SELECT i.owner, i.table_name, SUM(s.bytes) AS idx_size 
     FROM dba_indexes i 
     JOIN dba_segments s ON i.index_name = s.segment_name 
     WHERE s.segment_type = 'INDEX' 
     GROUP BY i.owner, i.table_name) idx 
    ON t.owner = idx.owner AND t.table_name = idx.table_name
WHERE 
    t.owner = 'SJZT_MD'  -- 替换为实际模式名
ORDER BY 
    "总占用空间(GB)" DESC;


select 
	sum("总占用空间(GB)")
from (
SELECT 
    t.owner AS "模式",
    t.table_name AS "表名",
    ROUND(COALESCE(s.seg_size, 0) / 1024 / 1024, 2) AS "表数据空间(MB)",
    ROUND(COALESCE(idx.idx_size, 0) / 1024 / 1024, 2) AS "索引空间(MB)",
    ROUND(COALESCE(s.seg_size + idx.idx_size, 0) / 1024 / 1024 / 1024, 2) AS "总占用空间(GB)"
FROM 
    dba_tables t
LEFT JOIN 
    (SELECT owner, segment_name, SUM(bytes) AS seg_size 
     FROM dba_segments 
     WHERE segment_type = 'TABLE' 
     GROUP BY owner, segment_name) s 
    ON t.owner = s.owner AND t.table_name = s.segment_name
LEFT JOIN 
    (SELECT i.owner, i.table_name, SUM(s.bytes) AS idx_size 
     FROM dba_indexes i 
     JOIN dba_segments s ON i.index_name = s.segment_name 
     WHERE s.segment_type = 'INDEX' 
     GROUP BY i.owner, i.table_name) idx 
    ON t.owner = idx.owner AND t.table_name = idx.table_name
WHERE 
    t.owner = 'SJZT_MD'  -- 替换为实际模式名
ORDER BY 
    "总占用空间(GB)" DESC
)
相关推荐
CoderYanger1 小时前
动态规划算法-简单多状态dp问题:15.买卖股票的最佳时机含冷冻期
开发语言·算法·leetcode·动态规划·1024程序员节
CoderYanger2 小时前
递归、搜索与回溯-FloodFill:33.太平洋大西洋水流问题
java·算法·leetcode·1024程序员节
CoderYanger5 小时前
动态规划算法-斐波那契数列模型:2.三步问题
开发语言·算法·leetcode·面试·职场和发展·动态规划·1024程序员节
CoderYanger5 小时前
动态规划算法-简单多状态dp问题:16.买卖股票的最佳时机含手续费
开发语言·算法·leetcode·动态规划·1024程序员节
CoderYanger6 小时前
C.滑动窗口-求子数组个数-越短越合法——3258. 统计满足 K 约束的子字符串数量 I
java·开发语言·算法·leetcode·1024程序员节
CoderYanger7 小时前
动态规划算法-路径问题:9.最小路径和
开发语言·算法·leetcode·动态规划·1024程序员节
CoderYanger7 小时前
动态规划算法-路径问题:7.礼物的最大价值
开发语言·算法·leetcode·动态规划·1024程序员节
CoderYanger8 小时前
动态规划算法-简单多状态dp问题:12.打家劫舍Ⅱ
开发语言·算法·leetcode·职场和发展·动态规划·1024程序员节
金融小师妹9 小时前
机器学习驱动分析:ADP就业数据异常波动,AI模型预测12月降息概率达89%
大数据·人工智能·深度学习·编辑器·1024程序员节
CoderYanger9 小时前
动态规划算法-简单多状态dp问题:18.买卖股票的最佳时机Ⅳ
开发语言·算法·leetcode·动态规划·1024程序员节