当前位置:文档之家› sqlplus中查看执行计划分析

sqlplus中查看执行计划分析

sqlplus中查看执行计划分析
sqlplus中查看执行计划分析

sqlplus中查看执行计划分析

对于oracle9i,需要手工设置plustrace角色,步骤如下:

1、在SQL>connect sys/密码as sysdba (密码为:数据库所在的那台服务器的密码)

在sys用户下运行$ORACLE_HOME/sqlplus/admin/plustrce.sql

SQL>@$ORACLE_HOME/sqlplus/admin/plustrce.sql

这段sql的实际内容如下:

set echo on

drop role plustrace;

create role plustrace;

grant select on v_$sesstat to plustrace;

grant select on v_$statname to plustrace;

grant select on v_$mystat to plustrace;

grant plustrace to dba with admin option;

set echo off

以上产生plustrace角色

2、在sys用户下把此角色赋予一般用户

SQL> grant PLUSTRACE to 用户名; (用户名为:当前你登陆数据库的用户名,如:bbass)

3、然后在当前用户下运行$ORACLE_HOME/rdbms/admin/utlxplan.sql

SQL>@$ORACLE_HOME/rdbms/admin/utlxplan.sql 它会创建一个plan_table,用来存储分析SQL语句的结果。

4、SQL> set timing on

可查看SQL语句执行的用时

SQL> set autotrace on;

可查看SQL执行计划分析。

关于Autotrace几个常用选项的说明:

SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式

SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息

SET AUTOTRACE ON ----------------- 包含执行计划和统计信息

SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显示查询

5,关闭以上功能,在SQL/PLUS的窗口运行以下命令

set time off; (说明:关闭时间显示)

set autotrace off;

lab1 SQLPlus使用及简单Select语句

实验1 SQL*Plus使用及简单Select语句 实验人:_________ 学号_____ 班级____________ 实验目的: 1.掌握SQL*Plus常用功能的使用。 2.掌握简单查询的语法。 实验平台: 1.Windows 2000/XP。 2.Oracle 10g 实验过程记录及分析: 1.SQL*Plus的使用: 1) 2) 3)如果某个用户连接数据库时,发生了“协议适配器错误”,分析其原因,并给出解决错 4)

5) 6) 7) 2. SQL 1) 2)3

4)查询emp表中,工资额大于2000的员工的姓名及其工资额。 5) 6) 7)查询emp表中,ename列含有字母A的员工的姓名。

8) 9) 10

11)使用to_date函数查询1981年入职的员工姓名。 SQL> select * from emp 2 where to_char(hiredate,'yyyy')='1981'; EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- -------------- ---------- ---------- DEPTNO ---------- 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 7566 JONES MANAGER 7839 02-4月 -81 2975 20 EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- -------------- ---------- ---------- DEPTNO ---------- 7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30 7698 BLAKE MANAGER 7839 01-5月 -81 2850 30 7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30 EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- -------------- ---------- ----------

oracle的sqlplus学习笔记

使用SQLPLUS 可以用它运行SQL查询和PL/SQL代码块并接收结果信息 可以发布DBA命令并自动工作 可以启动和关闭数据库 一种创建数据库管理报告的便利方法 设置环境变量 在调用SQLplus前,必须正确设置oracle环境变量, 包括设置ORACLE_SID,ORACLE_HOME和LD_LIBBARY_PATH,有时还须设置NLS_LANG和ORA_NLS11 用CONNECT(conn)命令连接 CONNECT(conn)命令可以以一个不同的用户身份进行连接 例: SQL> conn scott/tiger 已连接。 SQL> connect scott/tiger 已连接。 SQL*Plus登录模式 C:\>sqlplus -h SQL*Plus: Release 10.2.0.1.0 - Production Copyright (c) 1982, 2005, Oracle. All rights reserved. 用法1: sqlplus -H | -V -H 显示SQL*Plus 版本和用法帮助。 -V 显示SQL*Plus 版本。 为: ([/][@] | /) [AS SYSDBA | AS SYSOPER] | /NOLOG 指定数据库帐户用户名, 口令和数据库连接 的连接标识符。如果没有连接 标识符, SQL*Plus 将连接到默认数据库。 AS SYSDBA 和AS SYSOPER 选项是数据库管理 权限。

/NOLOG 选项可启动SQL*Plus 而不连接到 数据库。 为: @|[.] [ ...] 使用将分配给脚本中的替代变量的指定参数 从Web 服务器(URL) 或本地文件系统(filename.ext) 运行指定的SQL*Plus 脚本。 在启动SQL*Plus 并且执行CONNECT 命令后, 将运行站点概要 文件(例如, $ORACLE_HOME/sqlplus/admin/glogin.sql) 和用户概要文件 (例如, 工作目录中的login.sql)。这些文件 可包含SQL*Plus 命令。 SQLPLUS的执行操作 一条SQL语句由一个分号(;)或一个反斜杠(/)结束 一个PL/SQL块由一个反斜杠(/)结束 可以使用连字符(-)作为语句行的继续字符 例: SQL> select 200 - <==此时sqlplus自动将'-'字符解释成继续字符并发布一条错误信息 > 100 from dual; select 200 100 from dual * 第 1 行出现错误: ORA-00923: 未找到要求的FROM 关键字 SQL> select 200 - - > 100 from dual; 200-100 ---------- 100 退出SQLPlus 在SQL*Plus输入exit(quit)命令正常退出会话,则事务立即被提交.如果不打算提交事务,必须在退出前执行rollback命令,就算autocommit设置值为off也是如此.在使用exit/quit时,会出现以下情况 ?所有未决的更改被回滚或提交; ?用户退出oraclesqlplus会话终止 ?控制权返回到操作系统

如何使用 SQL Server 执行计划,看懂 SQL Server 执行计划,SQL Server 执行计划动作含义,理解SQL执行计划

【如何使用SQL Server 执行计划】 【看懂SQL Server 执行计划】 【SQL Server 执行计划各个动作含义】 【理解SQL Server 执行计划的意思】 要理解执行计划,怎么也得先理解,那各种各样的名词吧。鉴于自己还不是很了解。本文打算作为只写懂的,不懂的懂了才写。 在开头要先说明,第一次看执行计划要注意,SQL Server的执行计划是从右向左看的。 名词解析: 扫描:逐行遍历数据。 先建立一张表,并给大家看看大概是什么样子的。 CREATE TABLE Person( Id int IDENTITY(1,1) NOT NULL, Name nvarchar(50) NULL, Age int NULL, Height int NULL, Area nvarchar(50) NULL, MarryHistory nvarchar(10) NULL, EducationalBackground nvarchar(10) NULL, Address nvarchar(50) NULL, InSiteId int NULL ) ON[PRIMARY] 表中的数据14万左右,大概类似下面这样:

此表,暂时没有任何索引。 一、数据访问操作 1、表扫描 表扫描:发生于堆表,并且没有可用的索引可用时,会发生表扫描,表示整个表扫描一次。 现在,我们来对此表执行一条简单的查询语句: SELECT*From Person WHERE Name ='公子' 查看执行计划如下: 表扫描,顾名思义就是整张表扫描,找到你所需要的数据了。 2、聚集索引扫描 聚集索引扫描:发生于聚集表,也相当于全表扫描操作,但在针对聚集列的条件如(WHERE Id > 10)等操作时,效率会较好。

SQLPLUS常用命令列表

SQL*PLUS常用命令列表 ?软件环境: 1、Windows 98 第二版 2、Oracle数据库版本为:Personal Oracle7 Release 7.3.4.0.0 3、Oracle安装路径为:C:\ORAWIN95 ?命令列表: ?假设当前执行命令为:select * from tab; ? ?(a)ppend 添加文本到缓冲区当前行尾 a order by tname 结果:select * from tab order by tname; ? (注:a后面跟2个空格) ?(c)hange/old/new 在当前行用新的文本替换旧的文本c/*/tname 结果:select tname from tab; ?(c)hange/text 从当前行删除文本c/tab 结果:select tname from ; ?del 删除当前行 ?del n 删除第n行 ?(i)nput 文本在当前行之后添加一行 ?(l)ist 显示缓冲区中所有行 ?(l)ist n 显示缓冲区中第 n 行 ?(l)ist m n 显示缓冲区中 m 到 n 行 ?run 执行当前缓冲区的命令 ?/ 执行当前缓冲区的命令 ?r 执行当前缓冲区的命令 ?@文件名运行调入内存的sql文件,如: ? ?SQL> edit s<回车> ?如果当前目录下不存在s.sql文件,则系统自动生成s.sql文件, ?在其中输入“select * from tab;”,存盘退出。 ? ?SQL> @s<回车> ?系统会自动查询当前用户下的所有表、视图、同义词。 ? ?@@文件名在.sql文件中调用令一个.sql文件时使用 ? ?save 文件名将缓冲区的命令以文件方式存盘,缺省文件扩展名为.sql ?get 文件名调入存盘的sql文件 ?start 文件名运行调入内存的sql文件 ? ?spool 文件名把这之后的各种操作及执行结果“假脱机”即存盘到磁盘文件上,

Oracle SQLPlus 常用命令及解释

Oracle SQLPlus 常用命令及解释 1.@ 执行位于指定脚本中的SQLPlus语句。可以从本地文件系统或Web服务器中调用脚本。可以为脚本中的变量传递值。在iSQL*Plus中只能从Web服务器中调用脚本。 2.@@ 执行位于指定脚本中的SQL*Plus语句。这个命令和@(“at”符号)命令功能差不多。在执行嵌套的命令文件时它很有用,因为它会在与调用它的命令文件相同的路径或url中查找指定的命令文件。在iSQL*Plus中只支持url形式。 3./ 执行保存在SQL缓冲区中的最近执行的SQL命令或PL/SQL块。在SQL*Plus命令行中,可在命令提示符或行号提示符使用斜线(/)。也可在iSQL*Plus的输入区中使用斜线(/)。斜线不会列出要执行的命令。 4.ACCEPT 可以修改既有变量,也可定义一个新变量并等待用户输入初始值,读取一行输入并保存到给出的用户变量中。ACCEPT在iSQL*Plus中不可用。 5.APPEND 把指定文本添加到SQL缓冲区中当前行的后面。如果text的最前面包含一个空格可在APPEND和text间输入两个空格。如果text的最后是一个分号,可在命令结尾输入两个分号(SQL*Plus会把单个的分号解释为一个命令结束符)。APPEND 在iSQL*Plus中不可用。 6.ARCHIVE LOG 查看和管理归档信息。启动或停止自动归档联机重做日志,手工(显示地)归档指定的重做日志,或者显示重做日志文件的信息。 7.ATTRIBUTE 为对象类型列的给定属性指定其显示特性,或者列出单个属性或所有属性的当前显示特性。 8.BREAK 分开重复列。指定报表中格式发生更改的位置和要执行的格式化动作(例如,在列值每次发生变化时跳过一行)。只输入BREAK而不包含任何子句可列出当前的BREAK定义。 9.BTITLE 在每个报表页的底部放置一个标题并对其格式化,或者列出当前BTITLE定义。

探索MSSQL执行计划

MSSQL优化之——探索MSSQL执行计划 SQL code 谈到优化就必然要涉及索引,就像要讲锁必然要说事务一样,所以你需要了解一下索引,仅仅是索引,就能讲半天了,所以索引我就不说了(打很多字是很累的,况且我也知之甚少),可以去参考相关的文章,这个网上资料比较多了。 今天来探索下MSSQL的执行计划,来让大家知道如何查看MSSQL的优化机制,以此来优化SQL 查询。 --DROP TABLE T_UserInfo---------------------------------------------------- --建测试表 CREATE TABLE T_UserInfo ( Userid varchar(20), UserName varchar(20), RegTime datetime, Tel varchar(20), ) --插入测试数据 DECLARE @I INT DECLARE @ENDID INT SELECT @I = 1 SELECT @ENDID = 100 --在此处更改要插入的数据,重新插入之前要删掉所有数据 WHILE @I <= @ENDID BEGIN INSERT INTO T_UserInfo SELECT 'ABCDE'+CAST(@I AS VARCHAR(20))+'EF','李'+CAST(@I AS VARCHAR(20)), GETDATE(),'876543'+CAST(@I AS VARCHAR(20)) SELECT @I = @I + 1 END --相关SQL语句解释 --------------------------------------------------------------------------- --建聚集索引 CREATE CLUSTERED INDEX INDEX_Userid ON T_UserInfo (Userid) --建非聚集索引 CREATE NONCLUSTERED INDEX INDEX_Userid ON T_UserInfo (Userid) --删除索引 DROP INDEX T_UserInfo.INDEX_Userid ---------------------------------------------------------------------------

SQLPLUS用法大全

SQL*PLUS命令的使用大全 Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus 命令与sql*plus语句。 我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer 中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。 除了sql*plus语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,它们一般用来对输出的结果进行格式化显示,以便于制作报表。下面就介绍一下一些常用的sql*plus命令: 1. 执行一个SQL脚本文件 SQL>start file_name SQL>@ file_name 我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。 @与@@的区别是什么? @等于start命令,用来运行一个sql脚本文件。 @命令调用当前目录下的,或指定全路径,或可以通过SQLPATH环境变量搜寻到的脚本文件。该命令使用是一般要指定要执行的文件的全路径,否则从缺省路径(可用SQLPATH变量指定)下读取指定的文件。@@用在sql脚本文件中,用来说明用@@执行的sql脚本文件与@@所在的文件在同一目录下,而不用指定要执行sql脚本文件的全路径,也不是从SQLPATH环境变量指定的路径中寻找sql脚本文件,该命令一般用在脚本文件中。 如:在c:\temp目录下有文件start.sql和nest_start.sql,start.sql脚本文件的内容为:@@nest_start.sql - - 相当于@ c:\temp\nest_start.sql 则我们在sql*plus中,这样执行: SQL> @ c:\temp\start.sql 2. 对当前的输入进行编辑 SQL>edit 3. 重新运行上一次运行的sql语句 SQL>/ 4. 将显示的内容输出到指定文件 SQL> SPOOL file_name 在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。 5. 关闭spool输出 SQL> SPOOL OFF 只有关闭spool输出,才会在输出文件中看到输出的内容。

sqlplus中查看执行计划分析

sqlplus中查看执行计划分析 对于oracle9i,需要手工设置plustrace角色,步骤如下: 1、在SQL>connect sys/密码as sysdba (密码为:数据库所在的那台服务器的密码) 在sys用户下运行$ORACLE_HOME/sqlplus/admin/plustrce.sql SQL>@$ORACLE_HOME/sqlplus/admin/plustrce.sql 这段sql的实际内容如下: set echo on drop role plustrace; create role plustrace; grant select on v_$sesstat to plustrace; grant select on v_$statname to plustrace; grant select on v_$mystat to plustrace; grant plustrace to dba with admin option; set echo off 以上产生plustrace角色 2、在sys用户下把此角色赋予一般用户 SQL> grant PLUSTRACE to 用户名; (用户名为:当前你登陆数据库的用户名,如:bbass) 3、然后在当前用户下运行$ORACLE_HOME/rdbms/admin/utlxplan.sql SQL>@$ORACLE_HOME/rdbms/admin/utlxplan.sql 它会创建一个plan_table,用来存储分析SQL语句的结果。 4、SQL> set timing on 可查看SQL语句执行的用时 SQL> set autotrace on; 可查看SQL执行计划分析。 关于Autotrace几个常用选项的说明: SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式

oracle set命令大全

oracle set命令详解 SET命令参数详解 我好如容易录入的,希望对大家有帮助,如果有错误也请指正.有更好的也请分享. SQL*PLUS维护系统变量,也称SET变量,利用它可为SQL*PLUS交互建立一个特殊的环境,如:设 置NUMBER数据的显示宽度;设置每页的行数;设置列的宽度等。可用SET命令改变这些系统变 量,也可用SHOW命令列出它们. 使用set命令的语法如下: SET 系统变量值 其中系统变量及其可选值如下: ARRAY[SIZE] {20(默认值)|n} AUTO[COMMIT] {OFF(默认值)|ON|IMM[EDIATE]} BLO[CKTERMINATOR] {.(默认值)|C} CMDS[EP] {;|C|OFF(默认值)|ON} COM[PATIBILITY] {V5|V6|V7|NATIVE(默认值)} CON[CAT] {.(默认值)|C|OFF|ON(默认值)} COPYC[OMMIT] {0(默认值)|n} CRT crt DEF[INE] {&|C|OFF|ON(默认值)} ECHO {OFF|ON} EMBEDDED {OFF(默认值)|ON} ESC[APE] { (默认值)|C|OFF(默认值)|ON} FEED[BACK] {6(默认值)|n|OFF|ON} FLU[SH] {OFF|ON(默认值)} HEA[DING] {OFF|ON(默认值)} HEADS[EP] {|(默认值)|C|OFF|ON(默认值)} LIN[ESIZE] {80(默认值)|n} LONG {80(默认值)|n} LONGC[HUNKSIZE] {80(默认值)|n} MAXD[ATA] n NEWP[AGE] {1(默认值)|n} NULL text NUMF[ORMAT] 格式 NUM[WIDTH] {10(默认值)|n}

Oracle安装与配置、SQLPlus(一)

1.1、O racle简介 Oracle是一个生产中间件和数据库的较大的生产商,Oracle原本的含义:“神喻”,指的是神说的话。中国在商朝的时代,把一些刻在龟壳上的文字当成是上天的指示,所以在中国将Oracle也翻译成“甲骨文”。 Oracle公司的发展实际还是依靠IBM公司。 Oracle的创始人:Larry Ellison,创办了Oracle公司。 他一生的最大目标,“财富榜超过比尔·盖茨” Bruce Scott现在已经离开了Oracle公司,开发出了一套新的数据库-------PointBase 1.2、O racle安装 现在使用的Oracle是10g的版本,Oracle中的版本主要分为以下几个: ●Oracle 8 ●Oracle 8i i表示Internet,表示此时Oracle公司正式开始进军互联网 ●Oracle 9i Oracle9i与8i相比是非常相似的 ●Oracle 10g g表示网格技术 例如,以baidu搜索为准,现在想使用一款软件,但是此软件在离自己非常近的地方就存在了下载地址,但是与自己非常远的地方也同样存在一个下载地址,那么有没有可能现在通过搜索引擎没有搜索到离自己近的下载,而使用了更远的下载,那么这样一来肯定会造成

资源的浪费。 所以新的网络概念就是将网络划分成一个个网格,通过网格表示一个区域 选择Oracle 10g下的install目录中的setup.exe就可以执行Oracle的安装指令了如果不能安装有可能是防火墙造成的,此时可以将防火墙暂时禁用 安装步骤

此时将Oracle安装在D盘之中

选择企业版进行安装

看懂sql执行计划

对于SqlServer的优化来说,可能优化查询是很常见的事情。关于数据库的优化,本身也是一个涉及面比较的广的话题,首先,打开【SQL Server Management Studio】,输入一个查询语句看看SqlServer是如何显示查询计划的吧。 select v.OrderID, v.CustomerID, v.CustomerName, v.OrderDate, v.SumMoney, v.Finished from OrdersView as v where v.OrderDate >= '2010-12-1' and v.OrderDate < '2011-12-1'; 其中,OrdersView是一个视图,其定义如下: SELECT dbo.Orders.OrderID, dbo.Orders.CustomerID, dbo.Orders.OrderDate, dbo.Orders.SumMoney, dbo.Orders.Finished, ISNULL(dbo.Customers.CustomerName, N'') AS CustomerName FROM dbo.Orders LEFT OUTER JOIN dbo.Customers ON dbo.Orders.CustomerID = dbo.Customers.CustomerID 对于前一句查询,SqlServer给出的查询计划如下(点击工具栏上的【显示估计的执行计划】按钮): 从这个图,我们至少可以得到3个有用的信息: 1. 哪些执行步骤花费的成本比较高。显然,最右边的二个步骤的成本是比较高的。 2. 哪些执行步骤产生的数据量比较多。对于每个步骤所产生的数据量, SqlServer的执行计划是用【线条粗细】来表示的,因此也很容易地从分辨出来。 3. 每一步执行了什么样的动作。 对于一个比较慢的查询来说,我们通常首先要知道哪些步骤的成本比较高,进而,可以尝试一些改进的方法。一般来说,如果您不能通过:提高硬件性能或者调整OS,SqlServer的设置之类的方式来解决问题,那么剩下的可选方法通常也只有以下这些了:

SQL-Plus的使用

SQL*Plus的使用 1. SQL*Plus介绍 SQL*Plus是oracle提供的一个工具程序,既可以在oracle服务器使用,也可以在oracle客户端使用。 SQL*Plus是一个最常用的工具,具有很强的功能,主要有: 1). 数据库的维护,如启动,关闭等 2). 执行SQL语句、执行PL/SQL程序 3). 执行SQL脚本 4). 数据的导出,报表 5). 应用程序开发、测试SQL/PLSQL 6). 生成新的SQL脚本 7). 供应用程序调用,如安装程序中进行脚本的安装 2. dual表 dual是一张系统表,同时也被定义成了public同义词。它只有一个字段和一条记录。该表本身的结构和数据没有什么意义,主要是借助该表进行其它操作。 Dual表的使用例如获取函数值、计算表达式的值: 说明:不要对dual表进行DDL与DML操作,只进行查询操作。

3. SQL*Plus使用 3.1 启动SQL*Plus及连接数据库 1). 不连接数据库 > sqlplus /nolog 2). 连接数据库 > sqlplus username/password 3). 使用连接字符串连接数据库 > sqlplus username/password@connect_identifier 4). 使用操作系统权限连接数据库 > sqlplus / as sysdba 3.2 SQL*Plus的命令 3.2.1 帮助命令 1). help命令 格式:help 命令名,用于知道某个具体命令的帮助信息。 如:SQL> help connect 2). describe命令 用户查看表的结构;获取函数,存储过程和包的描述。 如:SQL> desc user_tables 说明:在SQL*Plus中,所有命令都可以用前面的四个字母作为整个命令。 3.2.2 编辑命令 SQL*Plus会将上一次执行过的SQL命令(包括SQL语句和PL/SQL语句,包括一行或多行)保存到缓存区中,可以对缓存区中信息进行编辑。编辑后可以通过“/ ”命令执行修改后的缓存区中的命令,如果不修改,则是执行原有命令。 1). list [n] 命令 显示上一条命令中的第n行,如果不指定n,则显示上一命令的所有行,这样当前行就是最后一行。 如:

SQL PLUS 命令大全

一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup SVRMGR>quit b、关闭ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>shutdown SVRMGR>quit 启动oracle9i数据库命令: $ sqlplus /nolog SQL*Plus: Release 9.2.0.1.0 - Production on Fri Oct 31 13:53:53 2003 Copyright (c) 1982, 2002, Oracle Corporation.All rights reserved. SQL> connect / as sysdba Connected to an idle instance. SQL> startup^C SQL> startup ORACLE instance started. 2、在双机环境下 要想启动或关闭ORACLE系统必须首先切换到root用户,如下 su - root a、启动ORACLE系统 hareg -y oracle b、关闭ORACLE系统 hareg -n oracle Oracle数据库有哪几种启动方式

说明: 有以下几种启动方式: 1、startup nomount 非安装启动,这种方式启动下可执行:重建控制文件、重建数据库 读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。 2、startup mount dbname 安装启动,这种方式启动下可执行: 数据库日志归档、 数据库介质恢复、 使数据文件联机或脱机, 重新定位数据文件、重做日志文件。 执行“nomount”,然后打开控制文件,确认数据文件和联机日志文件的位置,但此时不对数据文件和日志文件进行校验检查。 3、startup open dbname 先执行“nomount”,然后执行“mount”,再打开包括Redo log文件在内的所有数据库文件, 这种方式下可访问数据库中的数据。 4、startup,等于以下三个命令 startup nomount alter database mount alter database open 5、startup restrict 约束方式启动 这种方式能够启动数据库,但只允许具有一定特权的用户访问 非特权用户访问时,会出现以下提示: ERROR: ORA-01035: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用 6、startup force 强制启动方式

TOAD中查看SQL的执行计划

TOAD中查看SQL的执行计划 一、TOAD中查看SQL的执行计划: 1、点击工具栏上120救护车图标按钮 2、快捷键Ctrl+E 3、菜单View-Explain plan 二、如果是默认安装TOAD,在查看执行计划时会报一个错: ORA-02404: 未找到指定的计划表 稍微研究了一下,解决这个问题基本上有3个方案: 1、最直接的解决方案:直接创建TOAD所需要的计划表,该脚本在%oracle_home%\rdbms\admin\utlxplan.sql 中,不过该脚本是创建PLAN_TABLE表,表结构一样,改名为TOAD_PLAN_TABLE 即可。如下: CREATE TABLE TOAD_PLAN_TABLE ( STATEMENT_ID VARCHAR2 (32), TIMESTAMP DATE, REMARKS VARCHAR2 (80), OPERATION VARCHAR2 (30), OPTIONS VARCHAR2 (30), OBJECT_NODE VARCHAR2 (128), OBJECT_OWNER VARCHAR2 (30), OBJECT_NAME VARCHAR2 (30), OBJECT_INSTANCE NUMBER, OBJECT_TYPE VARCHAR2 (30), SEARCH_COLUMNS NUMBER, ID NUMBER, COST NUMBER, PARENT_ID NUMBER, POSITION NUMBER, CARDINALITY NUMBER, OPTIMIZER VARCHAR2 (255), BYTES NUMBER, OTHER_TAG VARCHAR2 (255), OTHER LONG, PARTITION NUMBER, PARTITION_START VARCHAR2 (255), PARTITION_STOP VARCHAR2 (255), DISTRIBUTION VARCHAR2 (30) ) ; 2、偷机取巧的处理方案:修改TOAD参数 将菜单View -> Options ->Oracle -> General -> Explain Plan Table name中的参数修改为PLAN_TABLE即可使用。 3、通过TOAD自带功能创建表结构: 在菜单tools -> server side objects wizard下运行,不过要建立一些对象,最好建议一个单独的表空间放这些对象。 在10g中带有plan_table这张表,但是将名字改为了plan_table$ 只需$ORACLE_HOME/sqlplus/admin/plustrce.sql创建plustrace角色 grant plustrace to public

力控动态组件常见问题大全 附解决方案

一、力控软件的安装卸载与系统环境 安装力控需要的软硬件环境? 如何安装力控软件?(注意:安装顺序与系统问题! 如何卸载力控软件? 可以制作运行包吗?怎样制作运行包? 制作运行包后,安装时setup为何提示”本系统已经安装了该产品”? 我已经安装加密锁了,为何安装运行包后运行工程还提示找不到加密锁? 安装完运行包后如何卸载? 如何安装力控的驱动程序?手动添加新驱动怎么做? 怎样添加新的子图精灵? 力控提供的加密锁需要安装驱动程序吗?需要如何安装? 力控安装在部分操作系统下,会出现乱码? 二、力控软件选型 如何计算力控软件点数? 我接两个PLC就算两个点吗? 操作员站采集现场数据,领导也想看生产情况,我应该如何择软件? 我用模拟量输出板卡调节几个电动阀门输出应该使用什么版本的软件? 我的工程数据量比较大,大概十几万点,是不是直接使用使用无限点版本就可以了?三、力控系统开发、运行与配置 不小心在工程管理器中将工程给删除了,还能找到并恢复我的工程吗? 两个工程实时性要求不高,为了省数据库的点数,想做两个工程由人工轮流启动执行,一台计算机上能创建多个工程运行的快捷方式吗? 力控的案例.PCK文件是什么类型的,如何打开? 力控支持数组吗? 给每个数组元素赋值后,发现最终所有元素都显示的是最后一个赋值结果? 在数据库组态中没见到定义数据范围的地方,只定义小数位数。我在HMI上的对该数据库变量赋值发现不能大于99999,当大于该值时提示“无效数据,范围为~99999.000000”怎样才能输入更大的数据? 在动画连接择变量时会出现变量择窗口,为何窗口中了“实时数据库“项窗口,还个“全局”窗口?并且这个窗口也数据库变量,当这里的变量比“实时数据库” 项窗口少,这两个什么区别? 如何在开机时自动进入工程的运行系统? 为何我的工程画面修改后保存提示“保存文档失败”? 为何工程画面切换时些窗口打不开,并提示“打开文档失败。”的错误? 工程的窗口名称定义不合适想修改名称,但窗口名称为灰色不能修改,对窗口操作只打开、删除和关闭,该如何修改哪? 我想将系统的热启动键禁止,防止运行人员非法操作关机,能实现吗? 我使用做的工程,为何在下打不开哪? 工程从2.6升级到后总是提示找不到驱动? 工程从版本能直接拿到版本中使用? 在1024*768的机器分辨率下做的工程,拷贝到1440*900的机器下运行,些画面拉伸变

实验2 SQLPlus的使用

实验2 SQL*Plus工具的使用 一、实验目的 1.了解SQL*Plus工具的功能; 2.熟练掌握SQL*Plus工具连接与断开数据库的多种方式; 3.熟练掌握SQL*Plus常用命令的使用。 二、实验环境 1.硬件 每位学生配备计算机一台,满足下列软件的安装; 2.软件 Windows操作系统,安装Oracle Database 11g企业版; 3.网络 需要局域网支持; 4.工具 无 三、实验理论与预备知识 1.SQL*Plus工具连接数据库; 2.SQL*Plus工具的常用命令。 四、实验任务 1.SQL*Plus工具连接与断开数据库; 2.SQL*Plus工具的常用操作; 3.创建报表。 五、实验内容及步骤 1.SQL*Plus工具连接与断开数据库 (1)连接到默认数据库 具体步骤: 1)启动相应的数据库服务; 2)选择【开始】→【所有程序】→【Oracle-OraDB11g_Home1】→【应用程序开发】→【SQL Plus】,即可打开SQL*Plus工具的登录页面;

3)根据提示输入正确的用户名和口令,按回车键,则可以连接到默认数据库;4)连接到数据库之后,显示SQL>提示符,可以输入相应SQL命令; (2)连接默认数据库的其他方式 方式1:指定某个用户身份 选择【开始】→【附件】→【运行】,输入命令“sqlplus system/123456 ”,如图4-1所示; 图2-1 连接Oracle数据库 单击【确定】按钮,可直接进入新的SQL*PLUS主界面,如图2-2所示; 图2-2 SQL Plus主界面 方式2:以sys dba身份登录数据库 选择【开始】→【运行】,输入命令“sqlplus "/as sysdba" ”,单击【确定】按钮,可直接进入新的SQL*PLUS主界面,如图2-3所示;

不借助第三方工具查看SQL的执行计划

SQL> connect sys as sysdba --创建执行计划使用的表 SQL> @?\rdbms\admin\utlxplan 通过以下方法可以把Autotrace的权限授予每个用户,如果你需要限制Autotrace权限,可以把对public的授权改为对特定user的授权。 1、把对plan_table表所有权限赋给public角色 SQL> grant all on plan_table to public ; 2、创建一个角色plustrace SQL> create role plustrace; 3、授权给plustrace角色 SQL> grant select on v_$sesstat to plustrace; SQL> grant select on v_$statname to plustrace; SQL> grant select on v_$session to plustrace; 4、把角色plstrace授权给DBA SQL> grant plustrace to dba with admin option; 5、DBA把权限授予public SQL> grant plustrace to public; 这样用户可以在sqlplus中设置如下的选项 SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式 SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告 SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息 SET AUTOTRACE ON ----------------- 包含执行计划和统计信息 SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显示查询输出 SQL>SET autotrace on; SQL>select * from emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- ---------- -(参考下载:https://www.doczj.com/doc/3b5770476.html,)--------- ---------- ---------- 7369 SMITH CLERK 7902 17-12月-80 1171.28 20 7499 ALLEN SALESMAN 7698 20-2月 -81 2342.56 300 30 7521 WARD SALESMAN 7698 22-2月 -81 1830.13 500 30 7566 JONES MANAGER 7839 02-4月 -81 4355.7 20 7654 MARTIN SALESMAN 7698 28-9月 -81 1830.13 1400 30 7698 BLAKE MANAGER 7839 01-5月 -81 4172.69 30 7782 CLARK MANAGER 7839 09-6月 -81 3587.05 10 7788 SCOTT ANALYST 7566 19-4月 -87 3000 20 7839 KING PRESIDENT 17-11月-81 7320.5 10 7844 TURNER SALESMAN 7698 08-9月 -81 2196.15 0 30 7876 ADAMS CLERK 7788 23-5月 -87 1100 20

典型数据库

典型数据库 实验指导书 ____/____年第____学期 姓名:_____________ 学号:_____________ 班级:_____________ 指导教师:_____________

目录 实验1 Oracle Database环境和SQL *Plus基础 (3) 实验2 管理数据库表及其完整性 (5) 实验3 SQL查询技术 (7) 实验4 PL/SQL基础 (11) 实验5 索引和视图 (13) 实验6 存储过程和触发器 (15)

实验一Oracle Database环境和SQL *Plus基础 一、实验目的 掌握Oracle Database数据库的安装,学会使用SQL *Plus环境的设置及应用。 二、实验环境 本实验采用的RDBMS是Oracle公司的数据库管理系统,以Oracle Database 11g版本为软件平台。 三、实验内容与要求 1.熟悉Oracle Database软件的获取和安装,简要说明Oracle Database 11g的安装过程。 2.启动和设置SQL *Plus环境,通过SQL *Plus环境执行SQL语句。 (1)打开SQL *Plus环境,登录Oracle数据库,以系统默认用户身份登录,用户名:system, 口令:Admin123。登录成功后出现:“SQL>”提示符。 (2)以学生姓名拼音建立新的Oracle数据库用户(姓全拼,名字的首字母),并给用户授予连接和管理员权限。 参考代码: create user wangw identified by wangw; (前一个为用户名,后一个为口令) grant create session,dba to wangw; (session为连接权限,dba是具有100多个权限的角色) 使用describe命令查看所定义的表结构。 4.使用insert语句向S表中插入至少10条数据。 参考代码:INSERT INTO EMP(EMPNO,ENAME,HIREDATE)VALUES (7844,'TURNER',to_date('8-9-1981','dd-mm-yyyy')); 5.查询: (1)查询所有学生信息的信息; (2)格式化查询结果:改变deptno列的显示宽度为A10,将所有列标题设置成相应的中文含义。 6.打开并配置

相关主题
文本预览
相关文档 最新文档