SQL
文章平均质量分 76
英雄史诗
这个作者很懒,什么都没留下…
展开
-
MySql基础_2常用语句
=========== 基础SQL ======================== 基础SQL ============原创 2023-07-20 19:30:25 · 107 阅读 · 0 评论 -
Oracle connect by与level的使用
1.level是什么?level是在树形结构中、表示层级的伪列。1.1树形结构Oracle支持树形结构的查询,用关键字connect by 表示。connect by表示在构造树形结构时,上下级的确定方式或者用来查找下(上)级记录的条件,满足这个条件就拼到结果树里。默认是从根开始,如connect by prior id=pid,表示构造树时,本记录的id是下条的pid,即找pid=本条id的记录做下条记录。交换prior位置,表示从叶开始。如connect by id= prior pid,原创 2022-03-04 11:12:54 · 18757 阅读 · 6 评论 -
Oracle动态视图v$sql的说明和使用
1.背景前段时间,利用v$sql分析过一个项目的数据流程。发现对v$sql的一些字段理解的一知半解。实质是对Oracel的sql执行机制理解不深。把相关的总结一下。2.v$sql的定义 ColumnDatatypeDescriptionSQL_TEXTVARCHAR2(1000)First thousand characters of the SQL text for the current cursorSQL_FULLTEXTCLOBAll原创 2021-04-12 17:25:06 · 8722 阅读 · 0 评论 -
jmeter3_数据库sql使用动态参数
2种方法,法1从数据库读取参数值列表,法2从文件读取。1.法1从数据库读取参数值列表1.1 把查询的返回值当做参数值列表添加jdbc型sampler,并把查询结果映射为变量。注意:用了once only控制器。如果不加once only控制器,jmeter默认每个线程每次执行都执行一遍当前sampler,其实只用查询一次,后续迭代使用给个值即可。1.2 验证查询中使用动态sql注意:query type使用动态sql,选择Prepared Select Statement.变量值引用了上一原创 2020-10-15 19:49:19 · 721 阅读 · 0 评论 -
jmeter2_简单的JDBC测试计划
目录1.添加驱动2.添加组件测试计划test plan线程组thread group配置configure jdbc请求sampler:查看结果listener:执行4.遇到的问题:1.java环境2.驱动3.测试方案修改保存1.添加驱动下载mysql的驱动,把jar包放到jmeter的 lib/ext目录下,重启jmeter生效。2.添加组件测试计划test plan新建测试计划线程组thread group设置线程数(Number of Threads(users))和启动线程的时间窗原创 2020-10-15 19:25:15 · 110 阅读 · 0 评论 -
jmeter1_基础组件介绍
1.基本组件介绍有12个基本组件,先了解这些组件的作用,才能更好的理解测试计划和用好jmeter。2.总结1.thread group:线程数模拟用户数据;2.测试计划的tree是测试流程图,由请求和逻辑控制组件构成。3.请求是sampler,如模拟http、ftp、tcp、jdbc请求。4.测试计划执行是每个线程执行完成的plan tree。5.执行顺序一般是从上往下,但因为controler的加入,会有循环和跳转。与ETL的抽取方案类似,只是没有连接线。参考:官方文档:https:/原创 2020-10-15 17:08:12 · 189 阅读 · 0 评论 -
排错:insert失败没有数据但空间持续消耗_表空间管理
1、背景近期排查了一个数据库job执行异常,表现为:insert操作失败,目标表里没有数据(与一般经验一致);但目标表占用的空间持续增长,且不正常的增速(没数据,空间还快速消耗,与一般经验不符)。通过排查原因是:数据处理程序中,数据插入目标表后,在最后阶段清空临时表;某次执行,因表空间不足,插入目标表操作失败,程序退出,后续清空临时表不执行;3 .临时表沉淀了多批次的数据,关联产生笛卡尔积,导致后续插入目标表的数据量越来越大。表空间消耗越来越大,很快因空间不足再次失败。因事务一致性,其原创 2020-09-02 11:22:36 · 591 阅读 · 0 评论 -
GR节点故障The member contains transactions not present in the group
背景1个共用的测试环境:3节点、单主的的group replication。一天启动节点3(node3)时,报错:[ERROR] Plugin group_replication reported: ‘The member contains transactions not present in the group. The member will now exit the group.’本文是处理过程和总结。错误的含义节点包含了非group内的事务。查看node3的数据,确实有与其他节点不一样的数原创 2020-06-18 15:04:12 · 2345 阅读 · 0 评论 -
MGR新加节点一直recovering故障解决
背景有个3节点的验证环境,最开始搭了基于binlog的传统主从同步。后来升级为group replication结构,primary node启动正常,2个后加入的node 状态一直处于recovering状态。以下记录解决的过程,具体内部原理不是很清楚,可能有的步骤不一定发挥了作用。解决过程1.修改hostname看官档的部署和别人的方案,节点hostname都是不同的。我的都是默认的localhost.localdomain,不知道在互相通讯时,这个名称一样的会否导致混乱。因此改的名字。1原创 2020-05-25 19:50:09 · 4065 阅读 · 0 评论 -
MGR新加入节点的启动过程
整理了下加入新节点的启动日志,了解启动过程,方便后续报错时对比排错。准备动作#################################1.读取本机网络配置:是否启用ssl、本机ip加入白名单[Note] 'CHANGE MASTER TO FOR CHANNEL 'group_replication_recovery' executed'. Previous state master_host='', master_port= 3306, master_log_file='', master原创 2020-05-25 16:55:05 · 682 阅读 · 0 评论 -
MySQL组复制(group replication)基础知识和3节点环境搭建
1、MGR是什么mysql的一种主从实时复制的集群环境。5.7开始出现的新特性,号称保证金融级的数据一致性。2、MGR为什么传统的基于binlog的复制,是异步复制方案。master不关心binlog的传递、relaylog的执行,很容易出现主从数据不一致的情况。MGR主要解决数据一致性问题。3、MGR如何实现与传统复制对比,事物会在集群内广播,确保全部阶段应答无误后,才进行后续的操作。4、3节点MGR搭建过程网上内容比较多了,直接贴笔记。注意:1.最好修改各节点hostname,方原创 2020-05-25 16:38:02 · 277 阅读 · 0 评论 -
mysql基于binlog同步:binlog内容和时间戳记录
1.binlog的日志内容IO线程把binlog日志从master抽取到slave,转存到relaylog,但pos保持一致。可用途mysqlbinlog工具查看查看master指定pos的日志 [root@localhost testRepl]# mysqlbinlog -v --base64-output=DECODE-ROWS /usr/local/mysql/data/mysql-bin.000002 | grep -A '10' 106881433#200518 20:14:42 s原创 2020-05-20 10:30:55 · 3067 阅读 · 0 评论 -
Mysql基于binlog的传统主从复制
1.应用场景高可用性:多个节点保存同样的数据,slave可提供备用环境。数据安全:slave可以独立备份,不影响master分析:可给予slave做数据分析远程数据分发:异地灾备2.实现方案原理复制主要有2个动作:slave从master抽取binlog本动作由master和slave的IO线程完成。类似数据的ETL,数据源信息在master.info文件,时间戳在relay-log.info文件抽取到的日志保存在relaylog中,供salve的SQL线程消费slave读取re原创 2020-05-20 09:46:20 · 286 阅读 · 0 评论 -
Oracle常用Sql:查看加锁的SQL语句
select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$session sess where a...原创 2020-01-08 11:20:55 · 317 阅读 · 0 评论 -
pl/sql developer自定义替换关键字_AutoReplace.txt
1、工具-》首选项-》用户界面-》编辑器;2、在plsql的安装路径新建一个txt文件,如下:E:\tools\PLSQL\PlugIns\AutoReplace.txt3、在AutoReplace.txt中输入如下内容:df=DELETE FROMsf=SELECT * FROMsc=SELECT COUNT() FROMscf=SELECT COUNT() FROMsu=SELECT * FR...转载 2019-12-20 18:33:55 · 772 阅读 · 0 评论 -
direct path read temp等待引发的job异常耗时
问题引出巡检发现,某job运行耗时异常,原来一般3分钟完成的到后来需要90分钟,指标不能及时计算出来。问题分析1根据任务运行日志应该是计算f指标时出现了异常耗时,但session工具对应的sql为空,对应的Event是direct path read temp。 从历史会话快照和历史Sql中查看包含该事件最多的sql。select sql_id, count(*) from ...原创 2018-04-11 10:23:42 · 1174 阅读 · 1 评论 -
Oracle dbms_scheduler用法和Job不自动执行原因
本文旨在简介dbms_scheduler的用法,包括创建带参数的任务、任务状态查看、日志查看等,看完掌握日常用法,更深入的研究建议看官方文档。1、前提:job_queue_processes参数根据官档的描述,该参数用来:设定每个实例、用来执行job的最大子进程数,该限制对dbms_job和dbms_scheduler的共享。 1. 为0时,job不自动执行;但可以手动执行。 2....原创 2018-08-21 16:05:24 · 11294 阅读 · 0 评论 -
l临时表空间管理
背景检查批次任务,04:20的任务执行失败,报临时表空间无法扩展。用网上搜的一个脚本[^1]查看临时表空间使用情况,都是100%。同时,用vsortusage、vsort_usage、vsortusage、vsort_segment、v$tempseg_usage等视图又查不到占用的会话。有点蒙圈,后来才发现时查临时表空间使用的脚本错误,顺便把11g下临时表空间的使用梳理了下。11g新视...原创 2018-11-26 18:04:44 · 537 阅读 · 0 评论 -
MySQL-8免安装版配置
1.解压免安装包压缩包可从官网下载。2.配置文件在mysql的base目录下创建配置文件,内容如下:[mysqld]# 设置3306端口port=3306# 设置mysql的安装目录basedir=D:\mysql-8.0.13-winx64# 设置mysql数据库的数据的存放目录datadir=D:\mysql-8.0.13-winx64\Data# 允许最大连接数max...原创 2019-01-16 16:01:42 · 263 阅读 · 0 评论 -
MySql基础_1基本用法
1、安装配置略。2、创建用户root用户登录mysql -u root -p创建用户CREATE USER 'sky'@'localhost' IDENTIFIED BY 'password';GRANT ALL PRIVILEGES ON *.* TO 'sky'@'localhost' WITH GRANT OPTION;#Host:表示可从哪里连入;localhost表只...原创 2019-05-05 15:55:56 · 111 阅读 · 0 评论 -
MySql各版本新特性
mysql5.5开始各版本升级内容5.6新特性:最新版5.6.44(2019-4-25发布),里程碑版本,生产使用最多。1)安全增强:sha256更强的用户密码加密;密码安全策略;修改登录记录,密码不在明文记载在general、bin、slow log里2)参数默认值更改3)innodb增强:增加全文检索;online DDL(DDL不阻塞DML操作);单独表空间,可以把热表放到SSD;...原创 2019-05-05 16:31:29 · 1424 阅读 · 0 评论 -
MySql存储过程快速上手
概述适合有一定数据库基础的人员用来快速掌握mysql的sp基本语法、逻辑控制、异常处理包括与Oracle数据库用法的对比,加深理解和记忆包括一个完整的存储过程示例1、基本语法变量定义:必须declare 开头,默认值default关键字。eg:declare a,b int default 5;变量赋值:set a=5;while循环:while do end while。...原创 2019-05-07 10:44:27 · 132 阅读 · 0 评论 -
MySql中动态sql和会话变量的使用
1、概述版本:MySql5.1.56-log1.1背景工作中,需要使用动态Sql给变量赋值,但MySql(这个版本)里不支持。变通的使用了会话变量(@x)中转传递。测试中发现,第一次正常后,后续错误条件下也能取到正常值。这是一个严重的bug。检查发现,错误条件下,没有把上次的会话变量重置,返回时直接返回了上次的结果。是对MySql的会话变量理解的不透彻导致。1.2主要内容动态s...原创 2019-05-07 16:31:48 · 1497 阅读 · 0 评论 -
使用MySql遇到的问题集合:引擎、sqlstate、默认commit等
engine=innodb;&:存储引擎,mysql支持多种存储引擎:innodb 传统的rdbms,支持事物、行锁、外键memory 内存存储,适应变化不大的表、作为中间的查询表MyISAM 不支持事物,操作锁定整张表,保存了行数,高速检索、全文检索快,使用大量select操作的表,如日志表。注意;可针对不同的表使用不同的存储引擎。太棒了!CREATE TABLE ...原创 2019-05-07 16:54:14 · 177 阅读 · 0 评论 -
SQL开发:用笛卡尔积+分组条件分组
1、问题引出学生们参加了10个课程的考试。每门课按成绩分布分成3等。 要求将学生每门课程分等。 - 学生成绩表_事实表 stdno学生号 clsno课程号 sc成绩 1 1 37 1 2 33 1 3 43 2 1 32 2 2 71 2 3 69- 课程成绩分...原创 2018-02-11 17:23:29 · 952 阅读 · 0 评论