首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Oracle SQL记录

一、前言 本博客只记录工作中的一次oracle sql记录,因为数据量过多导致的查询缓慢,一方面是因为业务太过繁杂,关联了太多表。面对复杂的业务场景,确实有些情况是需要关联很多表的。...二、注意点 对于SQL,不要马上就说加索引什么的,加索引不一定就能解决问题的,加错索引,反而会导致查询变慢,注意加索引的同时也会影响数据库写数据的速度。...三、Oracle执行计划 对于SQL,可以通过Oracle的执行计划来分析。oracle的执行计划确实是对sql进行分析的一种很好的方法。 下面介绍一下oracle的执行计划。...当然这些都是根据实践业务场景来的。我遇到的业务场景是适合的。因为关联的表数据量很大。...方面的博客都放在:https://blog.csdn.net/u014427391/article/category/6112832 然后推荐一本oracle书籍《收获,不止SQL优化》一书

1.1K30

Oracle SQL之表设计

不过要记得加全局索引,而不加分区索引,分区类型:分区分为范围分区、列表分区、HASH分区、组合分区四种,用了分区表,查询时就定位到对应的区,而不用全表,所以查询效率比普通表好,当然有很多细节,还是建议看《收获,不止sql...210,220)), rpad('*', 1, '*') from dual connect by rownum <= 1000; commit; 组合分区 主要有两种:oracle11...之前只支持范围列表分区(RANGE-LIST)和范围散列分区(RANGE-HASH),oracle11之后支持(范围范围分区)RANGE-RANGE、 (列表范围分区)LIST-RANGE、(列表散列分区...user_indexes b where a.index_name = b.index_name and a.status = 'UNUSABLE'; 分区表索引失效的操作,表格来自《收获,不止SQL

46140
您找到你想要的搜索结果了吗?
是的
没有找到

Oracle SQL系列之sql共享池

遇到需要排查一个系统使用sql的情况,可以通过查询Oracle的$sql、$ssssion、$sqlarea进行统计排查 排查时可以先看一下$sql和$session的基本信息 select *.../51331120 SQL_TEXT //当前正在执行的游标的sql文本的前1000个字符 SQL_FULLTEXT //CLOB类型 整个sql文本,不用借助于V$SQL_TEXT视图来查看整个文本...去Oraclesql共享池$sqlarea查询sql的执行次数,分析SQL执行性能 EXECUTIONS :所有子游标执行SQL的次数 DISK_READS:所有子游标执行SQL需要读的硬盘次数...BUFFER_GETS :所有子游标执行SQL需要读的内存次数 ELAPSED_TIME:所有子游标执行SQL需要的时间 分析SQL执行性能 SELECT SQL_TEXT, SQL_FULLTEXT...sql,上述数据越低就说明SQL执行速度越高,性能越好

23820

Oracle SQL系列之SQL Monitor Report

1、SQL Monitor简介 sql monitor是oracle官方提供的自动监控符合特定条件的SQL,用于收集执行时的细节信息的监控工具,常用于sql和系统性能监控 2、捕捉sql的前提 sql...,'ACTIVE',其中'ACTIVE'只在11g R2以后才支持 4.1、SQL_ID获取 sql monitor使用,必须在sql中使用/* +MONITOR*/ Hint,然后数据会存在v$sql_monitor...查询,获取sql_id select sql_id,sql_text from v$sql_monitor where sql_text like '%t_unit_info% 4.2、Text文本格式...dbms_sqltune.report_sql_monitor from dual; 5.2、查看某个sqlsql monitor report 查看某个sqlsql monitor report...查看某个sql的整体性能 查看某个sql的整体性能 SELECT DBMS_SQLTUNE.report_sql_monitor_list(sql_id=>'2rjh5d5k2yujz',type

71320

Oracle SQL系列之SQL Monitor Report

1、SQL Monitor简介 sql monitor是oracle官方提供的自动监控符合特定条件的SQL,用于收集执行时的细节信息的监控工具,常用于sql和系统性能监控 2、捕捉sql的前提 sql...,‘ACTIVE’,其中’ACTIVE’只在11g R2以后才支持 4.1、SQL_ID获取 sql monitor使用,必须在sql中使用/* +MONITOR*/ Hint,然后数据会存在v$sql_monitor...查询,获取sql_id select sql_id,sql_text from v$sql_monitor where sql_text like '%t_unit_info% 4.2、Text文本格式...dbms_sqltune.report_sql_monitor from dual; 5.2、查看某个sqlsql monitor report 查看某个sqlsql monitor report...sql的整体性能 查看某个sql的整体性能 SELECT DBMS_SQLTUNE.report_sql_monitor_list(sql_id=>'2rjh5d5k2yujz',type =>'

82810

Oracle SQL之分区表

不需要修改SQL查询和DML语句以访问分区表。但是,在定义分区之后,DDL语句可以访问和操作个别分区,而不是整个表或索引。这就是分区可以简化大型数据库对象的可管理性的方式。...官方文档的说法,https://docs.oracle.com/cd/B19306_01/server.102/b14220/partconc.htm#sthref2604: (1) 分区支持数据管理操作...三、分区表分类 分区类型:分区分为范围分区、列表分区、HASH分区、组合分区四种,图来自Oracle官方网站 ?...user_indexes b where a.index_name = b.index_name and a.status = 'UNUSABLE'; 附录:分区表索引失效的操作 ps:表格来自《收获,不止SQL...》一书作者的整理 操作动作 操作命令 是否失效(全局索引) 如何避免(全局索引) 是否失效(分区索引) 如何避免(分区索引) truncate分区 alter table part_tab_trunc

1.1K10

SQL之性能

基于语法的优化指的是为不考虑任何的非语法因素(例如,索引,表大小和存储等),仅考虑 在 SQL 语句中对于词语的选择以及书写的顺序。...针对专门操作符的 前面,讲的是关于查询条件的一般规则,在这一节中,将讨论如何使用专门的操作符来改进 SQL 代码的性能。...与 (AND) 数据库系统按着从左到右的顺序来解析一个系列由 AND 连接的表达式,但是 Oracle 却是个例外,它是从右向左地解析表达式。...WHERE column2 = 'B' AND column1 = 'A' 这里假设 column2 = 'B'的概率较低,如果是 Oracle 数据库的话,只需将规则反过来用即可。...本文总结的是一些 SQL 性能的比较初级的方面,SQL 还包括 Order by,Group by 以及 Index 等等。

1.7K30

Oracle SQL系列之AWRSQRPT报告简介

我写的SQL专栏:https://blog.csdn.net/u014427391/article/category/8679315 整体分析工具 AWR:关注数据库的整体性能的报告; ASH:...数据库中的等待事件与哪些SQL具体对应的报告; ADDM:oracle给出的一些建议 AWRDD:Oracle针对不同时段的性能对比报告 AWRSQRPT:oracle获取统计信息与执行计划 不同场景对应工具...局部分析工具: explain plan for set autotrace on statistics_level=all 直接通过sql_id获取 10046 trace awrrpt.sql...,我们可以使用Oracle的执行计划进行sql,但是对于整个系统来说,你可以知道哪些sql比较耗时?...的命令找不到文件 这个要根据自己的Oracle安装路径去修改,例如: @D:/oracle/product/11.2.0/dbhome_1/RDBMS/ADMIN/awrsqrpt.sql (1)AWRSQRPT

52020

Oracle SQL系列之AWRDD报告简介

我写的SQL专栏:https://blog.csdn.net/u014427391/article/category/8679315 整体分析工具 AWR:关注数据库的整体性能的报告; ASH:...数据库中的等待事件与哪些SQL具体对应的报告; ADDM:oracle给出的一些建议 AWRDD:Oracle针对不同时段的性能对比报告 AWRSQRPT:oracle获取统计信息与执行计划 不同场景对应工具...局部分析工具: explain plan for set autotrace on statistics_level=all 直接通过sql_id获取 10046 trace awrrpt.sql...,我们可以使用Oracle的执行计划进行sql,但是对于整个系统来说,你可以知道哪些sql比较耗时?...的命令找不到文件 这个要根据自己的Oracle安装路径去修改,例如: @D:/oracle/product/11.1.0/db_1/RDBMS/ADMIN/awrddrpt.sql (1)快照报告格式

43620

Oracle SQL系列之AWR报告简介

Statistics 一、AWE报告生成步骤 对于SQL,局部SQL,我们可以直接使用执行计划等直接,而对于整个系统来说?...整体分析工具 AWR:关注数据库的整体性能的报告; ASH:数据库中的等待事件与哪些SQL具体对应的报告; ADDM:oracle给出的一些建议 AWRDD:Oracle针对不同时段的性能对比报告...AWRSQRPT:oracle获取统计信息与执行计划 不同场景对应工具 局部分析工具: explain plan for set autotrace on statistics_level=all.../RDBMS/ADMIN/awrrpt.sql 例如我的命令为: @D:/oracle/product/11.1.0/db_1/RDBMS/ADMIN/awrrpt.sql sqlplus登录的可以使用...Statistics SQL Statistics从几个维度列举了系统执行比较慢的SQL,可以点击,然后拿SQLSQL可以用执行计划看看 对于AWR的性能指标还有很多,本博客是看了《收获

1.2K21

Oracle sql(网络优化知识点)

,对于学习oracle方面的SQL优化是有帮助的,https://blog.csdn.net/u014427391/article/details/87656904 一、访问数据的方法 Oracle访问表中数据的方法有两种...创建唯一性索引SQL是: create unique index 索引名 on 表名(列名) 例子,例子来自《基于OracleSQL优化》一书: scott用户登录 SQL> create table...(Optimizer):优化器是Oracle数据库内置的一个核心子系统,负责解析SQLOracle优化器是Oracle系统的一个核心组件,其目的是按照一定的原则来获取目标SQL在当前情形下执行的最高效执行路径...2.2 SQL执行过程 Oracle SQL的执行过程: 2.3 结果集 结果集(Row Source)是指包含指定执行结果的集合。结果集适用于RBO和CBO。...《基于OracleSQL优化一书》,作者提供了改写等价sql的方法,比如在sql的where条件中对number或者date类型的列加0, select * from 表格 where a+0>参数

67300

Oracle SQL系列之经验小归纳

文章目录 一、写作前言介绍 二、注意点 三、Oracle执行计划 四、方法记录 4.1 强制索引使用 4.2 基数反馈机制 4.3 oracle开窗函数 一、写作前言介绍 本博客只记录工作中的一次...oracle sql记录,因为数据量过多导致的查询缓慢,一方面是因为业务太过繁杂,关联了太多表。...不过因为本人不做DBA工作,是做开发的,所以本博客只能参考,不能当做规范 二、注意点 对于SQL,不要马上就说加索引什么的,加索引不一定就能解决问题的,加错索引,反而会导致查询变慢,注意加索引的同时也会影响数据库写数据的速度...三、Oracle执行计划 对于SQL,可以通过Oracle的执行计划来分析。oracle的执行计划确实是对sql进行分析的一种很好的方法。 下面介绍一下oracle的执行计划。...方面的博客都放在:https://blog.csdn.net/u014427391/category_8679315.html 然后推荐一本oracle书籍《收获,不止SQL优化》一书

38120

Oracle SQL之绑定变量用法简介

本文链接:https://blog.csdn.net/u014427391/article/details/101017248 一、SQL执行过程简介 继上一篇博客Oracle的cursor学习笔记...:Oracle的游标Cursor原理简介,再介绍oracle的绑定变量 介绍绑定变量之前,先介绍SQL执行过程和硬解析的概念: 执行sql的过程,会将sql的文本进行hash运算,得到对象的hash值,...,解析树等对象,如果找不到库缓存对象句柄,就需要重新解析,这个过程解析过多,容易造成硬解析问题 硬解析:是指Oracle在执行目标SQL时,在库缓存中找不到可以重用的解析树和执行计划,而不得不从头开始解析目标...; end; / 所以绑定变量在pl/sql里的核心语法为: execute immediate [sql语句] using [变量] 2.3、PL/SQL批量绑定变量 例子来自《基于Oracle的...(); 批量绑定变量写法: 此例子来自《基于OracleSQL优化》一书: String vc_sql = 'update t_emp set sal = ?

1.2K20

SQL系列文章之—SQL简介

自动SQL调整 管理SQL集 使用SQL顾问分析SQL 使用SQL访问顾问优化访问路径 SQL管理对象 管理SQL Profile SQL计划管理概述 管理SQL计划基准 1 SQL简介...1.4.2.1 自动SQL工具 Oracle数据库提供了几个与SQL相关的顾问程序。 此外,SQL计划管理是一种可以防止性能回归的机制,还可以帮助您提高SQL性能。...1.4.2.1.2 SQL顾问 SQL顾问是内部诊断软件,可识别有问题的SQL语句,并建议如何提高语句性能。...在数据库维护窗口期间作为自动维护任务运行时,SQL顾问称为自动SQL调整顾问SQL顾问将一个或多个SQL语句作为输入,并调用自动调整优化器对语句执行SQL。...例如,DBMS_SQLTUNE 包是SQL顾问的命令行界面。 Oracle建议将Cloud Control作为数据库管理和的最佳界面。

1.8K30

Oracle SQL系列之cursor学习笔记

文章目录 一、oracle库缓存 1.1、库缓存简介 1.2、相关概念 1.3、库缓存结构 1.4、sql执行过程简介 二、oracle cursor 2.1、cursor分类 2.2、shared cursor...2.3、session cursor 2.4、sql执行过程 最近在看《基于oraclesql优化》一书,并做了笔记 一、oracle库缓存 1.1、库缓存简介 介绍oracle cursor...(游标)之前先,介绍一下oracle的库缓存,Oracle库缓存(Library Cache)是SGA中的一块内存区域,它的主要作用是缓存刚刚执行过的SQL语句或者PL/SQL语句(比如存储过程、函数、...库缓存的结构,图来自《基于OracleSQL优化》一书: 库缓存是由一组Hash Buckets组成的,Hash Buckets里面存储的hash值相同的库缓存对象句柄,而Hash Buckets...cursor 2.2、shared cursor shared cursor存储目标SQLsql文本、解析树、该sql使用的绑定变量类型和长度、以及该SQL的执行计划等信息 oracle中的shared

46520

Spark | Spark SQL参数

欢迎您关注《大数据成神之路》 前言 Spark SQL里面有很多的参数,而且这些参数在Spark官网中没有明确的解释,可能是太多了吧,可以通过在spark-sql中使用set -v 命令显示当前spark-sql...本文讲解最近关于在参与hive往spark迁移过程中遇到的一些参数相关问题的。 内容分为两部分,第一部分讲遇到异常,从而需要通过设置参数来解决的;第二部分讲用于提升性能而进行的。...异常 spark.sql.hive.convertMetastoreParquet parquet是一种列式存储格式,可以用于spark-sql 和hive 的存储格式。...性能 除了遇到异常需要被动调整参数之外,我们还可以主动调整参数从而对性能进行。...com.mysql.jdbc,org.postgresql,com.microsoft.sqlserver,oracle.jdbc A comma separated list of class prefixes

6.8K62

Oracle SQL系列之索引知识学习笔记

文章目录 一、Oracle索引简介 1.1 索引分类 1.2 索引数据结构 1.3 索引特性 1.4 索引使用注意要点 1.5、索引的缺点 1.6、索引失效 二、索引分类介绍 2.1、位图索引 1.2、...函数索引 1.3、反向索引 1.4、全文索引 一、Oracle索引简介 在看《收获,不止SQL优化》一书,并根据书中例子进行实践,整理成笔记 1.1 索引分类 Oracle索引分为BTree索引、位图索引...1.2 索引数据结构 Oracle索引中最常用的是BTree索引,所以就以BTree索引为例,讲一下BTree索引,BTree索引数据结构是一种二叉树的结构,索引由根块(Root)、茎块(Branch)...(t , idx_type_id) */ * from t where object_id>=20 and object_id<2000 and object type='TABLE'; (3)、Oracle...、全文索引 全文索引:所谓Oracle全文索引是通过Oracle词法分析器(lexer)将所有的表意单元term存储dr$开头的表里并存储term出现的位置、次数、hash值等等信息,Oracle提供了

54710

MaxCompute SQL

SQL成本计算=读取IO数据量*SQL复杂度 所以,SQL可以从两方面入手:①减少数据量;②降低SQL复杂度 一、减少数据量 1.表分区优化 (1)创建分区表 (2)分区裁剪、避免全表扫描。...2.列裁剪、条件过滤 (1)避免使用select * ,查询需要的列 (2)使用Limit N (3)使用条件过滤,pushdown. 3.源表合并 (1)合并不同SQL,一读多计算 (2)子查询合并...二、优化SQL复杂度 1.JOIN连接,MapJoin优化(SELECT /* + MAPJOIN(b) */) 运行原理: ①小表数据全部加载内存; ②读取大表的每个...④普通join连接可能发生数据倾斜(原因:null值、缺省值、大Key值;数据分发不合理等),可以显示指定mapjoin: 增加源表作为大表的并发度:set odps.sql.mapper.split.size...= 128; 增加子查询作为大表并发度:set odps.sql.joiner.instances = 1111; 2.Full outer join 全连接优化 (1)使用限制

1.5K20

SQL 写入

今天看到一篇非常适合本人这种数据库小白级别的人学的文章,做个笔记,学习之。 首先建一个用户表: CREATE TABLE [dbo]....在客户端代码中,我们使用拼接SQL语句方式实现数据写入,由于SQL语句是动态执行的,所以恶意用户可以通过拼接SQL的方式实施SQL注入攻击。   ...对于SQL注入攻击,我们可以通过以下方式防御: 正则表达校验用户输入 参数化存储过程 参数化SQL语句 添加数据库新架构 LINQ to SQL 下面参数化SQL语句: using (var conn...解析器的开销   当我们向SQL Server传递SQL语句INSERT INTO …时,它需要对SQL语句进行解析,由于SQL Server解析器执行速度很快,所以解析时间往往是可以忽略不计,但我们仍然可以通过使用存储过程...SQL Server保证每条语句执行时,数据库是完全可预测的(例如:预测SQL执行方式和管理锁都需要耗费一定的时间)。

95460
领券