db
文章平均质量分 90
记录和数据库相关的一些技术,主要是oracle,mysql
cfy_zybing
这个作者很懒,什么都没留下…
展开
-
MySQL的varchar类型字段
业务变化,前端要求增加一个传输字段的长度,得到的一些mysql varchar字段的知识;目录varchar长度是字符长度,不是字节长度:VARCHAR的存储: VARCHAR的长度扩充--能不能快速varchar长度是字符长度,不是字节长度:现在使用的,应该都是 mysql5 以上的版本,所以才会说 varchar的长度是字符长度,不是字节长度;这个是mysql4到mysql5的变化,mysql4和以前版本,varchar是按照字节长度来算的;到了mysql5开始,按照字...原创 2020-07-13 20:00:05 · 715 阅读 · 0 评论 -
MySQL字符集(表情包)
刚上mysql,经常发生前段传过来的内容入库发生异常,数据库报: java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x8C\xB8’ for column ‘mechant_name’ at row 1发现,数据库建表时候,用的是utf8字符集,传进来了表情包,表情包是4个字节的;通常情况,Mysql数据编码格式为“utf-8”,对于汉字来说足够;Mysql中utf8占3个字节,但是,3个字节对于表情符号是不够的,需4个字节;此时原创 2020-06-21 12:36:01 · 1314 阅读 · 0 评论 -
MySQL自增列id:插入的值大于id的自增值
从Oracle切换到阿里云; 云下的Oracle数据需要同步到Polardb(mysql8),云上的新系统(rds--mysql5.7)数据也要同步到PolarDB的同一张表里;rds库中,有自己的id自增列, 同步到polardb上使用rds自己生成的值(不使用polardb的id自增值);Oracle数据没有id列,通过Polardb的id自增列自动生成值;因此为了避免id冲突,将...原创 2020-04-29 10:56:45 · 586 阅读 · 0 评论 -
MySQL设置了useCursorFetch,FetchSize参数的影响
从MySQL中获取一定量的数据出来,如果不设置 useCursorFetch,mysql会把所有的数据从数据库端搬到客户端后再做处理,这样我们原先使用ResultHandler的方式节省内存的打算就落空了。还好MySQL在连接串上,使用了useCursorFetch=true,就可以达到将部分数据搬到客户端就进行处理,那么这时 FetchSize 对系统会产生什么影响;以下FetchSiz...原创 2020-04-28 19:16:37 · 8313 阅读 · 0 评论 -
MySQL数据库连接串的两个参数:rewriteBatchedStatements=true&useCursorFetch=true
最近在将数据库,从Oracle迁移到MySQL,遇到了不少数据库不同造成的问题,尤其是在批处理的时候,MySQL的表现和Oracle完全不一样,查了不少资料,问题解决了,除了程序部分,MySQL的数据库连接串上,要增加 useCursorFetch 和 rewriteBatchedStatements 参数useCursorFetch : 这个在前面的记录中已经写过,在查询大批量的数据时,My...原创 2020-04-27 16:17:03 · 4125 阅读 · 1 评论 -
Round函数
Oracle - Round函数Round( ) 函数传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果语法ROUND( number, decimal_places )number : 需四舍五入处理的数值 decimal_places : 四舍五入 , 小数取几位 ( 预设为 0 )返回值类型数字例子select round(12...原创 2011-03-08 09:40:47 · 304 阅读 · 0 评论 -
【技术】检查该重新编译的索引
需要重新编译的条件: Rebuild the index when : - deleted entries represent 20% or more of the current entries - the index depth is more then 4 levels Possible candidate for bitmap index : - wh...原创 2011-03-08 09:54:15 · 109 阅读 · 0 评论 -
忘记了sys的密码
机器已经很久前安装的,忘记了sys和system的密码; 登陆到oracle数据库的机器上 sqlplus '/ as sysdba' 像一个普通用户一样,修改sys或者system的密码 alter user sys identified by newpasswd; ------------------------------------------...原创 2011-03-08 13:20:52 · 123 阅读 · 0 评论 -
DBMS_SQL包使用
通常运用DBMS_SQL包一般分为几步:1. open cursor: 打开cursor2. parse cursor:解析你要执行的SQL语句3. bind variable:如果要执行的SQL语句中包含变量,在此就需要绑定变量4. execute:执行SQL语句5. close cursor:在执行后关闭此cursor.如果你还需要返回执行SQL的结果集,还需要使用define_column,...原创 2011-03-09 09:24:34 · 151 阅读 · 0 评论 -
index_stats视图各列的含义
index_stats视图各列的含义index_stats视图来收集B树索引的统计信息。可以从中查到该用户拥有索引的名字,高度等等详细信息,以下是其具体的列名及其含义。INDEX_STATSstatistics on the b-treeColumns ___________________________ OPT_CMPR_PCT...原创 2011-03-09 10:34:51 · 249 阅读 · 0 评论 -
eXtremeDB微秒级实时数据库简介
eXtremeDB微秒级实时数据库简介 eXtremeDB实时数据库是美国McObject公司于上世纪九十年代末推出的全世界第一款全内存式实时数据库,特别为高性能、低开销、稳定可靠的极速实时数据管理而设计。 eXtremeDB的性能可以达到微秒一级的惊人速度。eXtremeDB能够达到这样惊人的极限速度,是由其对市场的独特理解、长期的行业经验、持续不断的创新精神和革命性的体系结构等...原创 2011-10-26 13:47:33 · 591 阅读 · 0 评论 -
【实践】通过v$object_usage监控索引的使用情况
v$object_usage可以用来监控系统中索引的使用情况select * from v$object_usage;只是当前用户下有效,只能看到当前用户下的监视索引。开关监控:alter index index_name monitoring usage; alter index index_name nomonitoringusage; ...原创 2011-04-12 11:37:29 · 294 阅读 · 0 评论 -
Oracle的全文检索
Oracle的全文检索,以前用过,效果还可以,就是耗资源。 现在这里也在考虑使用全文检索,自己印象中有两种:1. Oracle的全文检索(CTX),虽然其他数据库也有全文检索,不过这里用的是Oracle,也就看看Oracle的全文检索 --- 以前用的全文检索也是Oracle,正好数据库一样; 2. Apache基金会的Lucene, 后续有企业级升级版应用 Solr...原创 2016-08-09 15:43:23 · 221 阅读 · 0 评论 -
查询某个字段都是字母
select * from (select case when regexp_like(bank_account_name,'.([a-z]+|[A-Z])') then bank_account_name else null end ccfrom tb_pay_business ttwhere tt.uss_trans_date = '20170124') bbwhere bb.cc is ...原创 2017-02-07 14:33:24 · 294 阅读 · 0 评论 -
【实践、技术】解决一起索引字段经常更新造成的索引效率低下的问题
操作系统:数据库版本: 数据库机器读盘厉害,由于没有完整的检测手段以及历史累计数据,因此只能用简单的方式先进行检查: 检查消耗磁盘多的SQL语句: 从V$SQLAREA中查询最占用资源的查询select b.username username ,a.disk_reads reads ,a.exe...原创 2011-03-07 10:09:25 · 1214 阅读 · 0 评论 -
【技术】通过v$sqlarea,v$sql查询最占用资源的查询
-----------------------v$sqlarea,v$sql-----------------------从V$SQLAREA中查询最占用资源的查询select b.username username ,a.disk_reads reads ,a.executions exec ,a.disk_reads...原创 2011-03-03 17:53:35 · 103 阅读 · 0 评论 -
【实践】对于绑定变量看执行计划
基础: 从Oracle9i,开始的Bind Peeking(http://www.oraclefans.cn/forum/showtopic.jsp?rootid=5467&CPages=1)但是使用绑定变量有一个不好的地方,就是对于访问具有倾斜的列,可能使用错误的执行计划。 当SQL第一次执行的时候,优化器会根据绑定变量来确定执行计划(如果存在柱状图)...原创 2011-05-12 14:41:34 · 173 阅读 · 0 评论 -
重温Oracle的进程
在跟踪繁忙Oracle进程时,发现在 user_dump_dest (udump目录)目录中,没有生成的 trace 文件 又来随意翻翻,发现在background_dump_dest(bdump目录)目录中找到了对应的trace文件,根据生成的trace名字来看,应该是Oracle的进程,而不是用户进程。(如何判断是: 1. 根据时间: 文件生成的时间和进行trace sess...原创 2011-04-14 09:48:02 · 90 阅读 · 0 评论 -
[转载]ORACLE中SQL TRACE和TKPROF的使用
[转载]ORACLE中SQL TRACE和TKPROF的使用分类: 甲骨文Oracle原文地址:http://blog.chinaunix.net/u/21174/showart_364608.h SQL TRACE 和 tkprof sql语句分析工具 一 SQL TRACE 使用方法: 1.初始化sql trace 参数: ...原创 2011-04-14 11:01:11 · 96 阅读 · 0 评论 -
SYS_CONTEXT可以获取的一些环境参数
selectSYS_CONTEXT('USERENV','TERMINAL') terminal,SYS_CONTEXT('USERENV','LANGUAGE') language,SYS_CONTEXT('USERENV','SESSIONID') sessionid,SYS_CONTEXT('USERENV','INSTANCE') instance,SYS_CONTEXT('USER...原创 2011-05-03 10:35:06 · 117 阅读 · 0 评论 -
【实践】对v$object_usage的内容进行检查(2011.4月份进行统计的)
重温一下监控的语句: alter index index_name monitoring usage; alter index index_name nomonitoringusage; (参见: 通过v$object_usage监控索引的使用情况)=========================================================...原创 2011-05-03 15:18:41 · 96 阅读 · 0 评论 -
【技术】得到外键对应的索引MatchForeignKeyIndex
Create Or Replace FUNCTION MATCHFOREIGNKEYINDEX( i_constraint_name In varchar , i_owner In varchar default null )return varchar2is FK_owner varchar2(100); -- 外键的拥有者 Fk_tab...原创 2011-05-03 15:27:36 · 130 阅读 · 0 评论 -
【实践】将无用的索引提取出来
将无用的索引提取出来:条件:1. monitoring一段时间,没有使用过2. 不属于PK、Unique约束的一部分3. 和外键无关(这个里面有漏洞,如果一个外键次序和多条索引匹配,则一个都不匹配) 满足以上3个条件,认为这个索引是无效的,没有用处的 SELECT * FROM v$object_usage WHERE used = 'NO' ...原创 2011-05-03 16:54:20 · 105 阅读 · 0 评论 -
【技术】找出oracle没有创建索引的外键
/* Formatted on 2011/05/04 14:53 (Formatter Plus v4.8.7) */SELECT table_name, constraint_name, cname1 || NVL2 (cname2, ',' || cname2, NULL) || NVL2 (cname3, ','...原创 2011-05-04 14:59:29 · 152 阅读 · 0 评论 -
【技术】一个Oracle巡检工具
Oracle巡检工具,不错的原创 2011-05-04 15:32:18 · 343 阅读 · 0 评论 -
【技术】Oracle跟踪事件的包括那些
以下的文章主要是对Oracle跟踪事件的具体描述,其中主要包括Oracle跟踪事件之一Oracle跟踪文件的具体内容介绍,以及Oracle跟踪事件之二Oracle跟踪事件的详细内容描述,以下就是文章的具体内容描述。一、Oracle跟踪事件之一Oracle跟踪文件Oracle跟踪文件分为三种类型,一种是后台报警日志文件,记录数据库在启动、关闭和运行期间后台进程的活动情况,如表空间...原创 2011-05-05 13:41:50 · 177 阅读 · 0 评论 -
【脚本】获取当前最忙的进程的sql语句
## 获取当前最忙进程执行的SQL语句# --- 使用条件: 以Oracle运行的用户进行执行(只捕获这个用户的最忙进程)# --- 调用Oracle过程: getprocesssql.sql## changelog:# 2011-05-10: create by zhangyb : zybingliu@gmail.com# 2011-05-11...原创 2011-05-10 13:50:15 · 91 阅读 · 0 评论 -
【技术】执行计划中的一些参数理解
执行计划出来,有一些参数: Cost=1908 Card=2178710 Bytes=39216780 Cost: 指cbo中这一步所耗费的资源,这个值是相对值。Card: 是指计划中这一步所处理的行数Bytes:指cbo中这一步所处理所有记录的字节数,是估算出来的一组值。 现在来解释一下每一个statistics:1、DB Block G...原创 2011-05-10 17:57:21 · 237 阅读 · 0 评论 -
【脚本】trace当前最忙的进程
跟踪当前系统最忙的Oracle进程,生成trace文件,生成好用tkprof进行解读原创 2011-05-11 15:31:37 · 96 阅读 · 0 评论 -
【技术】执行计划 --- 几种方式
看Oracle的执行计划: 1. 使用SQL_TRACE (set autotrace trace[only])2. V$sql_plan3. EXPLAIN PLAN4. 10046 event5. set autotrace .... 1. 使用SQL_TRACE a). 全局的: 在参数文件(pfile/spfile)中指定: sql...原创 2011-05-12 14:30:44 · 192 阅读 · 0 评论 -
捕获进程在执行的SQL语句
方法1: 根据服务器processID获取执行的SQL语句 prompt 根据服务器processID获取执行的SQL语句ACCEPT pid NUMBER prompt '输入服务器的进程编号: ' ;set serveroutput onset verify offdeclare sqltext varchar2(4000) ;...原创 2011-04-13 10:13:46 · 394 阅读 · 0 评论