自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

落落的专栏 专注SQL调优 性能调优

Focus on SQL Tuning, Oracle MySQL Performance tuning 想精通SQL以及SQL优化?联系微信692162374

  • 博客(17)
  • 收藏
  • 关注

原创 SQL改写的书终于出版了

众所周知,SQL 优化很多 SQL 都是写法上有问题,目前市面上没有这种书籍,为了造福广大Oracle使用者教主和我特意编写 SQL 改写 优化的书籍 ,大家可以到这里购买http://product.china-pub.com/4455744#mlSQL水平比较菜的兄弟们也可以购买运维同志们也可以购买

2020-05-11 09:54:51 9503 8

原创 SQL优化新书《SQL优化核心思想》终于出版了

耗时三年,SQL优化大作终于出版了,有想提升SQL优化水平的同学,可以买本看看本书共10章内容:第一章介绍SQL优化的基础知识;第二章讲解统计信息相关内容;第三章讲解执行计划,快速找出SQL性能瓶颈;第四章讲解常见的访问路径;第五章讲解表的各种连接方式;第六章介绍单表访问以及索引扫描的成本计算,引出优化思想。第七章讲解查询变换;第八章讲解优化技巧;第九章分享经典案例;第十章介绍全自动SQL审核...

2020-05-11 09:54:16 12382 21

原创 利用Python多进程并行执行加快MySQL批量UPDATE执行速度

现在有个表tmysql> desc t;+----------------+--------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+----------------+--------------+------+-----+---------+----------------+| owner

2020-05-29 15:58:16 2816 2

原创 利用Python解析MySQL BINLOG从而回滚UPDATE和DELETE误操作

MySQL没有Oracle的闪回(flashback)功能,如果不小心执行了UPDATE或者DELETE误操作,想要回滚相比Oracle还是挺麻烦的可以利用mysqlbinlog工具解析binlog,从而拼接出UPDATE和DELETE的回滚语句,人工拼接比较麻烦,所以利用Python来拼接import ioimport pymysqldef processUPDATE(db_name,table_name): conn = pymysql.connect("192.168.56.10",

2020-05-24 23:38:09 1190

原创 Oracle中TX锁(行锁)监控,抓TX锁的源头

DBA小伙子,看到这个文章是不是很开心,解决了你一个大麻烦session 1: update emp_bak set ename='沙雕' where empno=7369;session 2: update emp_bak set ename='大长腿' where empno=7369;session 3: update emp_bak set ename='矮丑穷' where empno=7369;运行下面脚本可以抓到哪个SID,哪个SQL_ID,跑的SQL_TEXT锁住了哪个SID

2020-05-18 23:51:09 2318 2

原创 利用Python监控MySQL当前跑的TOP SESSION

利用ps命令抓出MySQL PID,根据PID再监控每个线程CPU使用率以及跑的SQL语句import pymysqlimport osimport timeos.environ['NLS_LANG']='SIMPLIFIED CHINESE_CHINA.UTF8'command="ps -ef | grep 3306 | grep -v grep | awk '{print $2}'"with os.popen(command, "r") as pid: pid = str(int(pi

2020-05-18 17:16:33 824

原创 利用Python监控Oracle当前跑的TOP SESSION

因为要使用Python经常连接到Oracle获取SQL_ID以及SQL语句,会话频繁连接,断开会引起Oracle服务器性能严重下降所以利用Python监控Oracle的时候,要先在Oracle配置连接池(DRCP)begin dbms_connection_pool.configure_pool(pool_name => 'sys_default_connection_pool', mi

2020-05-17 12:44:15 1571

原创 利用Python发送QQ邮件

发送QQ邮件之前,要先开启QQ邮箱IMAP/SMTP服务,并且记住授权码import smtplibfrom email.mime.text import MIMETextmail_sender='你的qq号@qq.com' #发送方邮箱mail_code='你的授权码' #授权码mail_receivers='你的qq号@qq.com' #邮件接收方subject='测试Python发邮件' #主题content='测试Pyt

2020-05-14 22:58:36 630

原创 利用Python将EXCEL,CSV,TSV导入Oracle或者MySQL

虽然可以用Kettle等ETL工具将EXCEL,CSV,TSV等格式的文件导入Oracle或者MySQL,但是还是觉得写点代码心里踏实些import cx_Oracleimport pymysqlimport pandasimport osimport timeos.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'target_db_type='MySQL'

2020-05-14 01:32:18 1639

原创 利用Python将数据库查询结果导出为EXCEL,CSV,TSV格式(性能比Kettle高接近1倍)

虽然可以用Kettle等ETL工具将数据库查询结果导出为CSV格式,但是感觉很麻烦,我们还是用Python来做吧import cx_Oracle #导入连接Oracle模块import os #导入os模块import csv #

2020-05-10 21:20:29 2041

原创 在Oracle和MySQL中利用SQL查询出今年日历

Oracle写法:select case when rank() over(partition by month order by week) = 1 then month else ' ' end month, max(一) 一, max(二) 二, max(三) 三, max(四) 四, max(五) 五, max(六) 六,

2020-05-10 01:32:32 958

原创 MySQL中的树形查询

树形查询本质就是递归算法(自己调用自己),Oracle很早就支持了树形查询MySQL中可以使用 WITH RECURSIVE 来实现树形查询比如在Oracle中scott账户下,找出员工编号为7369所有的上级:SQL> select empno, ename, job, mgr, level 2 from emp 3 start with empno = 7369 4 connect by empno = prior mgr; EMPNO ENAME

2020-05-09 00:00:24 1437

原创 MySQL根据主键切割大事务(变相ROWID切片)

不管是Oracle,MySQL,还是PostGre SQL,跑大事务都会严重影响数据库性能在Oracle里面可以利用rowid切片的方式处理大事务,如果不清楚什么是rowid切片,可以买一本《SQL优化核心思想》看看MySQL没有Oracle的区,块,段这些概念,所以也就不能使用rowid切片的方式处理大事务MySQL中表一般都是存在innodb引擎中的,使用innodb引擎每个表都必须要设置主键(当然了你也可以不设置主键,你屌)MySQL中主键一般都是自增(auto_increment)的

2020-05-08 22:17:20 1354 3

原创 获取MySQL中某个数据库下所有表建表语句的DDL

本脚本可以获取MySQL中某个数据库下所有表建表语句的DDL注意:本脚本需在MySQL8.0以上版本运行注意:本脚本不获取VIEW创建语句注意:本脚本没有处理主键,外键等约束注意:本脚本只处理非分区表,分区表请自己改写脚本注意:如果你做数据迁移,想把MySQL数据库迁移到其他数据库,自己改写脚本WITH tab AS (SELECT table_name FROM informa...

2020-05-07 10:51:07 4886

原创 Hadoop3.1.3单机版安装Hive3.1.2(Redhat8.0)

下载 Hive3.1.2并上传到 /tmp apache-hive-3.1.2-bin.tar.gz下载 MySQL驱动并上传到 /tmp mysql-connector-java-5.1.48.tar.gz安装MySQL8.0.19,在Redhat8.0上安装完MySQL8.0.19后,进入MySQL会报如下错误:[root@server ~]# mysql -uroot -p...

2020-05-06 13:00:04 1874 2

原创 在Redhat8.0上安装Hadoop3.1.3单机版

hadoop最新版本是3.2.1,安装之后SecondaryNameNode起不来 所以安装3.1.3hadoop下载地址:http://hadoop.apache.org/releases.html修改/etc/hosts,添加ip和hostnamevi /etc/hosts192.168.56.10 server注意:这里填写ip hostname 我的ip是 192....

2020-05-06 00:17:05 921

原创 利用Python脚本实现Oracle与MySQL之间数据迁移

虽然可以用kettle等ETL工具来做数据迁移,但是现在Python很流行,Python编码也特简单,所以就写个Python脚本来实现数据迁移import cx_Oracleimport osimport time#说明:本脚本可以将一台Oracle服务器的表迁移到另外一台Oracle服务器#注意:从Oracle迁移到Mysql或者从MySQL迁移到Oracle你们自己改一下conn...

2020-05-03 19:23:52 2484

空空如也

空空如也

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

TA关注的人

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