当前位置:  数据库>oracle
本页文章导读:
    ▪oracle trunc函数使用详解      oracle trunc函数使用介绍核心提示:oracle trunc函数使用介绍    1.TRUNC(for dates)   TRUNC函数为指定元素而截去的日期值。   其具体的语法格式如下:   .........
    ▪演示共享池中的 Latch 争用      本文内容 Latch 和等待 共享池中的 Latch 争用   Latch 和等待     假设,一个数据块正在被一个会话从磁盘中读如到内存中,请注意,是正在读取中,此时,如果另外一.........
    ▪Linux平台下卸载ORACLE      实验环境:操作系统版本:Red Hat Enterprise Linux Server release 5.5 (Tikanga), 数据库版本 :Oracle Database 10g Enterprise Edition Release 10.2.0.1.0。卸载ORACLE 10g的过程,在不同平台或不同版本数据可能有些.........

[1]oracle trunc函数使用详解
    来源:    发布时间: 2013-10-29

oracle trunc函数使用介绍

核心提示:oracle trunc函数使用介绍

    1.TRUNC(for dates)
   TRUNC函数为指定元素而截去的日期值。
   其具体的语法格式如下:
   TRUNC(date[,fmt])
    其中:
    date一个日期值
    fmt日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去
   下面是该函数的使用情况:
   TRUNC(TO_DATE('24-Nov-1999 08:00 pm'),'dd-mon-yyyy hh:mi am')
   ='24-Nov-1999 12:00:00 am'
   TRUNC(TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh:mi am'),'hh')='24-Nov-1999 08:00:00 am'
   trunc(sysdate,'yyyy') --返回当年第一天。
   trunc(sysdate,'mm') --返回当月第一天。
   trunc(sysdate,'d') --返回当前星期的第一天。
   trunc(sysdate,'dd')--返回当前年月日
    2.TRUNC(fornumber)
   TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。
   其具体的语法格式如下
   TRUNC(number[,decimals])
    其中:
    number待做截取处理的数值
    decimals指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分
   下面是该函数的使用情况:
   TRUNC(89.985,2)=89.98
   TRUNC(89.985)=89
   TRUNC(89.985,-1)=80
   注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。与取整类似,比如参数为1即取整到十分位,如果是-1,则是取整到十位,以此类推。

本文链接


    
[2]演示共享池中的 Latch 争用
    来源:    发布时间: 2013-10-29

本文内容

  • Latch 和等待
  • 共享池中的 Latch 争用

 

Latch 和等待

    假设,一个数据块正在被一个会话从磁盘中读如到内存中,请注意,是正在读取中,此时,如果另外一个会话也正需要这个数据块,他该怎么办?

    此时,丈等待这个数据块被读取到内存中,这样就可以只有一个数据块在内存中,不会导致数据的不一致性。那么,正在读取数据块的会话如何能阻止别的会话继续读取这个数据块呢?方法是它需要获得一种像锁一样的资源,以便阻止其他的会话来做相同的事情,这种资源就叫 Latch。Latch 是 Oracle 为了保护内存结构而产生。

    Latch 不会造成阻塞,只会导致等待。导致 Latch 争用而等待的原因很多,内存中很多资源都可能存在争用。最常见的两类 Latch 争用:

  • 共享池中的 Latch 争用
  • 数据缓冲池中的 Latch 争用

 

共享池中的 Latch 争用

创建测试环境

    用 sys 用户登录,查看 Latch 争用情况:
SQL> select * from v$latchname where name like 'library cache%';   LATCH# NAME HASH ---------- -------------------------------------------------- ---------- 278 library cache load lock 2952162927   SQL>

    在分析系统性能是,如果看到 library cache 这样的 Latch 争用,就可以断定是共享池中出现了问题,这基本上是有 SQL 语句导致的,比如没有绑定变量或一些存储过程被反复分析。

    下面是来自 asktom.oracle.com 上给出的一个在有绑定变量和无绑定变量的情况下,Latch 资源争用的对比测试。该测试被很多 Oracle 书籍引用。测试让一条 SQL 语句执行1万次,然后给出各自的执行过程中产生的资源使用情况。

    用 sys 用户新建用户 test 并授权。

SQL> create user test identified by test default tablespace users;   用户已创建。   SQL> grant dba to test;   授权成功。   SQL> grant select on sys.v_$statname to test;   授权成功。   SQL> grant select on sys.v_$mystat to test;   授权成功。   SQL> grant select on sys.v_$latch to test;   授权成功。   SQL> grant select on sys.v_$timer to test;   授权成功。   SQL>   已新建用户登录。

    用 test 用户登录,执行如下操作:

SQL> conn test/test 已连接。 SQL> CREATE GLOBAL TEMPORARY TABLE run_stats 2 ( 3 runid VARCHAR2 (15), 4 name VARCHAR2 (80), 5 VALUE INT 6 ) 7 ON COMMIT PRESERVE ROWS;   表已创建。   SQL> CREATE OR REPLACE VIEW stats 2 AS 3 SELECT 'STAT...' || a.name name, b.VALUE 4 FROM SYS.v_$statname a, SYS.v_$mystat b 5 WHERE a.statistic# = b.statistic# 6 UNION ALL 7 SELECT 'LATCH.' || name, gets FROM SYS.v_$latch 8 UNION ALL 9 SELECT 'STAT...Elapsed Time', hsecs FROM SYS.v_$timer;   视图已创建。   SQL> CREATE OR REPLACE PACKAGE runstats_pkg 2 AS 3 PROCEDURE rs_start; 4 5 PROCEDURE rs_middle; 6 7 PROCEDURE rs_stop (p_difference_threshold IN NUMBER DEFAULT 0); 8 END; 9 /   程序包已创建。   SQL> CREATE OR REPLACE PACKAGE BODY runstats
    
[3]Linux平台下卸载ORACLE
    来源:    发布时间: 2013-10-29

实验环境:操作系统版本:Red Hat Enterprise Linux Server release 5.5 (Tikanga),
数据库版本 :Oracle Database 10g Enterprise Edition Release 10.2.0.1.0。
卸载ORACLE 10g的过程,在不同平台或不同版本数据可能有些步骤略有不同,具体操作的时候请结合实际情况酌情处理。

1. 首先做好备份工作(如果有需要的话,如果你想重新完全安装,可以忽略这个步骤)。用 oracle 用户登录。 最好先做一些备份工作。例如备份数据库文件等。

2. 使用SQL*PLUS停止数据库

[oracle@wgods ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Mar 27 09:35:23 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

3. 停止Listener服务
[oracle@wgods ~]$ lsnrctl stop

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 27-MAR-2013 09:37:21

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
The command completed successfully

4. 停止HTTP服务
[oracle@wgods ~]$ service httpd stop

5. 删除$ORACLE_BASE目录下的所有文件

[oracle@wgods ~]$ echo $ORACLE_BASE
/database/oracle
[oracle@wgods ~]$ ls -lrt /database/oracle
total 40
drwxrwx--- 3 oracle oinstall 4096 Dec 14 11:28 product
drwxrwx--- 6 oracle oinstall 4096 Dec 14 11:36 oraInventory
drwxr-x--- 3 oracle oinstall 4096 Dec 14 11:36 oradata
drwxr-x--- 3 oracle oinstall 4096 Dec 14 11:36 admin
drwxr-x--- 3 oracle oinstall 4096 Dec 14 11:37 flash_recovery_area
[oracle@wgods ~]$ rm -rf $ORACLE_BASE/*


6.切换到root账号

[oracle@wgods ~]$ su - root

7.删除/etc/oraInst.loc /etc/oratab文件

[root@wgods ~]# rm /etc/oraInst.loc /etc/oratab
rm: remove regular file `/etc/oraInst.loc'? y
rm: remove regular file `/etc/oratab'? y

注意网上有些文章有删除/usr/bin 下的一些文件,例如 rm /usr/bin/dbhome、rm /usr/bin/oraenv、rm /usr/bin/coraenv。这个在ORACLE 10g下是没有的

8.删除oracle用户(若要重新安装,可以不删除)
[root@wgods ~]# userdel –r oracle

9.删除用户组(若要重新安装,可以不删除)
[root@wgods ~]# groupdel oinstall
[root@wgods ~]# groupdel dba

10.将启动服务删除
[root@OracleTest /root]# chkconfig --del dbora

操作完后,你的ORALCE数据库已经完全、彻底的删除了。

 

 

本文链接


    
最新技术文章:
 




特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3