- 博客(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关注的人