设为首页 收藏本站
查看: 433|回复: 0

[经验分享] oracle第二天

[复制链接]

尚未签到

发表于 2016-6-23 08:36:59 | 显示全部楼层 |阅读模式
  
  数据库
  
  
  数据文件 控制文件 重做日志文件

体系结构  
  
  
  
  
  
  数据 文件:用户的表,索引等数据
  服务器进程,随时准备为你服务完成,人和死的数据的交互。----用户怎样读取数据
  Some other process like :PMON,SMON DBWR LGWR CKPT etc.
  Ps –ef用来查看进程,ps –ef|grep 过滤 ps –ef|grep dbw 查看 DBWR oracle中进程的名字是以ora_开头的如 ora_dbw0_prod
  服务器进程会显示为一个连接的形式,若(DESCRIPTION=(LOCAL=YES)(ADDRESS=(….))
  Kill主要进程可以使数据库异常宕机。是一种比较好的黑。
  大部分服务器进程是空闲的。
  PGA,每个进程只能看到自己的PGA,PGA program global area进程相当的大 ,比SGA大。private
  SGA System Global Area Shared ,公共资源,所以存在相当多的锁,会消耗很多的资源。
  SGA有以下 几个部分:
  共享池:share pool 包括:库高速缓存liberary cache 保存执行计划 存储有关最近使用的SQL/PLSQL语句的信息。可以直接使用,如第一次执行了一条SQL第二次可以将执行计划缓存起来,以备第二次使用。当执行时,首先由hash算法寻找SQL如果寻找不到,就执行当前SQL并将此SQL存入liberary cache。库缓存是有大小限制,所以用改进的LRU算法来清除数据。 数据库字典缓存:用来保存元数据的。
  Buffer cache :保存块,当用户读取时,看看在buffer cache 中有咩有,如果有的话,取出相应的行,给用户。如果没有的话,从磁盘读,并将相应的块放在buffer cache。主要目的,尽量减少物理I/O。这里有两个概念:物理读和逻辑读。
  Java pool
  Redo log cache
  大型共享池

  重做日志缓存

  Java pool

  Buffer cache

  Sga
  
  
  

  Dictionary cache

  Share pool
  
  
  
  

  Liberary cache

  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  Show sga;
  Show parameter 参数
  Alter system set 参数=值 scope =BOTH|MEMORY|SPFILE(参数文件,本次不生效,下次启动的时候生效,暂时先不生效)
  SID=….
  Show db_cache
  显示:db_cache_size big integer 0
  Alter system set Db_cach_size=10M;for instance
  进程介绍
  DBWn:脏块有DBWn后台进程负责刷新进数据文件。作用:把用户修改的数据写回磁盘。内存和磁盘不一致的块称作脏块。用户只是产生一个脏块,所以,必须将数据从内存同步进磁盘。这个同步的过程是由DBWn来实现的。DBWn会收集一定数量的块后才会工作。工作模式:自觉、呼叫。
  Show parameter mttr来设置DBWn恢复,或者写脏块的速度,频率。
  LGWR:把用户的修改操作
  SNON:process monitor
  CKPT:check point,主要用来保证数据不丢失。
  ARCn:每切换一次,ACRn将日志文档归档到其他位置。归档:所有的record
  数字型函数
  ROUND(column|expression.n)对列或表达式的值
  RRUNC(column|expression.n)
  Select Round(135.14,-1) from dual; 135
  MOD
  日期函数
  日期:世纪,年,月,日,时,分,秒。
  可以只根据格式显示
  Alter session set nls_date_format=”yyyy-mm-dd hh24:mi:ss”;只在当前会话中生效,也就是只针对当前连接。常用sysdate;
  所有依赖环境的SQL尽量不要用 如’08-08-08’;
  日期的计算。TO_DATE(DATE,FORMAT);这样用的话,比较严谨。与环境变量无关。
  Select to_date(‘2008-08-08 8:00:00’,’yyyy-mm-dd hh24:mi:ss’)+10 from dual;
  这样就加上了十天。
  当添加小时的时候用 1/24代表一个小时 继续除 即可得到相应的 分钟-----
  ADD_MONTHS可以实现不用管本月是多少天的问题。
  Next_day下一周的第几天是几号。
  Last_day 本月最后一天
  日期的四舍五入
  Round对年月日开始对日期进行四舍五入。
  如果是半年,则月和天变为一号。
  对月四舍五入 则天被四舍五入。
  对天 则是星期。
  还有时分秒。
  默认没有参数的情况是:小时。
  Trunk 截断
  字符转换
  To_char变成任何自己想要的格式。当转换过短的时候,结果会变成#########很多的################转换不了,宽度不够,需要调整。
  To_number(字符,格式) to_number(字符)
  Nvl 空值可以转换为零的函数。
  Coalesce(expression…..)第一个不为空的值
  Case看做一个函数,并不是一个语句流的控制。以为其总会返回值。
  Case expression when expression then result1
  When expression then resullt2;
  Select Case nvl(sal,0) when 0 then ‘new guy’||name else name end from t1;如果是工资为0则显示为新员工new guy。


  Decode(判断表达式,判断结果1|判断结果2…….)判断表达式和结果表达式相等,则满足条件。
  Decode(nvl(sal,0),0,’new’||name,1000,’leader’||name)
  等值连接
  笛卡尔乘积。一个表的一行和另一个表的所有行相连。
  列和表的后面加空格 跟别名。
  两表相连 然后生成新表和第三个表相连。
  普通连接:等值连接,不等值连接。
  外连接:在进行连接的时候,即使某个表的条件不满足 ,仍然让其显示出来。在少的后面添加(+)少行的后面:
  Select spbh,mc from sp,lx where sp.lxbh(+)=lx.lxbh;
  Select nvl(spbh,’empty’),mc from sp,lx where sp.lxbh(+)=lx.lxbh;让空的地方有显示的东西。更适合判断。
  其实做外连接和右外连接没有根本型的区别。
  、不能有IN,不能有OR但可以有and、
  自连接:自己连接自己。

  函数
  字符函数、数字函数、日期函数、转换函数
  函数都返回结果。
  单行函数:只对某行的值操作、多行函数:对多行的值进行操作如sum(salary)。
  函数的嵌套形式。
  数据类型的自动转换。Select pow(‘2’,’10’)form dual;这个时候会自动转换的。
  函数的使用位置非常灵活。Sql reference.包括所有的函数和所有的命令。
  SUBSTR
  Lengthb 返回字节 
  Instr出现位置。V$dbfile 常用的一个视图。LPAD RPAD 用来凑总字符数.
Trim(leading|trailing|both from)
  Replace
  
  组函数
  有叫多行函数。
  Sum avg 求和时空值被忽略,求平均时空值亦被忽略。当想用的时候可以提那家nvl来转化。Max min也不会考虑空值。处理空就用nvl
  Count 仍然不考虑空值。当count(*)的时候会把空值考虑进去。
  Distinct
  
  
  分组命令:group by。分组之后空值是可以显示出来的。分组之后加条件,用having。在分组之后 才会由意义。Where在分组前 having在分组后 尽量用where去过滤数据。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-233896-1-1.html 上篇帖子: oracle job 详解 下篇帖子: Oracle——13集合
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表