Waiting for table阻塞查询的问题
今天看了一个案例,自己在备库上做了一下。确实会引起很多问题。1.一些慢SQL在运行2.一个终端发出了flush tables命令3.很多查询都被阻塞了假设有两个慢SQL正在运行,这时发出的flush tables命令被阻塞,但是后续的查询重新打开表,前提条件是所有的线程关闭表,但是慢SQL还在运行。步骤1阻塞了步骤二,步骤二导致步骤...
模拟电梯
模拟电梯第一版没有考虑多线程的问题,只是简单的实现了功能import java.util.Comparator;import java.util.PriorityQueue;/** * 模擬电梯 */public class T implements Runnable { private int flo...
清除MySQL Binlog日志
MySQL的binlog日志相当于Oracle的归档日志,在通过Xtrabackup进行备份之后,就可以删除了。可以设置expire-logs-days参数。备份一般都是通过Linux调度脚本。所以,可以在脚本中增加清除日志的命令。在备份完成之后,即刻删除binlog.系统运行时,积累了很多binlog日志备份之后,可以删除前一天的日志参考:http:/...
Oracle查看表空间使用率SQL脚本
set linesize 400;set pagesize 200;col "USED_RATE(%)" format a20;col "USED_SPACE(M)" format a20;col "SUM_SPACE(M)" format a20;col "FREE_SPACE(M)" format a20;SELECT D.TABLESPACE_NAME, SPACE || 'M' AS "...
ByteBuffer按行处理数据(readline)
NIO没有BufferedReader这样读取行的方法。可以查找ByteBuffer最后一个换行符,在换行符之后的数据,重新放回ByteBufferimport java.io.FileInputStream;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.nio.ByteBuffer;import ...
MySQL优化表和分析表
MySQL的优化表相当于数据文件收缩和索引分析系统经过一段时间的运行,数据文件会产生很多碎片,索引的统计信息也可能存在较大误差。MySQL InnoDB的优化表操作,相当于表重建,并分析索引。实验创建一个100W记录的表,删除其中的三分之一其中创建实验表,参考http://blog.itpub.net/29254281/viewspace-1147227/创建之...
通过10046与tkprof了解SQL运行
首先,开启10046事件--开启10046alter session set events '10046 trace name context forever,level 12';--关闭10046alter session set events '10046 trace name context off';--或者exec dbms_system.set_ev(sid,serial#,10046,12,'go');...
MongoDB参数
我们可以通过mongod --help查看mongod的所有参数说明,以下是各参数的中文解释。基本配置–quiet# 安静输出–port arg# 指定服务端口号,默认端口27017–bind_ip arg# 绑定服务IP,若绑定127.0.0.1,则只能本机访问,不指定默认本地所有IP–logpath arg# 指定MongoDB日志文件,注意是指定文件不是目录–loga...
10gR2中awrsqrpt.sql介绍
在RDBMS/admin/awrsqrpt.sql中,这个脚本可以方便地取出某个sql在某两个快照间隔内,它总的消耗的cpu时间,执行次数,逻辑读,物理读,sql的执行计划以及sql的full sql text等 生成HTML的执行计划很简...
Oracle查看正在执行的SQL以及执行计划分析
前台反应响应时间很长,首先,看看Oracle正在做些什么。SELECT a.username, b.sql_id, b.SQL_TEXT, b.SQL_FULLTEXTFROM v$session a, v$sqlarea bWHERE a.sql_address = b.address AND a.SQL_HASH_VALUE = b.HASH_VALUE找到问题SQL的sql_id,然后...
根据SQL_ID查看执行计划
获取执行计划,第一种方式,set autotrace on第二种方式,explain plan for 第三种方式,dbms_xplan.DISPLAY_CURSORalter session set STATISTICS_LEVEL = ALL;--不设置无法获得A-ROWS等信息select sysdate from dual;--运行SQLselect * from table(dbms_xplan.DIS...
[MySql技术]MySQL中information_schema是什么
大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个information_schema数据库。 information_schema数据库是做什么用的呢,使用WordPress博客的朋友可能会想,是不是安装模板添加的数据库呀?看完本片文章 后,你就会对information_schema数据库有所了解。information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式。什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。在MySQL中,把
使用lsof恢复误删除的文件
linux下使用lsof恢复误删除的文件
MySQL Profile查看SQL的资源使用
MySQL的Profile可以查看SQL的资源使用首先开启Profiling,然后执行SQL语句查看QueryId根据QueryId查看资源消耗还可以查看具体的资源,包括cpu,memory,swaps,context switches,source等
MySQL PreparedStatement
世界上的PreparedStatement有两种一种是PreparedStatement另一种是MySQL的PreparedStatementMySQL版本5.6.14JDBC版本mysql-connector-java-5.1.6-bin.jarMySQL JDBC的PreparedStatement仅仅在JAVA端进行了参数的替换。和Oracle的软解析,软软解析什么的真是一点关系也没有。测试程序如下:public class ...
MySQL使用Batch批量处理
使用MySQL的Batch批量处理,JDBC驱动版本需要5.1.13或以上测试使用的JDBC驱动版本:mysql-connector-java-5.1.30-bin测试表结构如下:CREATE TABLE test ( id int(11) DEFAULT NULL, name varchar(20) DEFAULT NULL) ENGINE=InnoDB 首先使用普通的方式插入100万条数据,使用时间81948毫秒程序如下...
Explain Extended查看MySQL的优化
MySQL版本5.6.14MySQL对于SQL有可能进行查询重写可以使用Explain Extended查看MySQL到底执行的是什么SQLshow warnings显示的结果:SELECT 'share' AS `popularityType`, COUNT(0) AS `popularity`FROM `songod`.`space_av` JOIN `songod`.`space_share`WHERE `songod`.`space_av`.`AVID...
mysql 5.6引入index condition pushdown
5.6引入index condition pushdown,允许在存储引擎层通过索引列提前过滤掉数据,从而减少服务器层访问的数据量,同时也减少存储引擎访问基表的次数;使用ICP可有效降低handler_read_next,explain输出的extra列显示using index condition;可用于innodb和MyISAM,适用于range, ref, eq_ref和ref_or_null,只可用于二级...
SQL乘法表
一段SQL想起一段在后勤的往事物是人非打印9*9乘法表witht as( select level as n from dual connect by level
禁用内嵌视图的排序
MySQL会对group by字段进行排序,但是一些内嵌视图中的group by本身就是中间过程,没有必要进行排序。这种场景可以使用order by null禁用内嵌视图的排序。如下SQLSELECT DISTINCT a.*, c.downNumFROM sod_artist a INNER JOIN sod_artist_category_relation b ON a.ArtistID = b.ArtistID LEFT JOI...