- 博客(20)
- 收藏
- 关注
转载 sys和system用户、sysdba和sysoper系统权限、dba角色的区别
一、 sys和system用户的区别(1)最重要的区别,存储的数据的重要性不同 【sys】所有oracle的数据字典的基本和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户。【system】 用户用于存放次一级的
2012-08-02 17:16:56
2445
原创 显示某月的每一天日期
今天遇到客户需求,要显示每月的每一天的数据,哪怕那天没有数据也要显示出来日期,客户的需求是一朵奇葩,不过正是这些奇葩提高了自身的技能:代码如下:select to_char(to_date('&month','yyyymm')+(rownum-1),'dd') DAY_IDfrom dualconnect by rownum
2012-08-01 10:47:13
2671
转载 DBWR和LGWR在什么情况下执行写?
DBWR执行写情况:①没有可用的缓冲区情况②脏缓冲区过多③遇到三秒超时④遇到检查点LGWR 执行写情况①执行COMMIT②超过日志缓冲区1/3或者超过1M③DBWR正要执行写之前细心的人会发现为什么很多人会对LGWR的写情况增加一条“三秒超时”,其实原因很简单,正是由于LGWR的第③条与DBWR的第③条导致LGWR也有“三秒超时”的习惯 在提交COMMI
2012-07-30 17:36:38
4026
原创 移动表空间的数据文件
如果把所有的数据文件都放在同一个磁盘上,最终会带来I/O的瓶颈,以及数据的不安全性。因此应该把数据文件分散在不同的磁盘,这样对于性能和安全将会有提升。下面来做一个移动表空间的数据文件的实验:1、首先要使该数据文件所在的表空间offline:sys@ORCL> alter tablespace eygle offline;Tablespace altered.2、然后
2012-07-17 22:32:11
906
原创 Oracle分页例子:
对于一些网站搜索或者BBS经常会要求分页显示,为了快速显示出第一页的信息,需要加first_rows(n)来快速显示最前面的几行数据。实例:select/*+first_rows(10)*/ *from (select/*+first_rows(10)*/ t.*,rownum rn from(select/*+first_rows(10)*/ * from t order
2012-07-14 11:17:18
885
原创 Oracle优化器(RBO与CBO)
Oracle的优化器有两种,基于规则的优化器(RBO)和基于代价的优化器(CBO)。在8i之前,Oracle使用的是RBO(Rule Based Optimizer,基于规则的优化器),他的执行非常简单,就是在优化器里面嵌入15中规则,执行SQL语句符合哪种规则,就按照规则定制出相应的SQL执行计划。由于他是一种过时呆板的优化器,在10g以后的版本中已经被踢出掉了。从8i开始,Oracle
2012-07-08 12:10:07
3331
原创 Oracle append Hint(四)
既然直接加载会产生少量的redo,那么再加入并行会并行的往表中插入数据,肯定速度会更快,即:insert/*+append parallel(t,4)*/ into tselect * from t1;到底结果是不是这样呢?请看例子:sys@ORCL> alter session enable parallel dml; Session altered. sys@O
2012-07-05 00:14:34
2545
原创 Oracle append Hint(三)
如果一个表上有索引,那么直接加载又会是什么情况呢?产生的redo量跟传统加载又相差多少呢?例子:sys@ORCL> create table t 2 as 3 select * from dba_objects where 1=0; Table created. sys@ORCL> create index t_ind on t(object_id);
2012-07-04 22:39:09
1377
原创 Oracle append Hint(二)
很多人都认为使用直接加载可以大量减少redo的产生量,实际上直接加载并非在任何时候都能减少redo的产生。如果对象实在LOGGING模式下,直接加载并不能显著的减少日志量。看一个例子:sys@ORCL> create table t 2 as 3 select * from dba_objects where 1=0; Table created. sys@OR
2012-07-04 00:02:00
2751
原创 Oracle append Hint(一)
在执行数据插入或数据加载时,可以通过append Hint的方式进行数据库直接加载,可以在insert的SQL语句里面使用append,比如:insert/*+append*/ into t select * from dba_objects;Oracle执行直接加载时,数据直接追加到数据段的最后,不需要花费时间在段中寻找空闲,数据不经过Data Buffer直接写到数据文件中,效率自然比传统
2012-07-03 23:37:01
5017
转载 Oracle物化视图
Oracle的物化视图提供了强大的功能,可以用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,而从快速的得到结果。物化视图有很多方面和索引很相似:使用物化视图的目的是为了提高查询性能;物化视图对应用透明,增加和删除物化视图不会影响应用程序中SQL语句的正确性和有效性;物化视图需要占用存储空间;当基表发生变化时,物化视图也应当刷新。 物化
2012-06-24 16:52:28
1222
原创 hextoraw函数和rawtohex函数
介绍下两个函数的作用:hextoraw():十六进制字符串转换为raw;rawtohex():将raw串转换为十六进制;先来看下hextoraw()函数,当出现比f大的字母时(以a最小z最大)就会报错:正确结果:sys@ORCL> select hextoraw('abcdef') from dual;HEXTOR------ABCDEF错误结果:s
2012-06-22 18:06:28
41696
原创 Oracle instr函数
今天在群里面有人问到instr的用法,下面我也来总结一下吧语法如下: instr( string1, string2 [, start_position [, nth_appearance ] ] ) 参数分析: string1 源字符串,要在此字符串中查找。 string2 要在string1中查找的字符串. start_position
2012-06-19 21:26:06
1278
原创 Oracle Sequence中Cache与NoCache的区别
Oracle在创建序列(sequence)时有个参数你可以选择cache或者nocache,下面来讲一下两者的区别:先来看下创建sequence的语句:create sequence SEQ_ID minvalue 1 maxvalue 99999999 start with 1 increment by 1 cache n / nocache --其中n
2012-06-17 09:57:08
34118
原创 undo表空间居高不下和enq: US - contention
这几天遇到一个错误,我也不知道算不算错误吧,因为没有报错,只是在那突然的短短2分钟内表的操作突然降低了,导致了该软件重新启动。查看alert日志没有报错,而是在ASH里找到了TOP SQL框有一个这样的错误,使我百思不得其解。查看该SQL语句只是简单的一个更新,并不需要优化。最后再百度、google的帮助下终于找到了错误原因,原来与UNDO的设置有关。首先来介绍下undo_retention参数,
2012-06-16 12:25:16
6990
原创 误删除数据文件
前几天做了一个感觉很迷惑的实验,步骤如下:sys@ORCL> col name format a30sys@ORCL> select file#,ts#,name from v$datafile; FILE# TS# NAME---------- ---------- ------------------------------ 1
2012-06-16 11:30:55
795
原创 Oracle多版本和读一致性
对于以Oracle后台的开发人员了解Oracle多版本和一致读尤其重要,因为它在很大程度上提升了数据库的并行操作。如果对并发了解的不够,通常会遇到以下几种情况:1、破坏了数据的完整性2、随着用户数的增多,应用的运行速度减慢3、不能很好的扩展应用来支持大量用户介绍多版本和一致读之前先来了解下Oracle的锁机制:1、Oracle只在修改时才对数据加载行级锁2、写入器不会阻塞读
2012-06-13 16:21:36
2645
原创 Oracle同义词的使用
今天看书,突然想到了同义词,于是就产生了2个问题:1、如何查看同义词是public还是private;2、对public和private同义词是否可以重名?于是针对这两个问题做了个实验:首先对scott赋予创建同义词的权限:sys@ORCL> grant createsynonym to scott; (创建私有同义词权限)sys@ORCL> grant create
2012-06-09 21:55:59
5992
原创 数据库和实例
这篇文章跟数据库开发有什么关系呢?我感觉呢只从字面上看确实没有什么关系,可是了解的话跟大牛讨论时他们最起码不会被鄙视、面试时可能也会有用。如果你再深入的钻研下去你就会发现里面的内容好“丰满”。作为一个菜鸟(指本人)以前跟别人讨论数据库时经常会说:“Oracle数据库、SQL Server数据库、DB2数据库”,以至于我认为数据库是一种软件(对于Oracle、微软、IBM来说也确实是软件),刚接触O
2012-05-21 15:17:15
27067
原创 数据库开发之绑定变量
对于每个程序开发人员来说,数据库的知识都是或多或少的了解些,都能编写一些SQL语句,即使不会也可以使用一些工具来生成SQL语句,因此数据库在很多时候被认为是没有必要研究的。随着系统使用人数增加,系统也遇到了瓶颈,于是开发人员高呼:“给我内存与CPU,系统将会faster!”可是作为盈利性企业,投入与回报是不能成等价比的,必须做到投入少回报多!所以,数据库的开发在系统的前期工作当中非常重要,良好的数
2012-05-21 11:12:06
4310
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人