使用oracle sql*plus 分析sql
一:分析和执行SQL语句
SQL> set autotrace on; 说明:打开自动分析统计,并显示SQL语句的运行结果
SQL> set autotrace traceonly; 说明:打开自动分析统计,不显示SQL语句的运行结果 接下来你就运行测试SQL语句,看到其分析统计结果了。 一般来讲,我们的SQL语句应该避免大表的全表扫描。
SQL> 输入SQL语句注意完成sql语句输入后,要输入分号(;)。 一些辅助项的查看开关
SQL> set autotrace off; 说明:关闭自动分析统计
SQL> SET FEED[BACK] {6|n|ON|OFF} 是否显示当前sql语句查询或修改的行数 默认只有结果大于6行时才显示结果的行数。如果set feedback 1 ,则不管查询到多少行都返回。当为off 时,一律不显示查询的行数
SQL> set time on; 说明:打开时间显示 SQL> set TIMING {ON|OFF} 显示每个sql语句花费的执行时间
二:常用辅助功能
1. 执行一个SQL脚本文件(往往利用其他编辑工具编辑好sql语句,用这种方法执行)
SQL>start file_name 或者 SQL>@ file_name 如:start c:/sql.txt 我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。
2.将在屏幕上的所有内容输出到指定的文件中,包括你输入的sql语句和分析等。(利于用其他工具分析,如utlraEdit等)
SQL>spool c:/analysis.txt
...做了很多操作
SQL>spool off 相当于file.close(),完成所有的内容输出到analysis.txt
3. 对当前的输入进行编辑
SQL>edit
4. 重新运行上一次运行的sql语句 SQL>/
5.设置当前session是否对修改的数据进行自动提交
SQL>SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}
6.设置一行可以容纳的字符数
SQL> SET LIN[ESIZE] {80|n}
7.设置一页有多少行数 SQL> SET PAGES[IZE] {24|n}
8.显示一个表的结构 SQL> desc table_name
9.SQL>host 进入cmd,可执行的操作系统下的命令
10.个存储过程 EXECUTE procedure_name
11.指定sql*plus中连接到指定的数据库 CONNECT user_name/passwd@db_alias
12.有问题找帮助,显示sql*plus命令的帮助
HELP 如何安装帮助文件:
Sql>@ ?//sqlplus//admin//help//hlpbld.sql ?//sqlplus//admin//help//helpus.sql
Sql>help index ;显示所有的帮助项目
相关词汇:
sql buffer:(保存上次执行的sql*plus语句的缓冲区) 在sql*plus中,可以运行sql*plus命令与sql*plus语句。我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。