【数据库】国产达梦数据库常用查询语句及内存管理操作(附官方免费学习地址)

一、写在最前:

目前已是2024年,国产化要求、自主、可控要求往往是项目交付的必要前提条件。这里介绍最常见的国产数据库。

二、国产化要求介绍:

通常是指政府或相关管理机构对国内企业生产的产品或提供的服务所提出的一系列规定和要求。这些要求的目的是鼓励和支持本国企业发展,提升国内产业水平,促进经济独立和可持续发展。以下是一些常见的国产化要求:

技术要求: 要求企业具备自主研发能力或采用国内先进技术,降低对外部技术的依赖程度。

产品标准: 要求产品符合国内相关的技术、质量和安全标准,保障产品质量和用户权益。

原材料和零部件: 鼓励使用国产原材料和零部件,减少对进口原材料的依赖,提升国内产业链水平。

产地要求: 要求产品在国内完成最终组装或生产,降低对进口成品的依赖,增加本国就业机会。

本地化服务: 要求企业在本国提供售后服务、维修支持等,保障消费者权益,提升产品信誉度。

配套政策支持: 提供税收优惠、政府采购支持等政策措施,鼓励和支持企业进行国产化生产。

技术转让和合作: 鼓励跨国合作、技术转让,促进国内产业技术水平提升。

创新激励: 提供创新奖励、科研资助等政策,鼓励企业加大研发投入,提升技术创新能力。

国产化要求的实施对企业有利于提升竞争力、促进技术创新和产品升级,同时也有助于国家经济发展和产业升级。然而,企业在实施国产化的过程中也需要面对技术挑战、成本压力以及市场竞争等方面的挑战,需要综合考虑各种因素来平衡国产化的利与弊。

  • 国产达梦数据库---常用查询
    1. 表行数

SELECT TABLE_NAME AS 表名,OWNER AS 所属用户,TABLESPACE_NAME AS 所属表空间,NUM_ROWS AS 行数 FROM DBA_TABLES

    1. 用户信息

SELECT USER_ID AS "用户ID",USERNAME AS "用户名",ACCOUNT_STATUS AS "状态",DEFAULT_TABLESPACE AS "默认表空间",CREATED AS "创建时间",LOCK_DATE AS "锁定开始时间",EXPIRY_DATE AS "密码有效期截止" FROM DBA_USERS;

    1. 表结构

SELECT TABLEDEF('DMHR','CITY') FROM DUAL;  #查看DMHR模式下CITY表的结构

    1. 数据库版本实例

SELECT B.SVR_VERSION AS "数据库版本", C.DB_MAGIC AS "数据库MAGIC",A.NAME AS "数据库名",B.INSTANCE_NAME AS "实例名",B.STATUS$ AS "系统状态",B.MODE$ AS "模式",DECODE(A.ARCH_MODE,'Y','是','N','否') AS "是否归档",B.START_TIME AS "服务启动时间" FROM V$DATABASE A,V$INSTANCE B,V$RLOG C;

四、国产达蒙数据库--内存管理

达梦数据库的内存使用简单可以分为如下三部分:分别是缓冲区内存、主内存、其他内存。

select * from v$mem_pool;

select * from v$dm_ini where para_NAME = 'MEMORY_POOL';

    1. 缓冲区

(1)数据缓冲区

  • normal缓冲区,对应的ini参数是buffer,
  • keep缓冲区,常驻的数据都放在keep数据页中,对应的ini参数就是keep,
  • recycle缓冲区,高并发系统、使用with as语句较多,临时数据较多需要将这个recycle数据页所占用的内存值调大,对应的ini参数是recycle。记住所有的页大小在初始化实例时已经设定好了,现在使用ini参数修改的是缓冲区内存大小。
  • fast缓冲区,fast包含数据页和回滚页, 常驻缓冲区,这两者都是由系统自动管理,无需用户干涉对应的ini参数是fast_pool_pages和fast_roll_pages,代表fast缓冲区的大小为多少个数据页。

select * from v$dm_ini where para_NAME = 'BUFFER';

select * from v$dm_ini where para_NAME = 'KEEP';

select * from v$dm_ini where para_NAME = 'RECYCLE';

select * from v$dm_ini where para_NAME = 'FAST_POOL_PAGES';
select * from v$dm_ini where para_NAME = 'FAST_ROLL_PAGES';

有个视图v$bufferpool代表了数据缓冲区所有的pool,咱看这个视图的查询结果:

通过v$bufferpool视图和这个sql,可以大致算出数据缓冲区的总大小

select sum(n_pages * page_size) from v$bufferpool; 

(2)日志缓冲区

redo_log日志在写入磁盘前,先写入在日志缓冲区中,最后在机会合适时再写入日志缓冲区。对应的ini参数是RLOG_BUF_SIZE

select * from  V$DM_INI WHERE PARA_NAME = 'RLOG_BUF_SIZE';  单位是页数量

SELECT * FROM v$rlog;

(3)sql缓冲区

  • 所需执行的sql执行计划,sql,结果集都会在缓存在sql缓冲区中。
  • v$cacheitem,记录了当前sql缓冲区的使用情况。此外,v$cachepln、v$cachers、v$cachesql分别记录了执行计划缓存、结果集缓存、SQL语句缓存(注:这些视图都是在参数USE_PLN_POOL !=0才统计,其中结果集缓存还受rs_can_cache、rs_cache_tables、rs_cache_min_time参数控制)。
  • 对于SQL类别多、包比较多的系统可适当调大该参数。
  • 常用 Select sum(item_size) from v$cacheitem 来计算SCP的大小。(存疑,这个结算结果和cache——pool——size的值不一样)

select * from v$dm_ini where para_NAME = 'CACHE_POOL_SIZE'; 单位是M

SELECT * FROM V$CACHEPLN;

(4)数据字典缓冲区

数据库对像比如表,索引,视图,序列,同义词,触发器,存储过程的信息都缓存在数据字典缓冲区中

在数据库对象较多时,可适当增大该参数。通过查询select total_size,used_size FROM v$dict_cache

select * from  V$DM_INI WHERE PARA_NAME = 'DICT_BUF_SIZE';  
若想知道字典缓冲区中缓存对象的详细信息需查询视图v$dict_cache_item

SELECT * FROM V$DICT_CACHE_ITEM ;

    1. 内存池情况

select is_shared,round(sum(org_size)/1024/1024/1024,2),round(sum(TOTAL_SIZE)/1024/1024/1024,2),round(sum(data_size)/1024/1024/1024,2)

from v$mem_pool

group by is_shared;

    1. 参数设置

五、达梦官方技术文档连接:

从 SQL Server 迁移到 DM | 达梦技术文档

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱喝水的小猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值