| 网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 |
![]() |
| Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道 |
SQLPLUS 使用的一些技巧 中国网管论坛bbs.bitsCN.com
在ORACLE的维护过程中,目前ORACLE有很多易用的客户端工具,如plsql、delveloer、TOAD,但作为数据库管理员也需要经常和SQLPLUS 打交道,一些常用的操作往往需要在SQLPLUS完成,如果SQLPLUS不熟悉也在很大程度上降低我们的维护效率,本文主要介绍一些在管理数据库过程中比较有用的的SQLPLUS技巧。
技巧一:修改SQLPLUS的提示符
1 问题描述:
网管u家u.bitsCN.com
ORACLE的SQLPLUS默认情况下是没有系统提示符的,由于在日常维护操作中经常要在SQLPLUS下做一些高危险的操作如shutdown之类的操作,如果操作的对象错误将导致设备事故。
2 解决办法:
网管下载dl.bitscn.com
通过修改SQLPLUS提示符号,可以明确地标识所要操作的数据库,避免操作错误; 网管u家u.bitscn@com
3 处理过程:
网管u家u.bitscn@com
SQLPLUS程序在启动情况下可以通过设置相关参数,让其执行login.sql,然后通过修改login.sql脚本可以定义一些语句,达到修改SQLPLUS的提示符的目的,便于识别,login.sql的文件路径需要通过操作系统环境变量SQLPATH进行设置:
网管网www_bitscn_com
WINDOWS环境下,通过修改注册表项目在SQLPATH(位置一般在ORACLE-HOME下)在注册表中,可以设置为D:\oracle\ora92\dbs
网管u家u.bitscn@com
UNIX的可以直接在ORACLE用户的profile文件中加入SQLPATH环境变量,可以设置export SQLPATH=/home/oracle/app/oracle/product/9.2/dbs;具体的login.sql,如下所示,可以根据需要实际修改:
|
set serveroutput on size 1000000 网管u家u.bitsCN.com column old_name new_value pname 网管联盟bitsCN@com set termout off 网管u家u.bitsCN.com select lower(user) || '@' ||instance_name old_name from v$INSTANCE; 网管论坛bbs_bitsCN_com
set sqlprompt '&pname> ' 网管u家u.bitsCN.com set termout on 网管论坛bbs_bitsCN_com |
网管u家u.bitsCN.com
通过这样修改每次通过SQLPLUS登陆系统的时候会显示username@instancname>更好地识别所要连接的数据库。注意:连接用户必须要有查看v$INSTANCE的权限。
网管联盟bitsCN@com
技巧二:在SQLPLUS 下执行操作系统命令
网管联盟bitsCN_com
在使用SQLPLUS的过程中,经常要执行一些操作系统方面的命令,可以通过两种方法: 网管网www_bitscn_com
1)在SQLPLUS命令行下执行host命令,可以切换到操作系统命令行下,执行完后exit可以切换回SQLPLUS命令行下。
网管bitscn_com
2)直接在SQLPLUS 下执行敲一个”!”后面跟上具体的命令行(但在windows下不支持)。
网管网www_bitscn_com
技巧三:在SQLPLUS修改sql语句: 网管u家u.bitsCN.com
使用SQLPLUS的过程中也经常需要修改sql语句,但是SQLPLUS下的修改sql语句的命令过于烦琐不好记忆,可以通过定义相关变量达到很好的效果。 网管bitscn_com
1)在UNIX 下可以定义define_editor=vi,如果需要修改sql语句,直接在命令行下用edit就可以进入vi环境,和vi操作功能一样,方便操作,设置办法直接在sqlplus的命令行下敲: 网管u家u.bitscn@com
Define_editor=vi;
在windows下可以定义define_editor=notepad,如果需要修改sql语句,直接在命令行下用edit就可以进入notepad编写环境,windows下操作就方便多了; 网管网www.bitscn.com
技巧四:在SQLPLUS下查看sql语句的执行时间情况 网管下载dl.bitscn.com
1)可以通过直接在sqlplus命令行下执行命令set time on(打开sql语句的执行时间显示);
网管联盟bitsCN_com
2)在sqlplus命令行下执行命令 set timing on(统计sql语句的执行时间);
网管联盟bitsCN@com
技巧五:在sqlplus 下查看SQL语句的执行计划 网管u家u.bitsCN.com
在业务维护过程中,经常需要查看某个sql语句执行计划,看是否使用到合适的索引等,可以通过下操作来完成
|
set autotrace traceonly exp 网管u家u.bitsCN.com
select * from cncdlp114.t_unit where unitcode='hwjsgs'; 网管联盟bitsCN@com
set autotrace off 网管网www_bitscn_com |
执行完成后可以看到语句的执行计划:
网管bitscn_com
注意:执行操作前的前提该用户下有plan_table表(一般都有),如果没有可以通 网管u家u.bitsCN.com
过语句来建立
| -- Create table create table PLAN_TABLE ( STATEMENT_ID VARCHAR2(30), PLAN_ID NUMBER, TIMESTAMP DATE, REMARKS VARCHAR2(4000), OPERATION VARCHAR2(30), 网管论坛bbs_bitsCN_com 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, 网管u家u.bitsCN.com ID INTEGER, PARENT_ID INTEGER, DEPTH INTEGER, POSITION INTEGER, COST INTEGER, CARDINALITY INTEGER, BYTES INTEGER, OTHER_TAG VARCHAR2(255), 网管联盟bitsCN_com 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), 网管bitscn_com FILTER_PREDICATES VARCHAR2(4000), PROJECTION VARCHAR2(4000), TIME INTEGER, QBLOCK_NAME VARCHAR2(30) ) |
结束语:
网管网www_bitscn_com
其实ORACLE的SQLPLUS功能是很强大的,如果想研究其它的一些功能可以参考
网管下载dl.bitscn.com
ORACLE的相关文档,提高维护技能
|
0
|
评论加载中…