Buckets

Oracle SQL调优之绑定变量用法简介

不羁岁月 提交于 2020-04-25 18:26:20
最近在看《基于Oracle的SQL优化一书》,并做了笔记,作者的个人博客: http://www.dbsnake.net/ @[toc] 一、SQL执行过程简介 继上一篇博客Oracle的cursor学习笔记: Oracle的游标Cursor原理简介 ,再介绍oracle的绑定变量 介绍绑定变量之前,先介绍SQL执行过程和硬解析的概念: 执行sql的过程,会将sql的文本进行hash运算,得到对象的hash值,然后拿hash值,去Hash Buckets里遍历缓存对象句柄链表,找到对应的缓存对象句柄,然后就可以得到缓存对象句柄里对应sql执行计划、解析树等对象,所以执行相同的sql第二次执行时是会比较快的,因为不需要解析获取执行计划,解析树等对象,如果找不到库缓存对象句柄,就需要重新解析,这个过程解析过多,容易造成硬解析问题 硬解析:是指Oracle在执行目标SQL时,在库缓存中找不到可以重用的解析树和执行计划,而不得不从头开始解析目标SQL并生成相应的Parent Cursor和Child Cursor的过程。<br> 软解析:是指Oracle在执行目标SQL时,在Library Cache中找到了匹配的Parent Cursor和Child Cursor,并将存储在Child Cursor中的解析树和执行计划直接拿过来重用,无须从头开始解析的过程。 ok

mysql查看、事务、备份、恢复

左心房为你撑大大i 提交于 2020-04-25 05:24:29
获取当前时间:select now(); 有价值的数据删除:update 表名 set is_delete = 'Y'; 注释:# /*....*/ 查看数据存储引擎:show engines; 查看表结构:describe 表名; 删除表数据(能使auto_crement重新开始计数,不同于delete):truncate 表名; 事务:transaction 关闭自动提交:set autocommit = 0 开始事务:   begin;   ...;   commit;   rollback;   set autocommit = 1; 查询内置变量:select @@autocommit; 增加一行数据统计合计:with rollup; 增加后缀:select concat('@qq.com') from 表名; 合并数据:union,union all 索引:主键索引 检测索引是否启用: explain select * from 表名 \G 创建或修改视图:create or replace view 视图表名(字段1,字段2,...) as select * from 表名; 创建触发器:create trigger 数据备份: mysqldump -u root -p [option] mysql_test > F:\ceshi.sql 执行该命令引发的错误:

Prometheus监控 Redis & Redis Cluster 说明

こ雲淡風輕ζ 提交于 2020-04-24 08:19:22
说明 在前面的 Prometheus + Grafana 部署说明之「安装」 文章里,大致介绍说明了 Prometheus 和 Grafana 的一些安装使用,现在开始如何始部署 Prometheus + Grafana 来监控 Redis 部署 在之前介绍的 Prometheus 系列文章里,已经了解了 Prometheus 是通过拉取的方式来保存监控数据的,可以自己写一个服务来去Redis来获取需要监控的相关指标,也可以直接用现成的exporter,如GitHub上 redis_exporter ,本文对Redis的监控是通过该导出器进行的。 下载 &解压: #下载 wget https: // github.com/oliver006/redis_exporter/releases/download/v1.3.5/redis_exporter-v1.3.5.linux-amd64.tar.gz #解压 tar xvf redis_exporter-v1. 3.5 .linux-amd64. tar .gz 注意: redis_exporter 版本从 0.x to 1.x 有了很大的改变:为了使redis_exporter更紧密地遵循“编写导出器的最佳实践”, 不再直接支持配置(和抓取)多个Redis实例,而是将这一任务推给了Prometheus服务器, 具体情况可以看

十大经典排序算法(动图演示)

为君一笑 提交于 2020-04-22 10:36:09
0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 比较类排序 :通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序 :不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。 0.2 算法复杂度 0.3 相关概念 稳定 :如果a原本在b前面,而a=b,排序之后a仍然在b的前面。 不稳定 :如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。 时间复杂度 :对排序数据的总的操作次数。反映当n变化时,操作次数呈现什么规律。 空间复杂度: 是指算法在计算机 内执行时所需存储空间的度量,它也是数据规模n的函数。 1、冒泡排序(Bubble Sort) 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 1.1 算法描述 比较相邻的元素。如果第一个比第二个大,就交换它们两个; 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数; 针对所有的元素重复以上的步骤,除了最后一个; 重复步骤1

matlab练习程序(油画效果)

China☆狼群 提交于 2020-04-19 17:25:27
油画效果算法有两个参数,一个是滤波半径r,一个是量化位数q。 算法原理: 1. 首先根据量化位数将0-255划分为q个区间; 2. 然后根据滤波半径r拿到半径内的像素; 3. 统计像素在区间中出现的次数,找到次数最大的区间; 4. 计算次数最大区间所有像素平均值赋值给当前滤波像素即可。 matlab代码如下: clear all; close all; clc; r = 1 ; % 滤波半径 q = 8 ; % 量化位数 img =imread( ' lena.jpg ' ); [m,n] = size(img); imshow(img) imgn =zeros(m+ 2 *r+ 1 ,n+ 2 *r+ 1 ); imgn(r + 1 :m+r,r+ 1 :n+r)= img; imgn( 1 :r,r+ 1 :n+r)=flipud(img( 1 :r, 1 :n)); % 扩展上边界 imgn( 1 :m+r,n+r+ 1 :n+ 2 *r+ 1 )=fliplr(imgn( 1 :m+r,n:n+r)); % 扩展右边界 imgn(m +r+ 1 :m+ 2 *r+ 1 ,r+ 1 :n+ 2 *r+ 1 )=flipud(imgn(m:m+r,r+ 1 :n+ 2 *r+ 1 )); % 扩展下边界 imgn( 1 :m+ 2 *r+ 1 , 1 :r)=fliplr

十大经典排序算法(动图演示)

£可爱£侵袭症+ 提交于 2020-04-15 14:51:06
【推荐阅读】微服务还能火多久?>>> 0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 比较类排序 :通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序 :不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。 0.2 算法复杂度 0.3 相关概念 稳定 :如果a原本在b前面,而a=b,排序之后a仍然在b的前面。 不稳定 :如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。 时间复杂度 :对排序数据的总的操作次数。反映当n变化时,操作次数呈现什么规律。 空间复杂度: 是指算法在计算机 内执行时所需存储空间的度量,它也是数据规模n的函数。 1、冒泡排序(Bubble Sort) 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 1.1 算法描述 比较相邻的元素。如果第一个比第二个大,就交换它们两个; 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;

MaxCompute问答整理之2020-03月

此生再无相见时 提交于 2020-04-15 11:34:08
【推荐阅读】微服务还能火多久?>>> 本文是基于本人对MaxCompute产品的学习进度,再结合开发者社区里面的一些问题,进而整理成文。希望对大家有所帮助。 问题一、在 MaxCompute SQL执行过程中,报错Table xx has n columns, but query has m columns如何处理? MaxCompute SQL使用INSERT INTO/OVERWRITE插入数据时,需要保证SELECT查询出 来的字段和插入的表的字段匹配,匹配内容包括顺序、字段类型,总的字段数量。目前 MaxCompute不支持插入表的指定字段,其他字段为NULL或者其他默认值的情况,您可以 在SELECT的时候设置成NULL,例如SELECT ‘a’,NULL FROM XX。 问题二、MaxCompute 中使用什么方法可以实现相同字段连接,将group by产生的同一个分组中的值连接起来,返回一个字符串结果。类似MySql中的group_concat()函数? MaxCompute可以使用WM_CONCAT函数来实现相同字段连接。具体函数说明可参考: https://help.aliyun.com/document_detail/48975.html 问题三、如何在MaxCompute Java SDK上使用Logview排错? MaxCompute Java

十二种排序包你满意(冒泡、插入、归并、快速排序等包含希尔和计数排序)

纵然是瞬间 提交于 2020-04-12 15:27:34
前言 排序算法在计算机科学入门课程中很普遍,在学习排序算法的时候,涉及到大量的各种核心算法概念,例如大O表示法,分治法,堆和二叉树之类的数据结构,随机算法,最佳、最差和平均情况分析,时空权衡以及上限和下限,本文就介绍了十二种排序算法供大家学习。 简介 排序算法是用来根据元素对应的比较运算符重新排列给定的数组的算法,输出的数组是一个根据比较符从小到大或者从大到小依次排列的数组。比较运算符是用于确定相应数据结构中元素的新顺序,比如在整数数组里面,对应的比较符号就是大于或者小于号,用户也可以自己定义对应的比较运算符。 比如如果输入是 [4,2,3,1] ,按照从小到大输出,结果应该是 [1,2,3,4] 特性 稳定性 如果在数组中有两个元素是相等的,在经过某个排序算法之后,原来在前面的的那个元素仍然在另一个元素的前面,那么我们就说这个排序算法是稳定的。 如果在排序之后,原来的两个相等元素中在前面的一个元素被移到了后面,那么这个算法就是不稳定的。 比如排序之前数组为 [3(a),2,3(b)] (其中 a 和 b 分别代表两个不同的 3 ),经过某个排序算法之后是 [2,3(a),3(b)] ,那么这个算法就是稳定的;如果变成了 [2,3(b),3(a)] ,那么这个算法是不稳定的。 再比如在按照身高排队去食堂打饭的过程中,小明和小刚的身高都是170,原来小明在小刚前面

十二种排序包你满意(冒泡、插入、归并、快速排序等包含希尔和计数排序)

左心房为你撑大大i 提交于 2020-04-12 11:16:34
前言 排序算法在计算机科学入门课程中很普遍,在学习排序算法的时候,涉及到大量的各种核心算法概念,例如大O表示法,分治法,堆和二叉树之类的数据结构,随机算法,最佳、最差和平均情况分析,时空权衡以及上限和下限,本文就介绍了十二种排序算法供大家学习。 简介 排序算法是用来根据元素对应的比较运算符重新排列给定的数组的算法,输出的数组是一个根据比较符从小到大或者从大到小依次排列的数组。比较运算符是用于确定相应数据结构中元素的新顺序,比如在整数数组里面,对应的比较符号就是大于或者小于号,用户也可以自己定义对应的比较运算符。 比如如果输入是 [4,2,3,1] ,按照从小到大输出,结果应该是 [1,2,3,4] 特性 稳定性 如果在数组中有两个元素是相等的,在经过某个排序算法之后,原来在前面的的那个元素仍然在另一个元素的前面,那么我们就说这个排序算法是稳定的。 如果在排序之后,原来的两个相等元素中在前面的一个元素被移到了后面,那么这个算法就是不稳定的。 比如排序之前数组为 [3(a),2,3(b)] (其中 a 和 b 分别代表两个不同的 3 ),经过某个排序算法之后是 [2,3(a),3(b)] ,那么这个算法就是稳定的;如果变成了 [2,3(b),3(a)] ,那么这个算法是不稳定的。 再比如在按照身高排队去食堂打饭的过程中,小明和小刚的身高都是170,原来小明在小刚前面

Elasticsearch7.6学习笔记1 Getting start with Elasticsearch

泪湿孤枕 提交于 2020-04-11 16:34:37
Elasticsearch7.6学习笔记1 Getting start with Elasticsearch 前言 权威指南中文只有2.x, 但现在es已经到7.6. 就安装最新的来学下. 安装 这里是学习安装, 生产安装是另一套逻辑. win es下载地址: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.0-windows-x86_64.zip kibana下载地址: https://artifacts.elastic.co/downloads/kibana/kibana-7.6.0-windows-x86_64.zip 官方目前最新是7.6.0, 但下载速度惨不忍睹. 使用迅雷下载速度可以到xM. bin\elasticsearch.bat bin\kibana.bat 双击bat启动. docker安装 对于测试学习,直接使用官方提供的docker镜像更快更方便。 安装方法见: https://www.cnblogs.com/woshimrf/p/docker-es7.html 以下内容来自: https://www.elastic.co/guide/en/elasticsearch/reference/7.6/getting-started.html Index some