Oracle
文章平均质量分 59
PursueDreamZ
这个作者很懒,什么都没留下…
展开
-
已有实例创建新的数据库空间和用户,并授权
记录一下今天的创建数据库空间的操作:已有实例创建新的数据库空间和用户,并授权1、创建新的数据库空间:CREATE TABLESPACE YWGL DATAFILE 'D:\DATABASEFILES\ YWGL.DBF' SIZE 10G AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED;【注意】:DBF文件地址、表空间初始化大小及自增大小根据具体使用情况设置。2、创建用户,并授予dba权限。CREATE USER WORKBASE IDENTIFIE原创 2020-05-12 15:52:52 · 254 阅读 · 0 评论 -
重启oracle的方法
这里记录一下:Linux:方法1 用root以ssh登录到linux,打开终端输入以下命令: cd $ORACLE_HOME #进入到oracle的安装目录 dbstart #重启服务器 lsnrctl start #重启监听器这种方式可能会报一些权限问题,要设置相应的权限,如果启动失败了,可以看方法二。Linux:方法2 (1) 以oracle身份登录数据库,命令:su - oracle(注意空格) (2) 进入Sqlpl...原创 2020-05-09 09:19:29 · 2595 阅读 · 0 评论 -
Linux新建Oracle用户和数据库并导入sql文件
1、切换到Oracle用户su – oracle2、登录sys用户sqlplus / as sysdba3、创建表空间查询用户表空间文件的路径select name from v$datafile;CREATE TABLESPACE customerchat LOGGING DATAFILE '/database/app/oracle/oradata/ccorcl/...原创 2020-04-27 09:47:28 · 1378 阅读 · 0 评论 -
基于Oracle的SQL优化--学习(十七)
表移除 表移除是优化器处理带多表连接的目标SQL的一种优化手段,它是指优化器会把虽然在目标SQL中存在,但是其存在与否对最终执行结果没有影响的表从该目标SQL中移除,这样优化器至少可以少做一次表连接,进而就能提高原目标SQL的执行效率。Oracle如何处理SQL语句中的IN 优化器在处理带IN的目标SQL时,可能也会用到査询转换,也即本节要介绍的IN-ListExpansion(又称为OR...原创 2018-07-10 19:00:40 · 254 阅读 · 0 评论 -
基于Oracle的SQL优化--学习(十五)
复杂视图合并 复杂视图合并(ComplexViewMerging)是指针对那些所带视图的视图定义SQL语句中含有groupby或distinct的目标SQL的视图合并。 和简单视图合并、外连接视图合并一样,对这种视图定义SQL语句中含有groupby或distinct的复杂视图做视图合并也同样意味着要把其定义SQL语句拆开,并把其中的基表拿出来和外部査询中的表合并。这通常意味着上述视图...原创 2018-07-05 20:51:51 · 486 阅读 · 0 评论 -
基于Oracle的SQL优化--学习(十六)
连接谓语推入 连接谓词推入(JoinPredicatePushdown)是优化器处理带视图的目标SQL的另外一种优化手段,它是指虽然优化器还是会把该SQL中视图的定义SQL语句当作一个独立的处理单元来单独执行,但此时优化器会把原本处于该视图外部査询中和该视图之间的连接条件推入到该视图的定义SQL语句内部,这样做是为了能使用上该视图内部相关基表上的索引,进而能走出基于索引的嵌套循环连接。和之前介...原创 2018-07-06 23:57:48 · 417 阅读 · 0 评论 -
WITH AS的用法
一、WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。 特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,...转载 2018-08-21 13:29:40 · 23632 阅读 · 0 评论 -
pivot的用法
在数据库操作中,有些时候我们遇到需要实现“行转列”的需求,例如一下的表为某店铺的一周收入情况表:WEEK_INCOME(WEEK VARCHAR(10),INCOME DECIMAL)我们先插入一些模拟数据:INSERT INTO WEEK_INCOME SELECT '星期一',1000UNION ALLSELECT '星期二',2000UNION ALLSELECT ...原创 2018-08-21 14:39:41 · 78289 阅读 · 1 评论 -
ORA-01476: divisor is equal to zero错误
今天在执行SQL语句的时候遇到了divisor is equal to zero这个错误是sql语句中存在除数为0的情况。 把相应的为0的改为有数值的即可。原创 2018-11-27 16:00:16 · 3115 阅读 · 0 评论 -
oracle如果查询出的值为null记为0
oracle在使用sum函数计算式会遇到这样的情况。如果sum的值为null,则什么都不显示。想要如果为null,则显示为0,怎么办?方法1:select when sum(t.money) is null then 0 else sum(t.money) from Money t方法2:NVL(Expr1,Expr2)如果Expr1为NULL,返回Expr...转载 2018-12-11 20:11:41 · 15028 阅读 · 1 评论 -
用Oracle的函数实现数组然后循环
1、先建立一个包,定义数组类型: CREATE OR REPLACE PACKAGE pkg_string is -- Purpose : 字符串处理 -- Public type declarations TYPE StringArray IS VARRAY(2000) OF VARCHAR2(2000);END pkg_string;2、拆分字符串的通用函数,即...原创 2018-12-25 10:12:20 · 2836 阅读 · 0 评论 -
基于Oracle的SQL优化--学习(十四)
子查询展开 子查询展开(SubqueryUnnesting)是优化器处理带子査询的目标SQL的一种优化手段,它是指优化器不再将目标SQL中的子查询当作一个独立的处理单元来单独执行,而是将该子査询转换为它自身和外部查询之间等价的表连接。这种等价表连接转换要么是将子查询拆开(即将该子查询中的表、视图从子查询中拿出来,然后和外部査询中的表、视图做表连接),要么是不拆开但是会把该子査询转换为一个内嵌...原创 2018-07-04 19:14:06 · 230 阅读 · 0 评论 -
基于Oracle的SQL优化--学习(十三)
Oracle里的应用类型 Session Cursor的生命周期 Session Cursor是有生命周期的,每个 Session Cursor 在使用的过程中都至少会经历一次 Open、 Parse 、 Bind 、 Execute 、 Fetch 和 Close 中的 一个或多个阶段。 Session Cursor的生命周期中各个阶段的先后顺序和关联关系可以...原创 2018-07-03 19:39:45 · 343 阅读 · 0 评论 -
基于Oracle的SQL优化--学习(二)
优化器的基础知识 1、优化器的模式 Oracle中,优化器的模式是由参数OPTIMIZER_MODE的值来决定的。 1、RULE:表示Oracle将使用RBO来解析目标SQL,此时SQL中涉及的各个对象的统计信息对于RBO没有任何作用。 2、CHOOSE:Oracle 9i的默认值,表示在解析目标SQL时使用RBO还是CBO取决于SQL涉及的表对...原创 2018-06-14 22:18:20 · 338 阅读 · 0 评论 -
基于Oracle的SQL优化--学习(八)
Oracle里执行计划的稳定 使用SQL Profile来稳定执行计划 使用SQL Profile可以很容易的实现下面的目标: (1)锁定或者说稳定执行计划。 (2)在不能修改目标SQL的SQL文本的情况下使目标SQL语句按指定的执行计划运行。 SQL Profile有两种类型,一种是Automatic,一种是Manual。 Automatic类型的SQL Profile ...原创 2018-06-23 18:28:49 · 468 阅读 · 0 评论 -
基于Oracle的SQL优化--学习(三)
表连接 当优化器解析含表连接的目标SQL时,它除了会根据目标SQL的SQL文本的写法来决定表连接的类型之外,还必须决定如下三件事情才能得到最终的执行计划。 (1)表连接顺序 (2)表连接方法 (3)访问单表的方法 表连接类型 1、内连接 只要where条件中没有写那些标准SQL中定义或者Orac...原创 2018-06-15 23:38:51 · 872 阅读 · 0 评论 -
基于Oracle的SQL优化--学习(四)
第一章的总结(1)在使用 RBO 的情况下,我们可以通过调整相关对象在数据字典缓存中的缓存顺序,改变目标 sQL 中所涉及的各个对象在该 SQL 文本中出现的先后顺序,或者等价改写该 SQL 来调整其执行计划。(2)成本是指 Oracle 根据相关对象的统计信息计算出来的一个值,它实际上代表了 Oracle 根据相关统计信息估算出来的目标 SQL 的对应执行路径的 I / O 、 CPU 和网络资...原创 2018-06-17 23:35:23 · 206 阅读 · 0 评论 -
基于Oracle的SQL优化--学习(五)
Oracle的执行计划 执行计划的含义 Oracle用来执行目标SQL语句的一系列步骤的组合就被称为执行计划。 执行计划分为下面三个部分: (1)目标SQL的正文,SQL ID和其执行计划所对应的PLAN HASH VALUE。 (2)执行计划的主体。 (3)执行计划的额外补充信息。如何查看执行计划1、explain plan命令 ...原创 2018-06-18 22:55:56 · 314 阅读 · 0 评论 -
基于Oracle的SQL优化--学习(六)
如何得到真实的执行计划 得到目标SQL的执行计划,大致有以下四种方式: 1、explain plan 命令 2、DBMS_XPLAN包 3、SQLPLUS中的autotrace开关 4、10046事件 除了第四种,其他三种方法都有可能是不准的。判断一个sq计划任务任务是否准确,就要看目标SQL是否真正被执行。 对使用...原创 2018-06-19 21:25:17 · 354 阅读 · 0 评论 -
基于Oracle的SQL优化--学习(九)
Oracle里的Cursor和绑定变量 Oracle里的Cursor Oracle数据库中的Cursor分为两种类型:一种是Shared Cursor;另一种是Session Cursor。 Oracle里的Shared Cursor 库缓存:SGA中的一块内存区域,是缓存刚刚执行过的SQL语句和pl/sql语句(如存储过程、函数、包、触发器)所对应的执行计...原创 2018-06-26 20:44:55 · 870 阅读 · 0 评论 -
基于Oracle的SQL优化--学习(十一)
绑定变量窥探 当绑定变量窥探被启用后,每当 Oracle 以硬解析的方式解析使用了绑定变量的目标 SQL 时, Oracle 都会实际窥探( Peeking )一下对应绑定变量的具体输入值,并以这些具体输入值为标准,来决定这些使用了绑定变量的目标 SQL 的 where 条件的 Selectivity 和 Cardinality 的值,并据此来选择该 SQL 的执行计划。注意,这里这...原创 2018-07-02 15:47:29 · 279 阅读 · 0 评论 -
基于Oracle的SQL优化--学习(十二)
自适应游标共享 当开启原创 2018-07-02 21:18:16 · 294 阅读 · 0 评论 -
基于Oracle的SQL优化--学习(十)
Oracle里的Cursor 绑定变量( Bind variable )是一种特殊类型的变量,它又被称为占位符( Placeholder ) ,绑定变量通常出现在目标 SQL 的 SQL 文本中,用于替换 SQL 文本中的 where 条件或者 values 子句(适用于 INSERT语句)中的具体愉入值。 oracle 数据库中绑定变量的使用语法是“ : variable_name...原创 2018-06-27 20:38:03 · 424 阅读 · 0 评论 -
基于Oracle的SQL优化--学习(七)
如何查看执行计划的执行顺序 查看执行顺序的口诀是:先从最开头一直连续往右看,直到看到最右边的并列的地方;对于不并列的,靠右的先执行;如果见到并列的,就从上往下看,对于并列的部分,靠上的先执行。 对于复杂的SQL执行的语句,可以使用XPLAN包,包的源码的地址是: http://www.dbsnake.net/wp-content/uploads/2012/08/xplan.sql...原创 2018-06-20 21:19:57 · 217 阅读 · 0 评论