SinoDB
请叫我曾阿牛
宅男,技术控
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
查询智能大对象的存储位置
测试用的表并插入数据:create table blob_test (objekt_nr int,doc blob) put doc in (sbdbs01,sbdbs02,sbdbs03);insert into blob_test values (42, filetoblob("/etc/passwd","server"));insert into blob_test values (43, filetoblob("/etc/hosts","server"));insert into原创 2022-01-04 11:30:28 · 588 阅读 · 0 评论 -
如何启用 DIRECT_IO ?
什么是DIRECT_IO?This is an onconfig parameter that allows Informix to override the cache layer of file systems,so IDS writes and reads using the Kernel Asynchronous IO bypassing the filesystem's caching mechanism.This offers virtually the same benefits原创 2021-12-23 12:46:31 · 1008 阅读 · 0 评论 -
数据库升级或重建后需要检查的内容
1、检查系统保留页 oncheck -pr oncheck -cc2、检查extents oncheck -ce3、检查system catalog tables oncheck -cc dbname4、检查数据和索引 oncheck -cDI dbname5、检查大对象 oncheck -cs sbspace_name oncheck -cS sbspace_name...原创 2021-12-19 12:49:45 · 585 阅读 · 0 评论 -
-244 Could not do a physical-order read to fetch next row 产生的根本原因
Without the index every update and delete has to scan the entire table looking for matching rows to update/delete. Each row as it is examined has to be locked, dirty read or no dirty read, for a fraction of a second. As multiple scans zip thr...原创 2021-12-17 16:52:16 · 1111 阅读 · 0 评论 -
通过commons-dbutils连接数据库
1、需要下载commons-dbutils.jar2、pom.xml的内容增加如下 <dependency> <groupId>commons-dbutils</groupId> <artifactId>commons-dbutils</artifactId> <version>1.4</version> <.原创 2021-11-20 17:50:50 · 668 阅读 · 0 评论 -
JAVA insert数据库demo
import java.sql.*;public class TestJson { private static String URL_STRING = "jdbc:gbasedbt-sqli://192.168.69.219:9022/ttdb:" + "GBASEDBTSERVER=gbase01;NEWCODESET=GB18030,GB18030-2000,5488;" + ...原创 2021-11-20 11:49:43 · 282 阅读 · 0 评论 -
JAVA查询demo
import java.sql.*;public class seljson { private static String URL_STRING = "jdbc:gbasedbt-sqli://192.168.69.219:9022/ttdb:" + "GBASEDBTSERVER=gbase01;NEWCODESET=GB18030,GB18030-2000,5488;" + "DB...原创 2021-11-20 11:48:10 · 250 阅读 · 0 评论 -
数据库存入大量文本JAVA示例
1、在数据库上创建sbspaces2、在数据库上创建包含json类型的表,json列用来存储大量的文本3、JAVA测试代码样例如下import java.sql.*;public class TestJson { private static String URL_STRING = "jdbc:gbasedbt-sqli://192.168.69.219:9022/ttdb:" + "GBASEDBTSERVER=gb原创 2021-11-20 01:38:01 · 1422 阅读 · 0 评论 -
迁移数据库文件,释放空间
现象: /目录空间已经100%耗尽,无法扩容,影响业务的开展。为了释放/空间建议把数据库的chunk文件做迁移。具体方法如下:1. 关闭数据库 onmode -ky2.移动文件 cd /opt/GBASE/gbase8s/gbaseserver_dbs mv rootdbs /data/gbase_dbs/. ... ... #其他chunk全部迁移3.赋权 cd /data/gbase_dbs chmod 660 ...原创 2021-11-19 18:56:27 · 349 阅读 · 0 评论 -
为数据库创建一个只读用户
#root用户执行groupadd $groupnameuseradd -g $groupname -s /bin/bash -d /home/$username -m $username#上述步骤中的groupname也可以使用gbasedbt的组或其他组都行passwd $username#gbasedbt用户执行dbaccess $dbname -grant connect to $username; //给用户赋予connect角色权限revok...原创 2021-11-12 14:19:13 · 1293 阅读 · 0 评论 -
CentOS 8.4 上安装需要的依赖包
数据库的安装需要:/usr/lib64/libncurses.so.5/usr/lib64/libnsl.so.1/usr/lib64/libtinfo.so.5这个几个软链接需要提前准备一下,否则在安装过程中会有问题原创 2021-11-06 20:18:40 · 633 阅读 · 0 评论 -
什么是netnorm
When a database server completes all requested work from the client and is waiting for the next request, it parks itself to wait for a condition.If the connection is over a network, the condition is called netnorm.If the connection is a shared memory c原创 2021-10-27 13:20:35 · 251 阅读 · 0 评论 -
查询持有锁的会话和请求锁的会话之间的冲突关系
select e.sid as owner_sid,e.username as owner, hex(c.partnum) as partnum,hex(c.rowidr) as rowid, a.sid as waiter_sid,a.username as waiterfrom sysscblst a, sysrstcb b, syslcktab c,systxptab d, sysrstcb ewhere a.addre.原创 2021-10-27 10:36:44 · 139 阅读 · 0 评论 -
oncheck命令和SMI的对应关系
原创 2021-10-27 10:28:21 · 208 阅读 · 0 评论 -
onstat 命令和SMI的对应关系
原创 2021-10-27 10:27:25 · 144 阅读 · 0 评论 -
oncheck -pt dbname:tabname对应的SMI
elect tn.dbsname, tn.tabname, ti.*from systabinfo ti, systabnames tnwhere ti.ti_partnum=tn.partnumand tn.dbsname='ttdb1'and tn.tabname='t1'原创 2021-10-27 10:20:21 · 308 阅读 · 0 评论 -
查看当前运行线程所打开表的信息
select u.us_sid as session_id,u.us_name as user_name,hex(l.lk_partnum) as partnum,hex(l.lk_rowid) as rowidfrom sysuserthreads u,syslocktab l,systrans twhere l.lk_owner=t.tx_addrand t.tx_owner=u.us_address原创 2021-10-27 09:52:03 · 139 阅读 · 0 评论 -
查看session,user,table,锁的对应关系
InnoDB存储引擎可以对DML操作--INSERT、DELETE、UPDATE都进行缓冲,他们分别是:Insert Buffer、Delete Buffer、Purge Buffer。Change Buffer适用对象是非唯一的辅助索引。原创 2021-10-27 09:41:43 · 177 阅读 · 0 评论 -
通过SMI查询逻辑日志的信息
select number,substring(casewhen (bitval(flags,'0x1'))=1 then 'U'when (bitval(flags,'0x8'))=1 then 'A'else '-'end|| '-' ||decode(bitval(flags,'0x4'),1,'B','-')|| '-' ||decode(bitval(flags,'0x2'),1,'C','-')from 1 for 7) as flags,uniqid,size,used.原创 2021-10-27 00:20:23 · 164 阅读 · 0 评论 -
如何查看数据库的字符集
dbaccess sysmaster - select * from sysdbslocale where dbs_dbsname not like 'sys%';GB18030-2000 5488utf8 573728859-1 819常用的基本上就是如上几种, 需要注意是否开启了GL_USEGLU环境变量。注意: 1。 是每个database一个字符集,没有办法...原创 2021-10-21 16:07:00 · 4249 阅读 · 0 评论 -
PDQ相关原理
set PDQPRIORITY <number><number> 的取值范围是0~100,0表示不使用并行,1~100表示打开了并行,配置越大,并行查询使用的内存越大。并行查询的内存上限是通过ds_total_memory控制的,如果有多个用户同时执行并行数据库查询,那么你需要在应用程序中控制每个用户使用的内存。内存的申请是以quantum为单位的,它的值由两个配置参数ds_total_memory和ds_max_queries决定。 quantum=ds_t...原创 2021-10-17 20:11:25 · 650 阅读 · 0 评论 -
数据压缩相关技术
压缩的技术实现(1).压缩评估execute function task("table estimate_compression", "tabname", "dbname", "informix");(2).压缩execute function task("table compress repack shrink", "tabname", "dbname", "informix");(3).解压execute function task("table uncompress", "t..原创 2021-10-16 13:54:13 · 479 阅读 · 0 评论 -
监控表的IO
dbaccess sysmaster -SELECT p.tabname,sum(sin.ti_nrows) nrows,format_units(sum(sin.ti_nptotal),max(sd.pagesize)) total_size,format_units(sum(sin.ti_npused),max(sd.pagesize)) used_size,sum(seqscans) as seqscans ,sum( pagreads) diskreads,sum(...原创 2021-10-16 13:48:40 · 168 阅读 · 0 评论 -
监控表的空间使用
dbaccess sysmaster -包含分片:selectst.dbsname databasename,st.tabname,sd.name dbs_name,ti_nextns extents,sin.ti_nrows,sin.ti_pagesize, sin.ti_rowsize,sin.ti_nptotal nptotal, format_units(sin.ti_nptotal,sd.pagesize) total_size,sin.ti_npused npuse.原创 2021-10-16 13:44:28 · 171 阅读 · 0 评论 -
通过 sysmaster:syssqexplain 优化SQL
selectfirst 25 sqx_estcost,sqx_estrows,sqx_sqlstatementfrom sysmaster:syssqexplainorder by sqx_estcost desc;更多的属性,如通过sqx_seqscan找出顺序扫描的SQL,通过sqx_dsksorts找到有磁盘排序的SQL。其他的属性如下:sqx_bufreads,sqx_pagereads,sqx_bufwrites,sqx_pagewrites,sqx_totsort原创 2021-10-16 13:39:11 · 239 阅读 · 0 评论 -
查询发生了顺序扫描的表
dbaccess jkl99 -select p.dbsname, p.tabname, t.nrows, sum(p.seqscans) tot_seqscansfrom sysmaster:sysptprof p, jkl99:systables twherep.dbsname not like "sys%" and p.dbsname = "jkl99" and p.tabname = t.tabnameand t.tabid > 99 and t.n...原创 2021-10-16 13:34:42 · 118 阅读 · 0 评论 -
查看表上锁的个数
dbaccess sysmaster -selecttabname, sum(pf_rqlock) as locks,sum(pf_wtlock) as lockwaits,sum(pf_deadlk) as deadlocksfrom sysactptnhdr,systabnameswheresystabnames.partnum = sysactptnhdr.partnumand dbsname = "niosdb"--and pf_wtlock >=0--...原创 2021-10-16 13:24:20 · 135 阅读 · 0 评论 -
查看表的锁模式
dbaccess sysmaster -select st.owner,st.dbsname,t.tabname, dbinfo('UTC_TO_DATETIME',ti.ti_created) tab_createtime,t.locklevel from jkl99:systables t, sysmaster:systabinfo ti,sysmaster:systabnames stwhere t.tabid>99 and ...原创 2021-10-16 13:21:06 · 135 阅读 · 0 评论 -
DBUPSPACE 的用法
setenv DBUPSPACE 8192:50:3其中三部分数字的含义如下:8192指占用磁盘的排序空间为8192K,缺省是1M; 50指申请50M的内存排序空间,缺省是15M;这个配置主要和表的数据量有关; 3指可以使用索引中的信息来排序生成统计更新信息;在打开SQL TRACING之后,可以通过下面的命令查看利用了磁盘排序的update statistics语句:select sql_statement from sysmaster:syssqltracewhere sql_原创 2021-10-16 13:13:55 · 145 阅读 · 0 评论 -
隔离级别的解释
离级别: 脏读(dirty read):可以读到别人没有递交的数据; 当一个表中在执行插入或者删除操作时,你想知道插入和删除的速度,这种场景适用于脏读;当一个用户A做查询或者汇总时,另外一个用户B同时在往表中插入数据,如果用户A使用了脏读的事务隔离级别,可能会导致汇总的数据不真实。 最后递交读(last committed):读的是上一个人最后一次递交的数据; 当一个用户A做查询或者汇总时,另外一个用户B同时在往表中插入数据,用户A并需要查询用户B插入的那些没有递交的数据,因此最后递交读原创 2021-10-16 13:09:00 · 194 阅读 · 0 评论 -
SQLTRACE的几个用法
1. 打开SQL TRACEdatabase sysadmin;execute function task ("set sql tracing on",100000, "4k", "low","niosdb")2. 查看TRACE缓冲中执行最慢的20个SQL;a>按最大执行时间排序select first 20 sql_maxtime,sql_executions,sql_estcost,sql_statement from sysmaster:syssqltrace order by 1原创 2021-10-16 13:02:08 · 590 阅读 · 0 评论 -
sequence 的使用方法
create sequence seq_2increment by 1start with 1maxvalue 100minvalue 0cyclecache 100order;CREATE TABLE tab1 (col1 int, col2 int);INSERT INTO tab1 VALUES (0, 0);INSERT INTO tab1 (col1, col2) VALUES (seq_2.NEXTVAL, seq_2.NEXTVAL);原创 2021-10-12 08:26:50 · 467 阅读 · 0 评论 -
wm_concat 自定义函数
函数内容如下drop function if exists str_sum_init;CREATE FUNCTION str_sum_init (dummy lvarchar(10000)) RETURNING lvarchar(10000); RETURN '';END FUNCTION;drop function if exists str_sum_iter;CREATE FUNCTION str_sum_iter (result lvarchar(10000), value原创 2021-10-09 10:32:58 · 589 阅读 · 0 评论 -
关于磁盘预读
数据库磁盘预读设计的初衷是为减少IO等待,通过顺序扫描提高IO的效率。原理大致如下:1、当某个数据库操作,数据库需要从磁盘上频繁读取数据的时候,会产生相对较多的IO等待,影响性能;2、为了避免这个情况,数据库采用了预读的机制,也就是当读取的内存中还有若干页需要处理的时候就开始触发磁盘预读,而且是预读若干连续的数据页(降低IOPS的需求),从而提高效率gbase8s/informix涉及预读的有两个参数 RA_PAGES和RA_THRESHOLD。RA_PAGES:指定数据库服务器执行原创 2021-09-28 21:21:00 · 1250 阅读 · 0 评论 -
获取表的partnum的方法
partnum 用来唯一标识一个特定的tblspace。对于分片表,每个分片上都会有一个tblspace,也就是一个partnum。非分片表partnum的查询方法如下: select hex(partnum) from systables where tabname = "table_name"; database sysmaster; select hex(partnum) from systabnames where tabname = "table_name"; .原创 2021-08-29 15:57:39 · 552 阅读 · 0 评论 -
今天遇到一个951的问题
今天遇到一个951的问题,通过odbc无法登陆,始终提示用户名和密码不对。dbaccess -> connect 也是无法登陆刚开始以为是OS的账户安全策略的问题,但是ssh和telnet都是可以登录成功的。百思不得其解。。。。。最后发现有人修改oninit程序的属主。。。。。。。。。。。。罪过。。。。。。罪过。。。。。南无阿弥陀佛。。。。。阿门。。。。。。。。。你们的操作为什么如此惊艳???...原创 2021-08-12 18:51:47 · 443 阅读 · 0 评论 -
HDR的三种同步模式
1)完全同步模式(Fully synchronous mode)•主实例上的事务需要得到HDR备实例的事务完成的确认信息才会完成•数据完整性最优•若客户端应用使用无缓冲日志,有许多小事务,系统性能会受到影响2)近同步模式(Nearly synchronous mode)•主实例上的事务需要得到HDR备实例的收到事务的确认信息才会完成3)异步模式(Asyn chronous mode)•事务在完成前不需要HDR备实例的确认信息•系统性能较好•若发生服务器故障,数据.原创 2021-07-15 14:35:52 · 537 阅读 · 0 评论 -
信任关系失败的一个案例
故障现象:1. 之前两台数据库配置了信任关系,一直OK2.今日突然发现A机不能访问B;但是B机可以访问A3.发现只有/etc/host.equiv,没有新建 .netrc等;4.发现原来设置的信任关系的文件没有修改过5. dbaccess -> connect日志如下6. online.log出现了956的报错,且显示的不信任地址为一个陌生地址结论:1。瞬间明白了,应该是网络设备在地址映射的时候搞错了,修改B机的/etc/hosts中的IP地址应该是可以解决问题原创 2021-07-15 12:13:06 · 377 阅读 · 0 评论 -
informix数据库审计配置
onaudit -l 1onaudit -p /tmp/auditonaudit -a -u usr1 -e +CRTB,DRTB建议在测试环境中配置drop table的审计,以防万一。数据库的审计掩码很多,需要单独下载:原创 2021-06-18 11:57:07 · 278 阅读 · 0 评论 -
性能优化---SQL语句缓冲(SSC)
SQL语句缓冲(SQL Statement Cache, SSC) 是共享内存中的一块区域,用于在用户session之间存储和共享相同语句的数据结构§ 若多个用户执行相同的SQL语句,使用SQL语句缓冲将提高应用的性能。§ 当SQL语句的字符完全一致时,数据库将认为语句是一样的§ SSC特性有以下优点:– 减少内存消耗– SSC中缓存的SQL语句执行速度更快,数据库服务器可以跳过解析和优化的阶段...原创 2021-06-13 06:33:58 · 727 阅读 · 0 评论
分享