自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梁敬彬的博客

数据库相关

  • 博客(44)
  • 收藏
  • 关注

原创 达梦数据库知识总结链接贴

1.数据库安装【原创】达梦数据库的安装数据库实例管理【原创】dminit & dm.ini的研究【原创】达梦数据库的启停3.体系结构等【原创】达梦数据库体系结构研究【原创】达梦数据库的KEEP缓存4.表空间【原创】达梦数据库的表空间管理用户及权限【原创】达梦的用户口令策略及限制6.SQL【原创】达梦数据库的递归WITH特性研究7.过程函数包触发器【原创...

2019-11-26 17:29:17 2760 1

原创 DM的位图索引

DM是一样支持位图索引的,试验如下drop table t purge;create table tasselect rownum name_id,decode(ceil(dbms_random.value(0,2)),1,‘M’,2,‘F’)gender,ceil(dbms_random.value(1,50)) location,decode(ceil(dbms_random.value(0,3)),1,‘child’,2,‘young’,3,‘middle_age’,4,‘o

2020-07-18 15:54:20 234

原创 普通表自动改造分区表

create or replace package pkg_deal_part_tabAuthid Current_Useras/*功能: 实现普通表到分区表自动改造工作*/procedure p_rename_001 (p_tab in varchar2 );procedure p_ctas_002 (p_tab in varchar2,p...

2019-12-13 16:24:49 396

原创 达梦数据库的包与过程函数的测试

达梦数据库与Oracle的兼容性总体来说还是不错的,下面我们来一起探索一下包过程函数的基本功能的实现与一些注意点。匿名块结构:Declare (可选项,申请变量)Begin –开始Boby;Exception (可选项,异常处理)End;来一个hello worldSQL> set serveroutput onSQL> begin2 print(‘hel...

2019-12-11 18:16:45 749 1

原创 达梦数据库的索引组织表与堆表的说明

达梦数据库可支持索引组织表,堆表,临时表,分区表,外部表等,不过 和Oracle不一样,Oracle默认是堆表,而DM默认是索引组织表不用加任何参数,默认就是索引组织表的模式SQL> create table t_branch(id int ,name varchar(20));操作已执行已用时间: 2.286(毫秒). 执行号:56.如果要变成堆表模式,需要指定NOBRANCH参...

2019-12-10 18:07:07 1541

原创 达梦HUGE表

HUGE表实际上是列式存储的,缓存在HUGE BUFFER中。表空间需要是建立HUGE表空间,建HUGE表的时候不写表空间则默认指定在HMAIN。drop table t_huge;create huge table t_huge as select * from dba_objects;drop table t_huge;create huge table t_huge LOG AL...

2019-12-10 18:04:24 2547

原创 达梦数据库查看执行计划

两种格式,一个是explain ,一个是explain for (更详细的计划)构造环境create table t1 as select rownum as id ,rownum+1 as id2,rpad(’’,1000,’’) as contents from dual connect by level<=1;操作已执行2 create index idx_id_t1 o...

2019-12-10 17:58:15 3891 1

原创 达梦数据库的并行设置生效与查看

开启并行设置前提,PARALLEL_POLICY 参数的设置。首先,使用 PARALLEL_POLICY 参数来设置并行策略。取值范围: 0、 1 和 2,默认值0。其中, 0 表示不支持并行; 1 表示自动并行模式; 2 表示手动并行模式。当开启本地并行(PARALLEL_POLICY>0)时,使用 PARALLEL_THRD_NUM 指定本地并行查询使用的线程数,取值范围为 1~1...

2019-12-10 17:56:17 947

原创 达梦数据库热备几个注意点

达梦数据库热备试验中的一些注意点将数据库修改为归档模式[root@dm1 bin]# ./disql SYSDBA/SYSDBA@localhost:5237服务器[localhost:5237]:处于普通打开状态登录使用时间: 6.349(毫秒)disql V7.6.0.96-Build(2018.09.19-97292)ENTConnected to: DM 7.1.6.96...

2019-12-10 17:54:01 598

原创 达梦数据库的恢复

在备份的基础上我们测试一下恢复。先查看表空间的情况SQL> select tablespace_name,status from dba_tablespaces;行号 TABLESPACE_NAME STATUS1 SYSTEM 02 ROLL 03 TEMP ...

2019-12-10 17:51:53 956

原创 达梦数据库的逻辑备份恢复

我们一起看看达梦数据库的逻辑备份恢复工具:dexp/dimp准备工作针对数据库对象,有 FULL、 OWNER、 SCHEMAS、 TABLES 四种导出方式可供选择。一次导出只能指定一种方式。 可选参数,缺省为 SCHEMA。FULL 方式导出整个数据库。OWNER 方式导出一个或多个用户拥有的所有对象SCHEMAS 方式的导出一个或多个模式下的所有对象。TABLES 方式导出和导...

2019-12-10 17:50:03 1006

原创 达梦数据库全局临时表

DM的临时表 ON COMMIT 关键词指定表中的数据是事务级还是或会话级的,默认情况下是事务级的。ON COMMIT DELETE ROWS:指定临时表是事务级的,每次事务提交或回滚之后,表中所有数据都被删除;ON COMMIT PRESERVE ROWS:指定临时表是会话级的,会话结束时才清空表,并释放临时 B 树。接下来我们来做系列测试[root@dm1 bin]# ./...

2019-12-10 15:49:28 1534

原创 pg如何安装插件

以bloom插件为例之前装过了,现在尝试删除postgres=# drop extension bloom;psql: ERROR: cannot drop extension bloom because other objects depend on itDETAIL: index idxbloom_t2 depends on operator class int4_ops for ...

2019-11-28 22:19:33 4210

原创 pg操作符之补全代码的tab键

强大的tab键比如执行这个postgres-# create ext用tab键敲一下,马上就补全了,变成如下了postgres-# create extension继续tab键敲两下,就出现如下postgres-# create extensionbloom dblink pg_trgm plpgsql————————————————版权声明:本文为CSDN博主「梁敬彬」的原创文...

2019-11-28 21:38:58 790

原创 pg操作符之历史操作查看\s

火眼金睛的\s查看本session操作过的所有命令postgres-# \s\d\l\q\d\l\qselet 1;select 1;\d\l\qselect 1;create table tab1(int id);create table tab1(id int);insert into tab1 value(0);insert into tab1 value...

2019-11-28 21:37:16 768

原创 pg操作符之数据库命令查询\h

方便的数据库操作命令 \hAvailable help:ABORT ALTER SEQUENCE CREATE AGGREGATE CREATE SUBSCRIPTION DROP EXTENSION DROP TEXT SEARCH PARSER REVOKEALTER AGGREGATE ALTER SERVER CREATE CAST CREATE TABLE DROP FOREIGN...

2019-11-28 21:31:07 515 1

原创 pg的bloom索引研究

11

2019-11-28 21:23:32 267

原创 postgresql 建库

建库命令史上最简单postgres=# create database pgdb2;CREATE DATABASEpostgres=#

2019-11-28 20:35:31 838

原创 pg操作符之对象查询命令 \ ?

一. \ ?postgres=# ?General\copyright show PostgreSQL usage and distribution terms\crosstabview [COLUMNS] execute query and display results in crosstab\errverbose show mos...

2019-11-28 20:10:46 821

原创 达梦数据库的表空间管理

日志组切换SQL> alter system switch logfile;操作已执行已用时间: 0.279(毫秒). 执行号:0.SQL> select path from v$rlogfile;行号 PATH1 /dm7/data/DAMENG/DAMENG01.log2 /dm7/data/DAMENG/DAMENG02...

2019-11-26 17:53:40 916

原创 达梦数据库的启停

DM 数据库包含以下几种状态:配置状态(MOUNT): 不允许访问数据库对象,只能进行控制文件维护、归档配置、数据库模式修改等操作;打开状态(OPEN): 不能进行控制文件维护、归档配置等操作,可以访问数据库对象,对外提供正常的数据库服务;挂起状态(SUSPEND): 与 OPEN 状态的唯一区别就是,限制磁盘写入功能;一旦修改了数据页,触发 REDO 日志、数据页刷盘,当前用户将被挂起。...

2019-11-26 17:48:34 2827

原创 dminit & dm.ini的研究

[root@dm1 bin]# ./dminit helpinitdb V7.6.0.96-Build(2018.09.19-97292)ENTdb version: 0x7000afile dm.key not found, use default license!License will expire in 14 day(s) on 2019-10-18格式: ./dminit ...

2019-11-26 17:47:15 1914

原创 达梦数据库的安装

1.确定操作系统(找到对应的安装包)[root@dm7 桌面]# cat /etc/issue[root@dm7 桌面]# uname -r2.6.32-220.el6.x86_64(i386 i686)2.确定硬件要求[root@dm7 opt]# df-h[root@dm7 opt]#free[root@dm7 opt]#cat /proc/cpuinfo3.规划安装用户[r...

2019-11-26 17:39:53 387

原创 MYSQL深入浅出系列--库的基本访问

安装方面就不多说了,先从简单的开始分享,说说WINDOWS版这个下载太慢了https://dev.mysql.com/downloads/mysql/可以考虑在我的百度云盘上下载链接:https://pan.baidu.com/s/1IvfzLfN5u44o4TY5H22t8g提取码:s1u7安装好后如下...

2019-11-26 17:03:05 469

原创 达梦的CTAS写法的Oracle兼容性问题

在SQL编写的过程中要注意,DM是不支持create table xxx( 列1 ,列2…) as select …的模式要改造成create table xxx as select …as 列1,…as 列2…这样的模式。这个模式无论DM还是Oralce都支持,就不会报错了。以下语句在Oracle是OK的,在DM不支持DROP TABLE t1;CREATE TABLE t1 (id, ...

2019-11-26 17:00:57 2486

原创 经典等价改写7(避免使用触发器)

在数据库设计中,我们要尽量避免使用触发器,主要有两大坏处:首先是代码不利于统一管理,隐藏在数据库中;其次是性能问题,基于行级的触发器会导致每更新一行就会触发一次表的动作,这种极频繁的调用是性能的致命伤害。构造例子,举例说明如下:构造环境,建表建触发器。set pagesize 3000;set linesize 300;set trim on–creating tabledrop ta...

2019-11-26 16:51:21 166

原创 经典等价改写6(减少函数调用)

虽然说我们要设法避免进行函数调用,但是很多时候我们是无法避免的,比如有一些逻辑特别复杂,核心人员对其做了函数封装,成为开发公约的模式交给开发人员去调用,这时基本上开发人员就很难转化成普通的表关联方式了。不过避免不了调用的情况下,我们还可以设法减少调用,请看构造的系列例子:首先是构造环境drop table t1 purge;drop table t2 purge;create table...

2019-11-26 16:47:48 162

原创 经典等价改写5(避免函数调用)

笔者接下来要描述的,是一个典型的优化场景,关于对SQL中带函数的写法的一些认识。一般来说,我们尽量避免SQL中带函数,可以考虑将函数的写法转化成表连接的写法。因为前者会产生大量的递归调用,往往表的记录有多少条,函数就被调用多少次,性能会特别糟,请看构造的例子如下:首先是构造环境。drop table people purge;drop table sex purge;create tabl...

2019-11-26 16:41:05 122

原创 经典等价改写4(只取所需列)

1.4 只取你所需的列12.1.4.1 只取所需列,访问视图变快这是一个经典的例子,当你的语句没有select * 而是精准的获取到哪些列时,你可能连访问的表都变少了,原本访问两张表,忽然变成只访问其中一张表了,听起来有点不可思议是吗?好吧,做一个试验给大家看看这个场景。环境准备,建一个视图v_t1_join_t2drop table t1 cascade constraints purge...

2019-11-26 16:38:24 181

原创 经典等价改写3(插入提速)

1.3 如何让插入的速度最快还记得在体系结构5.2.2.3章节里有提到过的直接路径访问性能差异明显的例子吗?这里就不再重新举例了,如果我们增加并行、关闭日志,也可以让插入速度变得更快,不过这两部分则属于加大吞吐量减少开销的犯错,具体见如下表格,算是对之前案例进行补充完善,如下如何让插入的速度最快...

2019-11-26 16:36:47 104

原创 经典等价改写2(rownum分页)

1.2 Rownum分页改写Rownum是Oracle的一个伪列,是Oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何表的名称作为前缀。这里先介绍一个基本常识:如果你用>,>=,=,between…and这些条件,因为从缓冲区或数据文件中得到的第一条记录的rownum为1,则...

2019-11-26 16:34:07 125

原创 经典等价改写1(case when 改造)

SQL优化的本质就是减少访问路径,前面的章节中我们已经学到了很多减少访问路径的思路,比如增加索引从全表扫描转换成索引范围扫描,比如表改造成分区表从全表扫描转化成局部分区扫描,这些都属于不需要改写SQL就完成的减少访问路径的思路。当然,在很多场景下,我们还是必须要完成有些等价改写的,比如case when改造、rownum分页改写等等。除了减少访问路径外,我们还要注意避免外因的影响。比如一些执行计...

2019-11-26 16:32:13 596

原创 达梦作业管理遇到的坑

设置DM的JOB,原本以为很简单的东西,结果折腾了好久,遇到了一个坑。我在写commit的时候想当然的回车换行了,结果作业任务就不能正常用了,这个有点坑啊(估计不少人和我一样),你看下图,生成的脚本也换行了,导致实际无法执行了。...

2019-11-26 16:23:05 1220

原创 达梦的用户口令策略及限制

口令策略用户密码最长为48个字节,创建用户语句时使用 password policy子句来指定口令策略。DM.INI PWD_POLICY系统支持的口令策略:0 无策略1 禁止与用户名相同2 口令长度不小于94 至少包含一个大写字母(A-Z)8 至少包含一个数字(0-9)16 至少包含一个标点符号(英文状态输入,除”和空格外)口令策略可单独使用,也可组合应用,比如:...

2019-11-26 16:16:28 4527

原创 达梦数据库的触发器研究

库级[root@dm1 bin]# ./disql SYSDBA/SYSDBA@localhost:5237服务器[localhost:5237]:处于普通打开状态登录使用时间: 5.547(毫秒)disql V7.6.0.96-Build(2018.09.19-97292)ENTConnected to: DM 7.1.6.96SQL> create table tab1( n...

2019-11-26 16:14:48 718

原创 达梦数据库类型的精度与标度

NUMBER[(精度 [, 标度])]NUMBER数据类型用于存储零、正负定点数。其中:精度是一个无符号整数,定义了总的数字数,精度范围是1至38。标度定义了小数点右边的数字位数。一个数的标度不应大于其精度,如果实际标度大于指定标度,那么超出标度的位数将会四舍五入省去精度与标度比如NUMBER(4,1)定义了小数点前面3位和小数点后面1位,共4位的数字,范围在-999.9到999.9。所...

2019-11-26 16:11:33 6346

原创 爱啃难题好处多

一.抛观点宝贝,当你习惯不怕困难,能把难题当乐趣,享受这个过程时,你的起点就是高出别人一大截了。比如围棋最低弈城中9,读书最低985,身体比大多数人都好…另外,爸爸最了解自己的孩子,你无论记忆力还是逻辑推理能力都是强过爸爸的,家庭的基因也不差啊,所以你一定要有解难题的自信。二.说好处爸爸罗列一些具体的好处:难题会让你思考很久,动脑子,越动越聪明;难题会让你知识点记得非常牢,再也忘不掉,甚...

2019-11-26 15:53:38 2240 2

原创 pg深入浅出系列--库的基本访问

当前PostgreSQL算是开源数据库中比较火的一款,社区目前比较活跃,目前有不少国产数据库是基于pg进行改造的。pg默认的数据库叫postgres ,用户也是postgres。接下来给大家说明针对WIDOWS版的一系列最小化操作(LINUX版其实大同小异),先不展开。1.建库下一步下一步就暂时不贴图了,装好后这样...

2019-11-26 15:36:36 868

原创 达梦数据库分区表--局部唯一索引的限制

DM数据库分区表有这么一个限制:局部唯一索引必须包含全部分区列.SQL> create table range_part_tab (id number,deal_date date,area_code number,nbr number,contents varchar2(4000))2 partition by range (deal_date)3 ...

2019-11-14 17:40:53 2024

原创 达梦数据库的KEEP缓存

在说DM的KEEP缓存之前,我们先说说Oralce的KEEP缓存大家都有接触过Oracle的KEEP缓存,把表和索引keep到buffer中先说一下前提条件:1.确保确保db_keep_cache_size 不为0,2. 确保表和索引在KEEP区alter table xxx storage(buffer_pool keep);,3.把表和索引的记录都进去。SQL> alter...

2019-11-14 17:23:41 1279

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除