自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

As before 如初

要有足够的「亮剑」资本

  • 博客(89)
  • 资源 (1)
  • 收藏
  • 关注

原创 【Oracle】看懂执行计划之稳定执行计划

Oracle Hint  Oracle Hints是一种机制,用来告诉优化器按照我们的告诉它的方式生成执行计划,它允许用户在SQL语句中插入相关的语法,从而影响SQL的执行方式。Hint的作用调整目标SQL使用的优化器类型调整优化器的优化目标调整表的访问路径调整表的连接类型调整表的连接顺序提高语句的并行程度Hint的弊端Hint是比较"暴力"的一种解决方式,不是很优雅。需要开发人员手工修改代码。Hint不会去适应新的变化,只是在现有的基础上产生更优的执行计划。Hint随着数据库

2021-06-20 08:16:38 230

原创 【问题记录】TypeError: expected string or bytes-like object

问题描述Python用正则表达式解析HTML代码时报错:TypeError: expected string or bytes-like object问题分析示例代码bs_xml = BeautifulSoup(a, 'html.parser')tables = re.findall('(<table>.*?</table>)', bs_xml)我们在正则匹配符是字符串类型,而我们获取的HTML类型是bytes,所有报错。解决方案tables = re.finda

2021-06-19 11:29:30 410

原创 【Oracle】看懂执行计划之其他执行计划

AND-EQUAL(INDEX MERGE)INDEX MERGE是指当where条件中出现针对多个不同索引列的等值条件,Oracle会分别去扫描这些索引列,然后合并每个索引的集合,找到值相同的ROWID最后回表。缺陷涉及到的索引都为单列索引索引都在查询中出现谓词使用=关系符号连接从Oracle 10g开始,and_equal操作被废弃,Oracle不再支持,这里废弃的含义并不是被彻底移除,而是说不再进行改进,通过hints仍然可以强制实现Index Merge的and_equal操作。IND

2021-06-18 08:26:12 444 1

原创 【Oracle】Library Cache 详解

简介  库缓存主要用于缓存刚刚执行过的 SQL 语句和 PL/SQL 语句(如存储过程、函数、包、触发器)所对应的执行计划、解析树(Parse Tree)、Pcode、Mcode 等,当同样的 SQL 语句和 PL/SOL 语句再次被执行时无须再次从头开始解析,从而提高 SQL 语句和 PL/SQL语句重复执行的执行效率。V$DB_OBJECT_CACHE视图可以查看Library Cache的对象。基础结构【Oracle】Library Cache的基本结构主要作用可以快速定位数据库对象,并找

2021-06-17 09:09:06 812

原创 【Oracle】Library Cache 的基本结构

图解Library Cache结构说明Hash Bucket库缓存相当于一个Hash Table由一组Hash Bucket构成,每个Hash Bucket存储相同哈希值的所有库缓存对象句柄,不同库缓存对象句柄间用指针连接,构成库缓存对象句柄链表(Library Cache Object Handles)Hash Bucket主要用于可执行对象的快速定位和存取Library Cache Object Handle库缓存对象句柄(Library Cache Object Handle)是存储

2021-06-17 08:56:54 408

原创 【Oracle】看懂执行计划之表连接

简介  表连接,顾名思义多个表之间用用连接条件连接在一起,使用表连接的目标SQL其目的就是从多个表获取存储在这些表中不同维度的数据。解析表连接SQL的要素目标SQL文本的写法SQL文本的写法决定表连接的类型:内连接、外连接、自连接自连接:同一张表内的字段做连接表连接顺序不管目标SQL中有多少个表做连接,Oracle在实际执行该SQL时都只能先两两 连接,再依次同剩下的表做连接,直到目标SQL中所有的表都已连接完毕。表连接方法排序合并连接、嵌套循环连接、哈希连接和

2021-06-10 08:16:07 838

原创 【Oracle】看懂执行计划之位图索引

定义  目前一般我们使用的索引都是B-Tree索引,索引结构中存储的是键值和对应ROWID。位图索引是指用位图表示的索引,通常创建在有大量重复值的列上,针对每个键值建立不同的位图。索引结构中主要存储键值、起止ROWID和位置编码,位置编码中的每一位表示键值对应数据行的有无,一个块可能指向多行数据的位置。...

2021-06-08 08:14:41 201

原创 【Python】断言(assert)

简介断言:断定此处是对的,如果错了,就返回问题。通常在测试程序时不知道哪里会出错,只有执行到最后才能看到错误信息。断言是声明其布尔值必须为真的判定,如果发生异常就说明表达式为假,就会触发异常。语法格式assert expression [, arguments]等价于if not expression: raise AssertionError(arguments)断言方法方法描述assertEqual(arg1, arg2, msg)arg1==arg2

2021-06-06 15:47:44 904

原创 【问题记录】Message: ‘chromedriver‘ executable needs to be in PATH.

问题描述Message: ‘chromedriver’ executable needs to be in PATH.原因分析Chromedriver没有添加到环境变量,webdriver在启动chrom时无法启动chromdriver解决方案下载Chromedriver,找到chromedriver.exe文件chromdriver下载链接:https://chromedriver.chromium.org/downloads注意chromdriver的版本需要同Chrom浏览器的版本对

2021-06-06 10:53:54 734

原创 【问题记录】Pycharm提示:No data sources are configured to run this SQL and provide advanced code assistance.

问题描述No data sources are configured to run this SQL and provide advanced code assistance.解决方案确认Pycharm侧边栏打开,没有打开的话配置路径为:File>>Settings>>Appearance>>Show tool window bars侧边栏找到Database添加数据库配置示例:配置本地Oracle数据库...

2021-06-04 08:28:16 955

原创 【Python】Python 连接 Oracle 数据库-cx_Oracle

前言  最近在用Python写一个项目,需要用数据库记录用户信息,正好自己的本命语言是Oracle,便研究了下Python如何连接Oracle数据库。记录一哈,以备下次之需,欢迎指正。环境项目是用MiniConda搭建的虚拟集成环境Python版本用到的库cx_OracleOracle版本步骤第一步:安装cx_Oracle命令pip install cx_Oracle提示Successfully installed cx-Oracle-8.2.0为安装成功第二步:连接数据

2021-06-02 09:03:17 694 1

原创 【Python】PEP8规范

简介PEP8是Python编程规范,是一些关于如何让程序更具可读性的建议。详解提示翻译备注PEP 8:expected 2 blank lines,found 0有两个空白行,但是没有发现通常指在声明函数的上方必须有两行的空行......

2021-06-02 08:34:26 656

原创 【Oracle SQL】Oracle基础SQL整理

获取Oracle数据库版本SELECT * FROM V$VERSION;

2021-06-02 08:09:38 68

原创 【问题记录】GIT报错:OpenSSL SSL_read: Connection was reset, errno 10054

问题描述从远程仓库拉取项目时报错fatal: unable to access 'https://github.com/Henry-chr/godone.git/': OpenSSL SSL_read: Connection was reset, errno 10054解决方案造成这个错误很有可能是网络不稳定,连接超时导致的,再次尝试后成功同步远程仓库...

2021-06-02 05:14:08 380

原创 【Jupyter】Jupyter Notebook快捷键

Jupyter Notebook 有两种键盘输入模式。编辑模式(键盘Enter进入编辑模式),允许你往单元中键入代码或文本;命令模式(键盘Esc进入命令模式),键盘输入运行程序命令;命令模式Shift-Enter : 运行本单元,选中下个单元Y : 单元转入代码状态M :单元转入markdown状态1 : 设定 1 级标题2 : 设定 2 级标题3 : 设定 3 级标题4 : 设定 4 级标题5 : 设定 5 级标题6 : 设定 6 级标题Up : 选中上方单元Down : 选中

2021-05-25 12:49:22 125

原创 【Conda】Conda基础命令汇总

Conda基础命令汇总包相关安装具体包conda install package更新具体包conda update package更新所有包conda update --all环境相关创建环境conda create --name env_name列举所有环境conda info --envsconda env list激活某个环境conda activate env_name......

2021-05-25 12:25:58 169

原创 【问题记录】Jupyter Lab安装插件报错-Please install Node.js and npm before continuing installation.

问题描述Extension Installation ErrorAn error occurred installing @jupyterlab/github.Error message:Please install Node.js and npm before continuing installation. You may be able to install Node.js from your package manager, from conda, or directly from the

2021-05-25 12:13:26 10205

原创 【Oracle】看懂执行计划之 B-Tree 索引

B-Tree索引内部结构  B-Tree是一种常见的数据结构,可以显著减少定位记录时所经历的中间过程,从而加快存取速度,主要用于OLTP系统(事务系统)。B-Tree索引包含的主要组件如下:根节点(Root Node):一个B-Tree索引只有一个根节点,它实际就是位于树的最顶端的分支节点。分支节点(Branch Node):包含指向相应索引分支块或叶子块的指针和索引键值列。叶子节点(Leaf Node):包含被索引键值和该键值对应的ROWID索引项(Index Entry):对应每一条行记录

2021-05-05 11:20:59 289

原创 【Oracle】看懂执行计划之索引

Oracle 索引简介  索引是建立在表上的可选数据库对象,是一组排序后的的索引键。主要用于加快数据的检索,类似于书籍的目录,快速定位到目标数据。索引在物理上和逻辑上都是独立的,创建或删除索引对基表不会有影响。当对基表进行DML操作时Oracle会自动管理索引,无需手动处理。索引分类结构分类分区索引 索引按范围(Range)或散列(Hash,Oracle 10g中引入)进行分区 一个分区索引可能指向任何(或全部的)表分区。B-Tree索引 B-Tree索引是一个典型的树结构

2021-05-02 17:30:42 519

原创 【Oracle】看懂执行计划之表相关执行计划

全表扫描(Full Table Scans, FTS)  全表扫描是指Oracle在访问目标表里的数据时,会从该表所占用的第一个区(EXTENT)的第一个块(BLOCK)开始扫描,一直扫描到该表的高水位线(HWM,High Water Mark),这段范围内所有的数据块Oracle都必须读到。Oracle会对这期间读到的所有数据施加目标SQL的where条件过滤,最后返回满足要求的数据。  Oracle在做全表扫描操作时会使用多块读,在目标表数据量不大时执行效率是非常高的。全表扫描最大的问题是执行时间不

2021-04-30 08:50:20 180

原创 【SQLPlus】常用命令集合

查看缓存命令list清屏ho cls--------------------------------------clear screen设置每行显示的数据长度set linesize 500设置每次显示的数据行数set pagesize 50设置列宽a表示字符型,大小写均可9表示数字型,一个9表示一个数字位column ename format a20;column empno format 9999;使用/杠,执行最近一次的SQL语句/..

2021-04-29 08:56:14 291

原创 【Markdown】Markdownlint让我们的Markdown不一样

前言  Markdownlint是一款非常好用的 Markdown 格式检查工具,它规定了许多Markdown规则并实时对文档进行检查,防止一些语法错误,维持文档风格的统一,使用此工具有助于形成一个良好的写作习惯和规范。Markdownlint规范代码描述解释MD001Heading levels should only increment by one level at a time标题级数只能每次扩大一个,也就是说不能隔级创建标题,必须h1-h2-h3…这样MD00

2021-04-28 20:51:41 6703 1

原创 【Markdown】够用篇

前言  Markdown是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档。Markdown的轻量化、易读易写特性及快速转化为演讲PPT、Word产品文档,且对图片,图表、数学式都有支持等功能使得它被各大网站广泛使用。基础语法标题#号后面加一个空格,然后写标题名称;几个#号表示几级标题,最多支持六级# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题字体斜体要倾斜

2021-04-26 18:19:45 75

原创 【Oracle】看懂执行计划之优化器的模式

简介  优化器的模式决定Oracle解析目标SQL时所用优化器的类型,以及决定使用CBO时计算成本的侧重点。优化器的模式不同,CBO计算成本值的方法也不同。控制Oracle优化器模式的参数为optimizer_mode。查看参数show parameter optimizer_mode...

2021-04-24 13:36:18 505

原创 【Oracle】看懂执行计划之基于成本的优化器(CBO)

基于代价的优化方式(Cost-Based Optimization,简称CBO)  CBO选择目标SQL执行计划的判断原则是成本,从目标SQL的诸多执行计划中选取成本值最小的执行路径为其执行计划,各执行路径的成本值是根据目标SQL中涉及到的表、索引、列等相关对象的统计信息计算出来的,实际反应执行目标SQL所要消耗的I/O、CPU和网络资源的一个估计值。I/O把数据从磁盘读入内存时所需代价(Select重点指标)CPU处理内存中数据所需的代价(排序(sort)、连接(join)操作)网络资源网

2021-04-20 09:05:08 1052

原创 【Python】开发工具(IDE)

PyCharm  PyCharm是由JetBrains打造的一款专用Python IDE,带有一整套可以帮助用户提高Python开发效率的工具,比如项目代码导航、调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制等功能。PyCharm还能支持Web开发的高级框架Django。Jupyter Notebook  Jupyter Notebook 的本质是一个 Web 应用程序,一个交互式笔记本,支持运行 40 多种编程语言,便于创建和共享文学化程序文档,支持实时代码

2021-04-18 16:30:08 162

原创 【Python】环境介绍

Python  Python是一种计算机程序设计语言。它非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,除了内置的库外,Python还有大量的第三方库,供我们直接使用。Python的定位是“优雅”、“明确”、“简单”,尽量写容易看明白的代码,尽量写少的代码。Python的优点易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。2、 易于阅读:Python代码定义的更清晰。(3)易于维护:Python的成功在于它的源代码是相当容易维护

2021-04-18 10:31:13 963

原创 【Oracle】看懂执行计划之基于规则的优化器(RBO)

简介  基于规则的优化器(RBO)是通过编码在Oracle数据库中的一系列固定的规则,来决定目标SQL的执行计划。Oracle事先给各种类型的执行路径定一个等级,从1到15,等级1对应执行路径的执行效率最高,等级15对应执行路径的执行效率最低。对于等级相同的执行计划,oracle根据目标对象在数据字典中缓存的顺序判断选择哪一种执行计划。在决定目标SQL的执行计划时,RBO会从该SQL的诸多执行路径中选择一条等级最低的执行路径来作为其执行计划。  RBO中等级1对应的执行路径是“single row by

2021-04-16 11:20:07 530

原创 【Oracle】看懂执行计划之执行顺序-XPLAN包

SQLPlus中一键执行-- -------------------------------------------------------------------------------------------------- Name: xplan.sql---- Author: Adrian Billington---- Description: Creates a package named XPLAN as a wrapper over DBMS_XPLAN.

2021-04-16 08:30:52 504

原创 【Oracle】看懂执行计划之执行顺序

口诀最右最上先执行方法从上往下,第一个没有子节点的步骤先执行对于兄弟节点,即靠上的节点先执行所有兄弟节点执行完以后,执行父节点缩进最深的,最先执行缩进深度相同的,先上后下原则从上至下,从右向左由上至下:在执行计划中一般含有多个节点,相同级别(或并列)的节点,靠上的优先执行,靠下的后执行从右向左:在某个节点下还存在多个子节点,先从最靠右的子节点开始执行。  先从最开头一直连续往右看,直到看到最右边的并列的地方;对于不并列的,靠右的先执行;如果见到并列的,就从上往下看,对于并

2021-04-16 08:22:48 2735

原创 【Oracle】获取执行计划总结

获取执行计划的方法获取执行计划之Autotrace获取执行计划之explain plan for获取执行计划之dbms_xplan.display_cursor()获取执行计划之dbms_xplan.display_awr()获取执行计划之10046事件获取执行计划之10053事件获取执行计划之AWR适用场合分析简单获取执行计划的方法:explain plan for 或 set autotrace on获取目标SQL的多个执行计划:dbms_xplan.display_cursor

2021-04-15 08:34:55 138

原创 【Oracle】获取执行计划之 AWR

AWR  AWR(Automatic Workload Repository 自动工作负载库)。AWR报告是进行日常数据库性能评定、问题SQL发现的重要手段。可以自动采集Oracle运行中的负载信息,并生成与性能相关的统计数据。原理  AWR报告的原理是基于Oracle数据库的定时镜像功能。Oracle数据库后台进程会以一定间隔收集系统的快照信息,并且保存在数据库中。AWR通过比对两次快照收集到的统计信息来生成对应的报表数据。AWR来源:V$ACTIVE_SESSION_HISTORYAWR开关参

2021-04-14 08:43:49 429

原创 【Oracle】获取执行计划之 dbms_xplan.display_awr()

前提目标SQL的执行计划被Oracle采集到AWR Reponsitory中操作流程执行测试SQLselect count(1) from emp;查询Shared Pool中是否已经缓存了select count(1) from emp的执行计划select t.SQL_TEXT,t.SQL_ID,t.VERSION_COUNT,t.EXECUTIONS from v$sqlarea t where t.SQL_TEXT like '%select count(1) from em

2021-04-12 08:43:15 705

原创 【Oracle】获取执行计划之 10053 事件

1005310053事件提供了Oracle如何选择执行计划,为什么会得到这样的执行计划信息。10053事件的trace文件,只能阅读原始的trace文件,不能使用tkprof工具来处理。10053事件级别Level 2Column statisticsSingle Access PathsJoin CostsTable Joins ConsideredJoin Methods Considered (NL/MS/HA)Level 1Parameters used by the op

2021-04-08 08:30:30 278

原创 【Oracle】获取执行计划之 10046 事件

10046  10046事件可以得到Oracle内部执行系统解析、调用、等待、绑定变量等详细的信息,可以帮助我们解析一条/多条SQL、PL/SQL语句的运行状态,这些状态包括:Parse/Fetch/Execute三个阶段中遇到的等待事件、消耗的物理和逻辑读、CPU时间、执行计划等,还能帮我们分析一些DDL维护命令的内部工作原理,RMAN、Data Pump Expdp/impdp等工具缓慢问题。执行步骤方法一激活10046事件alter session set events '10046 t

2021-04-08 08:20:09 220

原创 【Oracle】获取执行计划之 dbms_xplan.display_cursor()

前提SQL执行计划仍在Shared Pool中函数体DBMS_XPLAN.DISPLAY_CURSOR( sql_id IN VARCHAR2 DEFAULT NULL, child_number IN NUMBER DEFAULT NULL, format IN VARCHAR2 DEFAULT 'TYPICAL');参数sql_id指位于库缓存执行计划中SQL

2021-04-04 13:37:50 557

原创 【Oracle】获取执行计划之explain plan for

示例explain plan for select * from emp;select * from table(dbms_xplan.display());explain plan命令通常和dbms_xplan.display()命令结合使用PL/SQL Developer里F5快捷键的原理就是调用explain plan命令原理  explain plan 命令的原理是Oracle将目标SQL所产生的执行计划写入PLAN_TABLE$(ON COMMIT PRESERVE ROWS 的

2021-04-03 15:26:40 888

原创 【小技巧】解锁软件一键启动新玩法

  电脑用时间长了桌面各种软件、工具杂乱不堪,虽然不是处女座但秉着一个有追求的程序猿,怎么也得整点高逼格的。来,下面给大家上干货展示 一键启动 实现新建文件夹选择我的电脑在其中一个硬盘中右键点击新建文件夹用来存放桌面快捷方式重命名将桌面软件的快捷方式拖到刚创建的文件夹中同时可以对快捷方式重命名环境变量找到我的电脑右键选择“属性”在属性中选择“高级系统设置-高级-环

2021-04-03 12:26:03 194

原创 【Oracle】获取执行计划之 Autotrace

Autotrace 简介AUTOTRACE是一项SQL*Plus功能,自动跟踪为SQL语句生成一个执行计划并且提供与该语句的处理有关的统计。AUTOTRACE的好处是您不必设置跟踪文件的格式,并且它将自动为SQL语句显示执行计划。Autotrace 选项说明命令输出内容简写是否真实执行SET AUTOTRACE OFF缺省模式,只显示SQL执行结果SET AUTOT OFF是SET AUTOTRACE ON显示SQL结果、执行路径和资源消耗SET AUTOT

2021-04-03 09:41:45 233

原创 【Oracle】执行计划详解

定义执行计划是一条查询语句在Oracle中的执行过程或访问路径的描述。组成目标SQL的正文、sql_id和执行计划对应的plan_hash_value执行计划主体,主要有内部执行步骤、执行顺序、谓词信息、列信息、Cardinality、Cost等执行计划的额外补充信息,是否动态采用(dynamic sampling)、是否Cardinality Feedback、是否SQL Profile模块解读主体HeaderID:序号Operation: 当前操作的内容

2021-03-31 14:02:32 7201

看懂执行计划之执行顺序-XPLAN包

可以显示执行计划对应执行顺序的工具包

2021-04-16

空空如也

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

TA关注的人

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