自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

龙山溪笔记

关注国产数据库技术

  • 博客(39)
  • 资源 (2)
  • 收藏
  • 关注

原创 dmfldr指定某列为缺省值进行导入

2.准备数据文件test.txt,假设存放在D:\dmdbms 目录下。3.准备控制文件test.ctl,假设存放在D:\dmdbms 目录下。1.创建表,第三列设置为缺省值。

2023-10-24 09:43:36 90

原创 MySQL insert ignore 的替代方法

最近有朋友问到MySQL中insert ignore 的用法在达梦中如何替代?

2023-10-24 09:42:32 98

原创 达梦中使用自定义聚集函数实现PG中bit_or的功能

现在,就可以使用这个`bit_or_agg`函数来实现PostgreSQL的`bit_or`聚集函数功能了。在DM中,可以通过创建自定义的聚集函数来实现PostgreSQL的bit_or聚集函数功能。

2023-06-15 11:16:13 213

原创 达梦数据库判断表或视图是否存在高效写法

从执行计划可以看出,只是判断表或视图是否存在,通过动态视图查询的SQL执行计划过于复杂,这是因为user_objects这个动态视图过于复杂,这样查单条SQL性能没问题,但是如果并发较多或系统种对象过多的时候就会出现性能问题。那么是否有性能更好的方法呢?从执行计划可以看出,这个语句性能会好很多。

2023-03-30 14:07:18 1095 1

原创 达梦数据库外部表插入数据

利用外部表插入文件数据

2023-03-23 16:50:24 1246

原创 达梦数据库批量插入方法性能比较

达梦数据库各种批量插入方式性能比较

2022-04-07 17:27:39 8364

原创 达梦数据库客户端查询SYSDATE慢8小时解决办法

最近碰到一个管理工具中查询SYSDATE比当前时间慢8小时,和大家分享一下解决过程:本地的DISQL工具查询的SYSDATE是正常的,客户端工具中查询的SYSDATE慢了8小时查了一下数据库服务器的时区是正常的:从V$SESSIONS视图查询客户端的时区发现管理工具建立的连接时区不正常SELECT USER_NAME,CLNT_TYPE,TIME_ZONE,CLNT_IP,CLNT_VER FROM V$SESSIONS;由于管理工具会主动读取dm_svc.conf..

2022-03-31 16:18:34 3051

原创 达梦数据库性能优化一例

最近做一个高并发系统的性能优化,发现一个很有意思的问题,和大家分享一下:现象是系统在高峰期比较卡顿,perf top的图如下:热点很明显,高频sql的执行计划走了全表扫描,但是分析了一遍SQL日志,发现SQL都走了索引,没有走全表扫描,怎么办呢?这时可以开启达梦中的10003 事件的trace来找找全表扫描的SQL--开启全表扫描跟踪alter session 0 set events '10003 trace name context forever, level 1';--关闭

2021-09-23 16:47:02 753 1

原创 达梦中怎么获取某张表的主键列?

-- 根据模式名和表名查询出表的主键列,将实例中的DEM换成对应的模式名,ADMIN_USER换成对应的表名即可SELECT A.OWNER , A.TABLE_NAME, WM_CONCAT(B.COLUMN_NAME) PK_COLUMNSFROM ALL_CONSTRAINTS A, ALL_CONS_COLUMNS Bwhere A.CONSTRAINT_type='P' AND

2021-09-10 11:25:47 2641 1

原创 达梦数据库中如何改写MySQL order by in() 语法

MySQL数据库中有一种特殊的语法,order by if() 和order by in(),可以在order by子句中加入过滤条件,将符合条件的数据放到结果集的最前面或者最后面,那么在达梦数据库中该如何做呢?create table test_in(id int,type int);insert into test_in values(1,1);insert into test_in values(2,2);insert into test_in values(3,2);insert i

2021-07-21 09:48:50 1257

原创 Oracle 中的Userenv() 达梦中如何处理?

ORACLE USERENV函数返回关于当前会话的信息。此信息可以用于编写一个应用程序特定的审计跟踪表或确定特定于语言的角色目前使用的会话。参数 功能 CLINET_INFO 返回最高可达64个字节存储的用户会话信息,可由应用程序使用DBMS_APPLICATION_INFO包。 ENTRYID 返回当前审计条目编号。审计的EntryID序列细粒度的审计记录和定期审计记录之间共享。在分布式SQL语句不能使用这个属性。 ISDBA 如果用户已经被认证为dba;或者是通过

2021-05-06 16:01:17 883

原创 MYSQL DEFAULT CURRENT_TIMESTAMP 在达梦数据库中如何处理?

MySql数据库中在创建时间字段的时候DEFAULT CURRENT_TIMESTAMP表示当插入数据的时候,该字段默认值为当前时间ON UPDATE CURRENT_TIMESTAMP表示每次更新这条数据的时候,该字段都会更新成当前时间这两个操作是mysql数据库本身在维护,所以可以根据这个特性来生成【创建时间】和【更新时间】两个字段,且不需要代码来维护如下:```languageCREATE TABLE `TEST_CURRENT_TIMESTAMP` ( `fawen`..

2021-05-06 14:23:53 11955 2

原创 达梦数据库初始化“大小写敏感”参数解析

大家在使用达梦数据库的时候经常对大小写敏感这个产生困惑,下面给大家详细解读一下1.大小写敏感参数是什么?大小写敏感参数是达梦初始化数据库的时候的一个全局参数,默认是敏感的,并且设定后不可更改--dbca 配置助手界面如下:--dminit命令行工具配置如下:dminit path=d:\dmdbms\dataCASE_SENSITIVE=1--查询大小写敏感设置的值SELECT CASE_SENSITIVE(); --结果为1是大小写敏感,结果为0是不敏感2...

2021-01-06 21:39:50 3229

原创 达梦数据库:“超出全局hash join空间”问题处理

--项目中经常出现HJ_BUF_GLOBAL_SIZE设置不当造成应用报错的问题,详细信息如下: dm.jdbc.driver.DMException: 超出全局hash join空间,适当增加HJ_BUF_GLOBAL_SIZE at dm.jdbc.driver.DBError.throwException(DBError.java:657) at dm.jdbc.a.b.p.H(MSG.java:582) at dm.jdbc.a.b.p.E(MSG.java:542) ......

2020-12-25 13:58:33 5670 3

原创 达梦数据库临时表介绍

最近很多同学问到达梦数据库中如何在存储过程中创建临时表,这里给大家介绍一下:达梦中临时表和oracle一样是全局的,需要先创建后使用,并且用完表结构不会被删除,可以反复使用SQL SERVER中临时表用完表结果是自动删除的,这点有根本性的区别达梦临时表有两种类型:会话级的临时表和事务级的临时表。1)ON COMMIT DELETE ROWS --事务级临时表它是临时表的默认参数,表示临时表中的数据仅在事务过程(Transaction)中有效,当事务提交(COMMIT)后,临时表的暂时段.

2020-11-20 10:32:36 2128

原创 MySQL的 FIND_IN_SET 在达梦中如何转换?

最近有同学在迁移MySQL的时候碰到一个问题:FIND_IN_SET 在达梦中如何转换?其实可以自定义一个FIND_IN_SET函数来解决,参考了一个Oracle解决类似问题的帖子,可以直接用CREATE OR REPLACE FUNCTION FIND_IN_SET ( piv_str1 varchar2, piv_str2 varchar2,

2020-10-29 11:26:44 3534 9

原创 达梦数据库中如何用jdbc获取存储过程中引用游标返回的结果集

1.创建一个包CREATE OR REPLACE PACKAGE PKG_TEST IS TYPE CURSOR_TYPE IS REF CURSOR; --定义游标 PROCEDURE TEST_CURSOR(INPUT varchar, CURSOR_BACK OUT CURSOR_TYPE); END PKG_TEST;CREATE OR REPLACE PACKAGE BODY PKG_TEST ISPROCEDURE TEST_CURSOR(INPUT v

2020-09-11 16:53:48 1799

原创 MySQL UUID函数在达梦中的移植方法

MySQL 中有个UUID的函数,达梦中没有,达梦有guid和newid可以对应如果不想修改代码,可以自定义一个UUID的函数来替代create OR REPLACE FUNCTION uuid return varchar(36)asbegin return newid();end;

2020-09-09 14:48:34 3531

原创 如何查询达梦数据库JDBC驱动的版本号?

笨办法:用解压缩的软件入winrar打开DmJdbcDriver16.jar文件,在META-INF目录下找到MANIFEST.MF文件打开这个文件,里面就记录了DM JDBC驱动的详细版本号:Manifest-Version: 1.0Ant-Version: Apache Ant 1.9.6Created-By: 1.8.0_65-b17 (Oracle Corporation)Implementation-Vendor: DAMENGImplementation-Title: ..

2020-07-07 14:46:47 4415

原创 达梦数据库:关于不走索引的各种神话

案例1:条件列不是索引的首列--创建表CREATE TABLE TAB1(C1 INT,C2 CHAR(1),C3 CHAR(1),C4 INT);--构造测试数据INSERT INTO TAB1SELECT LEVEL C1,CHR(MOD(LEVEL,27)+65) C2,CHR(MOD(LEVEL,27)+65) C3,LEVEL C4FROM DUALCONNECT BY LEVEL<=10000;COMMIT;CREATE INDEX IDX_C1_C2 ON TAB1

2020-06-29 15:09:29 1978

原创 达梦数据库空串和NULL是否等价?

从oracle迁移的同学可能会经常碰到这么一个问题:oracle空串和null是等价的达梦里面默认参数是不等价的 ,is null 不能把空串查询出来,要实现这一点就需要打开oracle兼容的参数。 修改dm.ini 文件COMPATIBLE_MODE = 2 ,重启服务即可...

2020-05-27 12:49:33 2699

原创 达梦数据库如何查出库中所有的自增列?

可以用以下语句来查询库所有的自增列select b.table_name,a.name COL_NAME from SYS.SYSCOLUMNS a,all_tables b,sys.sysobjects c where a.INFO2 & 0x01 = 0x01 and a.id=c.id and c.name= b.table_name

2020-05-27 12:03:43 2306 1

原创 达梦数据库支持fetch CUR bulk collect into XX limits N 么 ?

create TABLE COURSE( COURSE_NO NUMBER(38), DESCRIPTION VARCHAR2(50), COST NUMBER(9,2), PREREQUISITE NUMBER(8), CREATED_BY VARCHAR2(30), CREATED_DATE DATE, MODIFIED_BY VARCHAR2(30), MODIFIED_DATE DATE.

2020-05-18 10:04:15 434

原创 达梦数据库 dm.jdbc.driver.DMException: Communication error 问题分析

最近一个项目里面出现了一个比较诡异的问题: 页面上有个功能不定期的报错Communication error 碰到这种问题我们第一时间怀疑是网络问题,但是客户端工具可以正常连数据库,页面上其他功能也没报错 所以可以排除网络问题,为方便跟踪问题,我们可以开启DM JDBC的日志,获取更详细的信息[ERROR - 2020-04-26 11:36:58...

2020-04-27 12:17:23 37093

原创 达梦数据库飞腾2000+单表插入性能测试

飞腾2000+单表插入性能测试CREATE TABLE t_data_metric_20200316( c_inst_id INT NOT NULL , c_sub_inst_id INT NOT NULL , c_task_time INT NOT NULL , c_insert_time TIMESTAMP NOT NULL DEFAULT CURRENT_TI...

2020-03-16 10:45:47 1199

原创 达梦数据库自动根据机器配置调整性能相关参数

--安装完达梦数据库后,可以执行以下脚本自动调整性能相关的参数--修改调整基础参数declarev_mem_mb int;v_cpus int;mem_per int:=100;MEMORY_POOL int;CACHE_POOL_SIZE int;BUFFER_POOLS int;SORT_BUF_SIZE int;SORT_BUF_GLOBAL_SIZE INT;DI...

2020-03-12 17:20:28 1902

原创 DM7 DUAL伪表兼容性问题分析

最近一个项目中碰到一个很奇怪的问题,拿到表结构和报错的SQL脱敏后如下:create table TEST (ID INTEGER,NAME VARCHAR2(255) ); insert into TEST values (1, 'test1'); insert into TEST values (2, 'test2');commit;MERGE INTO TEST ...

2020-02-03 11:42:03 405

原创 MySQL移植到达梦,sql报错:试图在blob或者clob列上排序比较

这个语句里面涉及到排序的地方有DISTINCT,GROUP BY ,ORDER BY所以应该排查DISTINCT djlx ,GROUP BY cydj.id ,order by cydj.autoid这几项中涉及到的列的数据类型,djlx cydj.id cydj.autoid 这三个列中是否有CLOB或者BLOB类型达梦数据库中是不允许对大字段(clob blo...

2019-12-23 14:36:29 4485 3

原创 达梦数据库JDBC如何开启log日志?

在分析一些疑难的jdbc程序问题的时候,达梦数据库可以开启JDBC日志,从驱动层面提供更详细的信息开启达梦JDBC日志,只需要在URL串中加入两个参数即可,例如:jdbc:dm://127.0.0.1:5236?logLevel=all&logDir=d:\jdbcloglogLevel表示日志级别: 日志按从低到高依次如下(off:不记录;e...

2019-10-18 15:23:51 2465

原创 达梦数据库如何在线替换dm.key

达梦在官网提供了开发版,没有任何的功能和连接限制,可以免费用一年如果后面购买了正式的产品,怎样在线更新dm.key呢?1.找到达梦数据库的$DM_HOME/bin目录2.将dm.key文件拷贝到$DM_HOME/bin目录下3.用SYSDBA登录数据库,执行以下命令SP_LOAD_LIC_INFO();4.执行以下命令确认新的license已生效select * f...

2019-10-11 15:13:13 3860

原创 达梦数据库MANAGER管理工具报错:string index out of range:-52 问题分析

有朋友反馈,达梦客户端管理工具连接服务器报错:这种问题一般是因为客户端和服务器版本不匹配导致的,达梦在不断的更新迭代过程中如果版本跨度太大比如用DM7.1的客户端连DM7.6的服务器或者DM7.6的客户端连DM7.1的服务器就有可能报这个错误。请尽量用匹配版本的客户端连对应的服务器客户端的版本看“帮助”-------“关于”,服务器的版本执行如下SQL:select ...

2019-09-10 16:58:34 3404 2

原创 达梦数据库常用监控语句

--查询活动会话数select count(*) from v$sessions where state='ACTIVE';--结束会话sp_close_session(sessid); --v$session中查出来的session id--找出已执行超过2秒的活动SQLselect * from (SELECT sess_id,sql_text,datediff(ss,...

2019-09-10 16:38:47 1995

原创 达梦数据库proc预编译报错:cannot execute binary file

碰到这种错误第一反应可能是数据库版本和操作系统版本不匹配,或者安装包不完整然后查操作系统版本和数据库版本,发现是匹配的安装包的MD5也是匹配的file /bin/lsfile /home/DM7/bin/dpc_newcd /home/DM7/bin./dpc_new 发现切换到达梦的bin目录下可以执行,那就是环境变量的问题了export LD...

2019-09-09 13:40:58 1086

原创 Mysql insert ON DUPLICATE KEY UPDATE在达梦数据库中如何转换?

很多Mysql转达梦的朋友会碰到这个问题,MySQL 插入数据的时候支持ON DUPLICATE KEY UPDATE对于主键重复的数据可以执行更新而不是报错,目前达梦数据库还未支持这个语法,那应该怎么处理呢?下面给大家介绍一下,在DM和Oracle中都可以改写为merge语句--创建测试表,插入数据DROP TABLE IF EXISTS mRowUpdate;CREATE T...

2019-09-06 09:40:08 3023 1

原创 达梦数据库字符串连接用什么符号?

不同的数据库字符串连接有用不同的符号,比如SQLSERVER用 +,Oracle用 ||早期的达梦版本两种都支持,新版本只支持 ||因为 + 同时作为连接符和运算符会有歧义,例如下面这个sql:select '1' + '1' from dual;结果应该是 2 还是 11 呢?达梦还可以像mysql一样用 concat函数select concat('1','1') ...

2019-09-05 17:16:25 6921

原创 达梦数据库如何查看字符集?

0 表示 GB18030,1 表示 UTF-8,2 表示 EUC-KRselect SF_GET_UNICODE_FLAG();select UNICODE ();字符集在安装初始化库的时候指定,设定后不可更改,请在安装时按照需求设置好后期如果想修改就只能重新初始库!...

2019-09-05 16:42:25 21168

原创 达梦数据库,写SQL如何才能不带上模式名?

经常有朋友问到在DM数据库里面,为何SQL要加上模式名(数据库名)访问呢?其实这是把Mysql或者SQLSERVER的思维代入DM数据库造成的,Mysql的体系架构是单实例多库的,一个用户可以访问多个数据库,然后指定当前数据库写SQL的时候就不用带上数据库名了。 达梦的体系架构是单库多实例的,也就是没有多个数据库的概念了,从Mysql或者SQLSERVER转到达梦,...

2019-09-05 15:01:19 12777 12

原创 达梦数据库,dimp导入报错:该工具不能解析此文件,请使用更高版本的工具

经常有朋友反馈达梦数据库,dimp导入报错:该工具不能解析此文件,请使用更高版本的工具这种问题一般有两种情况:1.用oracle等异构数据库导出的dmp文件来进行导入,这个是不支持的,建议用数据迁移工具。 具体参考下面这个帖子: http://bbs.dameng.com/forum.php?mod=viewthread&tid=51084&...

2019-09-05 10:09:26 13898 5

原创 达梦数据库,disql连接报错:创建SOCKET连接失败,如何解决?

D:\dm7\bin>disql SYSDBA/SYSDBA[-70028]:创建SOCKET连接失败.disql V7.6.0.142-Build(2019.03.12-103811)ENT用户名:这种问题多半是修改了默认端口,请确认dm.ini文件中port_num 端口号是多少如果修改了,端口号,请按照以下方式来登录:D:\dm7\bin>disql SYSDBA/SYSDBA@...

2019-09-05 09:44:02 6788 1

SQL SERVER OLAP总体介绍.doc

SQL SERVER OLAP总体介绍,SQL SERVER OLAP总体介绍

2009-03-16

oracle中文资料

oracle中文资料

2008-01-31

空空如也

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

TA关注的人

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