MySQL连续范围问题
MySQL技术内幕 SQL编程 58页首先创建实验表create table t(a int primary key);insert into t values(1);insert into t values(2);insert into t values(3);insert into t values(100);insert into t values(101);insert into t values(103);insert into t values(104);insert into t values(105);commit;实验...
左百分号模糊查询的优化
先创建一个实验表,只有歌曲名称一列create table test(name varchar2(50));insert into test values('童年');insert into test values('家家有本难念的经');insert into test values('清风月朗&如山如水亦如虹翻唱《因为爱情》');insert into test values('爱的那份痛');insert into test values('倒带');insert in...
MySQL在创建索引之前一定要想到的事情
MySQL在5.5.3版本引入了metadata lock他的本意是解决之前版本事务隔离特性的几个bug,但是引入的问题也不小.先说说MySQL的事务吧.Oracle的事务指的是需要分配回滚段的SQL语句,也就是说select并不是oracle事务的一部分.比如运行一个查询,然后在另外一个会话查询v$transaction,并不会有任何相关的信息.直到事务中出现inse...
行转列计算差值的一种优化
http://blog.itpub.net/29254281/viewspace-1379159/前文在计算差值的时候使用的是union all先通过左连接计算两天签到人数的差值,然后union all当天签到的用户,最后行换列但是这种方式的效率很低,需要扫描两次表.(前文的数据和本文不一致,下面是本文使用的数据)受到where in list的启发,使用如下方式,可以仅扫描一...
MYSQL 锁:metadata lock
转载:http://www.sqlparty.com/mysql-metadata-lock%E6%B7%B1%E5%85%A5/metadata lock的超时时间是lock_wait_timeout,并不是innodb_lock_wait_timeoutMySQL 5.5.3版本中引入了Metadata lock: DDL语句打破了事务的隔离级别 在5.5.3版本之前,MySQL事务对于表结构元数据(Metadata)的锁定是语...
行转列的应用
快到圣诞节了,需求弄出了一堆活动其中一个活动要求用户每天签到,连续若干天,有不同级别的奖励.签到表模拟如下,userid记录用户的ID,createtime模拟用户签到的时间.其中nums是数字辅助表,用法参见http://blog.itpub.net/29254281/viewspace-1362897/create table award_chance_history(&...
SQL Where in list 问题
ITPUB技术丛书 剑破冰山 170页Where in list问题还是挺常见的。前台可能传过来一系列参数,JAVA可能将其拼接在In列表里面.比较典型的场景是前台页面有一堆复选框,系统需要显示用户勾选的数据这时,后台很可能将其拼接为一个包含in列表的SQL不过,这种做法有两个缺陷1.Oracle In列表的数目有限制(1000)2.不能复用执行计...
MySQL年龄日期问题
前几天接到一个需求,要根据用户的出生日期算出他的年龄.模拟数据如下,使用了数字辅助表创建数据.http://blog.itpub.net/29254281/viewspace-1362897/drop table if exists t;create table t( id int primary key auto_increment, birthday datetime );trun...
MySQL数字辅助表
最近在做一个活动签到的功能,每个用户每天签到,累计到一定次数,可以换一些奖品。签到表的设计如下CREATE TABLE `award_chance_history` ( `id` int(11) NOT NULL AUTO_INCREMENT, `awardActId` int(11) DEFAULT NULL COMMENT '活动id', `vvi...
网页主动探测工具(修改Bug)
http://blog.itpub.net/29254281/viewspace-1344706/程序的结构虽然定了,但是程序本身还有一些bug首先ParseHandler的解析有些问题,原来的程序是这样的路径中有冒号的被过滤掉了,这样会把绝对路径也过滤掉.其实最开始的本意是过滤如下的地址"mvboxmtv:url=http://d.mvbox.cn/util/getPlayer.htm?appId=9306"针对这个...
MySQL删除重复数据
drop table if exists test ;create table test( id int primary key auto_increment, name varchar(10) );insert into test(name) values('1');insert into test(name) values('2');insert into test(name) values('3');insert into test(name) values('4');insert into test(name) value...
java的classpath通配符
先编译本目录下所有java文件,然后使用通配符增加一个指定目录的所有jar文件作为classpathalias java='javac -d . *.java;java -Xms512m -Xmx1024m -XX:MaxPermSize=64m -XX:PermSize=128M -cp .:/home/lihuilin/lib/*'这样写程序就有点脚本语言的感觉了
网页主动探测工具
单位的项目是IBatis做的,每个查询的SQL里面都有很多判断上次优化SQL之后,其中的一个分支报错,但是作为dba,不可能排查每一个分支.所以,干脆用爬虫爬过所有的网页,主动探测程序的异常.这样有两个好处1.可以主动查看网页是否异常 (500错误,404错误)2.可以筛查速度较慢的网页,从这个方向也可以定位慢SQL吧.(也有服务器...
JDBC内存管理—varchar2(4000)的影响
今天在项目评审中遇到到一个问题,一个表的字段如comment,开发想用varchar2(4000),而我建议在满足应用场景的情况下,尽量减少长度,当时就抛出了一个问题,varchar2(4000)和varchar2(40)那个好,当时我也只是简单的回答了一下,说道varchar2(xx)的字段会在内存中分配空间大小为字段...
搭建Active Data Guard环境
Oracle 11G之前的Data Guard恢复模式不能查询,只读模式不能恢复.在11G之后,增加了Active Data Guard的新特性.它可以兼顾查询和恢复.实验将一个最大性能模式的物理StandBy转换成最大可用性的Active Data Guard关于搭建物理StandBy请参考http://blog.itpub.net/29254281/viewspace-1315088/1.将备库设置为只读模式(可...
DataGuard模拟FailOver实验
DataGuard FailOver模拟主库实例已经崩溃,但是数据库文件可用,比如数据库文件存放在磁盘阵列上..1.在一个物理StandBy最大性能的环境下,中断备库的监听器2.主库切换联机重做日志(模拟主库的日志不能传送到备库的场景)SQL> alter system archive log current;System altered.SQL> /System altered.SQL> /System alte...
DataGuard SwitchOver
http://blog.itpub.net/29254281/viewspace-1315088/在物理StandBy的基础上进行SwitchOver主库:192.168.1.1备库:192.168.1.2首先,修改主库的参数alter system set log_archive_dest_2='service=standby valid_for=(all_logfiles,all_roles) db_unique_name=orcl' scope=both;修改备库的参数alter system set ...
DataGuard三种保护模式
DataGuard有三种保护模式1.最大保护模式2.最大可用性模式3.最大性能模式三种模式的配置如下DataGuard日志传输方式如下ARCH 归档LGWR async redolog先写入本地日志文件 LNSn进程读取redo,传输到StandBy服务器 sync redolog分别...
DataGuard搭建逻辑StandBy
物理StandBy优点是效率高,缺点是只读模式不能恢复,恢复模式不能查询.逻辑StandBy可以打开数据库,同时进行恢复.搭建逻辑StandBy首先需要一个物理StandBy的环境.http://blog.itpub.net/29254281/viewspace-1315088/1.在备库终止恢复模式ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; 2.修改主库...
AWR Execute to Parse参数解析
最近优化单位的Oracle数据库,AWR部分内容如下可以看到Execute to Parse %和Execute to Parse % 指标很低.其中Execute to Parse %表示SQL语句解析后被重复执行命中率 计算公式=100*(1-Parses/Executions)如果该值偏小,说明分析(硬分析与软分析 )的比例较大,快速分析较少, 根据实际情况,可以考虑调整session_ca...