博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQLPLUS 使用的一些技巧
阅读量:4176 次
发布时间:2019-05-26

本文共 2755 字,大约阅读时间需要 9 分钟。

SQLPLUS 使用的一些技巧
        在ORACLE的维护过程中,目前ORACLE有很多易用的客户端
工具,如pl
sql、delveloer、TOAD,但作为
数据
管理员也需要经常和SQLPLUS 打交道,一些常用的操作往往需要在SQLPLUS完成,如果SQLPLUS不熟悉也在很大程度上降低我们的维护效率,本文主要介绍一些在
管理
数据过程中比较有用的的SQLPLUS技巧。
        技巧一:修改SQLPLUS的提示符
        1  问题描述:
        ORACLE的SQLPLUS默认情况下是没有
系统提示符的,由于在日常维护操作中经常要在SQLPLUS下做一些高危险的操作如shutdown之类的操作,如果操作的对象错误将导致设备事故。
        2  解决办法:
        通过修改SQLPLUS提示符号,可以明确地标识所要操作的数据库,避免操作错误;
        3  处理过程:
        SQLPLUS
程序在启动情况下可以通过
设置相关参数,让其执行login.sql,然后通过修改login.sql脚本可以定义一些语句,达到修改SQLPLUS的提示符的目的,便于识别,login.sql的
文件路径需要通过操作系统环境变量SQLPATH进行
设置
        WINDOWS环境下,通过修改
注册表项目在SQLPATH(位置一般在ORACLE-HOME下)在
注册表中,可以设置为D:/oracle/ora92/dbs
        UNIX的可以直接在ORACLE
用户的profile文件中加入SQLPATH环境变量,可以设置export SQLPATH=/home/oracle/app/oracle/product/9.2/dbs;具体的login.sql,如下所示,可以根据需要实际修改:         set serveroutput on size 1000000
        column old_name new_value pname
        set termout off
        select lower(user) || '@' ||instance_name old_name from v$INSTANCE;
        set sqlprompt '&pname> '
        set termout on
        通过这样修改每次通过SQLPLUS登陆系统的时候会显示username@instancname>更好地识别所要连接的数据库。注意:连接用户必须要有查看v$INSTANCE的
权限
        技巧二:在SQLPLUS 下执行操作系统
命令
        在使用SQLPLUS的过程中,经常要执行一些操作系统方面的命令,可以通过两种方法:
        1)在SQLPLUS命令行下执行host命令,可以切换到操作系统命令行下,执行完后exit可以切换回SQLPLUS命令行下。
        2)直接在SQLPLUS 下执行敲一个”!”后面跟上具体的命令行(但在windows下不支持)。
        技巧三:在SQLPLUS修改sql语句:
        使用SQLPLUS的过程中也经常需要修改sql语句,但是SQLPLUS下的修改sql语句的命令过于烦琐不好记忆,可以通过定义相关变量达到很好的效果。
        1)在UNIX 下可以定义define_editor=vi,如果需要修改sql语句,直接在命令行下用edit就可以进入vi环境,和vi操作
功能一样,方便操作,设置办法直接在sqlplus的命令行下敲:
        Define_editor=vi;
        在windows下可以定义define_editor=notepad,如果需要修改sql语句,直接在命令行下用edit就可以进入notepad编写环境,windows下操作就方便多了;
        技巧四:在SQLPLUS下查看sql语句的执行时间情况
        1)可以通过直接在sqlplus命令行下执行命令set time on(打开sql语句的执行时间显示);
        2)在sqlplus命令行下执行命令 set timing on(统计sql语句的执行时间);
        技巧五:在sqlplus 下查看SQL语句的执行计划
        在业务维护过程中,经常需要查看某个sql语句执行计划,看是否使用到合适的索引等,可以通过下操作来完成         set autotrace traceonly exp
        select * from cncdlp114.t_unit where unitcode='hwjsgs';
        set autotrace off
        执行完成后可以看到语句的执行计划:
        注意:执行操作前的前提该用户下有plan_table表(一般都有),如果没有可以通
        过语句来建立          -- Create table
        create table PLAN_TABLE
        (
          STATEMENT_ID      VARCHAR2(30),
          PLAN_ID           NUMBER,
          TIMESTAMP         DATE,
          REMARKS           VARCHAR2(4000),
          OPERATION         VARCHAR2(30),
          OPTIONS           VARCHAR2(255),
          OBJECT_NODE       VARCHAR2(128),
          OBJECT_OWNER      VARCHAR2(30),
          OBJECT_NAME       VARCHAR2(30),
          OBJECT_ALIAS      VARCHAR2(65),
          OBJECT_INSTANCE   INTEGER,
          OBJECT_TYPE       VARCHAR2(30),
          OPTIMIZER         VARCHAR2(255),
          SEARCH_COLUMNS    NUMBER,
          ID                INTEGER,
          PARENT_ID         INTEGER,
          DEPTH             INTEGER,
          POSITION          INTEGER,
          COST              INTEGER,
          CARDINALITY       INTEGER,
          BYTES             INTEGER,
          OTHER_TAG         VARCHAR2(255),
          PARTITION_START   VARCHAR2(255),
          PARTITION_STOP    VARCHAR2(255),
          PARTITION_ID      INTEGER,
          OTHER             LONG,
          DISTRIBUTION      VARCHAR2(30),
          CPU_COST          INTEGER,
          IO_COST           INTEGER,
          TEMP_SPACE        INTEGER,
          ACCESS_PREDICATES VARCHAR2(4000),
          FILTER_PREDICATES VARCHAR2(4000),
          PROJECTION        VARCHAR2(4000),
          TIME              INTEGER,
          QBLOCK_NAME       VARCHAR2(30)
        )
        结束语:
        其实ORACLE的SQLPLUS功能是很强大的,如果想研究其它的一些功能可以参考
        ORACLE的相关文档,提高维护技能
        
        From:

转载地址:http://swtai.baihongyu.com/

你可能感兴趣的文章
OpenStack4j访问OpenStack Q版本的Identity服务v2.0
查看>>
Java 11新特性
查看>>
Docker的网络类型及驱动器
查看>>
Docker容器支持IPv6的方法
查看>>
Can not deserialize instance of java.lang.String out of START_OBJECT token
查看>>
JTF的Unable to invoke request异常或Unable to find a MessageBodyReader of content-type application..异常详解
查看>>
JavaNCSS概述及JavaNCSS got an error while parsing the java file详解
查看>>
openssh-client amd64 1:7.2p2-4ubuntu2.4 404 Not Found
查看>>
Rapidoid及其容器化的Web平台
查看>>
JavaEE的JSON API规范JSON-P/JSON-B
查看>>
Kubernetes及其Master/Node节点
查看>>
OpenStack Heat简介
查看>>
Kubernetes集群内外的网络连通性
查看>>
TestNG中的@Factory与@DataProvider的执行比较
查看>>
TestNG中在一个test标签中的多个测试类之间共享中间数据的方法
查看>>
TestNG中在一个suite标签中的多个test标签之间共享中间数据的方法
查看>>
Docker容器实例的网络与通信
查看>>
OpenStack的Telemetry Data Collection服务概述
查看>>
iptables及其过滤规则
查看>>
基于iptables的Docker网络隔离与通信详解
查看>>